First commit
This commit is contained in:
commit
a8734380a1
42 changed files with 1956 additions and 0 deletions
258
bin/volume-brightness
Executable file
258
bin/volume-brightness
Executable file
|
@ -0,0 +1,258 @@
|
|||
#!/bin/bash
|
||||
|
||||
# See README.md for usage instructions
|
||||
volume_step=5
|
||||
mic_volume_step=5
|
||||
brightness_step=5
|
||||
kbd_brightness_step=5
|
||||
max_volume=100
|
||||
max_mic_volume=100
|
||||
volume_notification_timeout=1000
|
||||
mic_volume_notification_timeout=1000
|
||||
brightness_notification_timeout=1000
|
||||
kbd_brightness_notification_timeout=1000
|
||||
player_notification_timeout=5000
|
||||
download_album_art=true
|
||||
show_album_art=true
|
||||
show_music_in_volume_indicator=true
|
||||
|
||||
# Uses regex to get volume from pactl
|
||||
function get_volume {
|
||||
pactl get-sink-volume @DEFAULT_SINK@ | grep -Po '[0-9]{1,3}(?=%)' | head -1
|
||||
}
|
||||
|
||||
function get_mic_volume {
|
||||
pactl get-source-volume @DEFAULT_SOURCE@ | grep -Po '[0-9]{1,3}(?=%)' | head -1
|
||||
}
|
||||
|
||||
# Uses regex to get mute status from pactl
|
||||
function get_mute {
|
||||
pactl get-sink-mute @DEFAULT_SINK@ | grep -Po '(?<=Mute: )(yes|no)'
|
||||
}
|
||||
|
||||
function get_mic_mute {
|
||||
pactl get-source-mute @DEFAULT_SOURCE@ | grep -Po '(?<=Mute: )(yes|no)'
|
||||
}
|
||||
|
||||
# Uses regex to get brightness from xbacklight
|
||||
function get_brightness {
|
||||
brightnessctl -c backlight -P get | grep -Po '[0-9]{1,3}' | head -n 1
|
||||
}
|
||||
|
||||
function get_kbd_brightness {
|
||||
brightnessctl -d kbd_backlight -P get | grep -Po '[0-9]{1,3}' | head -n 1
|
||||
}
|
||||
|
||||
# Returns a mute icon, a volume-low icon, or a volume-high icon, depending on the volume
|
||||
function get_volume_icon {
|
||||
volume=$(get_volume)
|
||||
mute=$(get_mute)
|
||||
if [ "$mute" == "yes" ]; then
|
||||
volume_icon="volume-level-muted"
|
||||
elif [ "$volume" -eq 0 ]; then
|
||||
volume_icon="volume-level-low"
|
||||
elif [ "$volume" -lt 50 ]; then
|
||||
volume_icon="volume-level-medium"
|
||||
else
|
||||
volume_icon="volume-level-high"
|
||||
fi
|
||||
}
|
||||
|
||||
function get_mic_volume_icon {
|
||||
mic_volume=$(get_mic_volume)
|
||||
mic_mute=$(get_mic_mute)
|
||||
if [ "$mic_mute" == "yes" ]; then
|
||||
mic_volume_icon="mic-volume-muted"
|
||||
elif [ "$mic_volume" -eq 0 ]; then
|
||||
mic_volume_icon="mic-volume-low"
|
||||
elif [ "$mic_volume" -lt 50 ]; then
|
||||
mic_volume_icon="mic-volume-medium"
|
||||
else
|
||||
mic_volume_icon="mic-volume-high"
|
||||
fi
|
||||
}
|
||||
|
||||
# Always returns the same icon - I couldn't get the brightness-low icon to work with fontawesome
|
||||
function get_brightness_icon {
|
||||
brightness=$(get_brightness)
|
||||
if [ "$brightness" -eq 0 ]; then
|
||||
brightness_icon="gpm-brightness-lcd-disabled"
|
||||
else
|
||||
brightness_icon="gpm-brightness-lcd"
|
||||
fi
|
||||
}
|
||||
|
||||
function get_kbd_brightness_icon {
|
||||
kbd_brightness=$(get_kbd_brightness)
|
||||
if [ "$kbd_brightness" -eq 0 ]; then
|
||||
kbd_brightness_icon="gpm-brightness-kbd-disabled"
|
||||
else
|
||||
kbd_brightness_icon="gpm-brightness-kbd"
|
||||
fi
|
||||
}
|
||||
|
||||
function get_album_art {
|
||||
url=$(playerctl -f "{{mpris:artUrl}}" metadata)
|
||||
if [[ $url == "file://"* ]]; then
|
||||
album_art="${url/file:\/\//}"
|
||||
elif [[ $url == "http://"* ]] && [[ $download_album_art == "true" ]]; then
|
||||
# Identify filename from URL
|
||||
filename="$(echo $url | sed "s/.*\///")"
|
||||
|
||||
# Download file to /tmp if it doesn't exist
|
||||
if [ ! -f "/tmp/$filename" ]; then
|
||||
wget -O "/tmp/$filename" "$url"
|
||||
fi
|
||||
|
||||
album_art="/tmp/$filename"
|
||||
elif [[ $url == "https://"* ]] && [[ $download_album_art == "true" ]]; then
|
||||
# Identify filename from URL
|
||||
filename="$(echo $url | sed "s/.*\///")"
|
||||
|
||||
# Download file to /tmp if it doesn't exist
|
||||
if [ ! -f "/tmp/$filename" ]; then
|
||||
wget -O "/tmp/$filename" "$url"
|
||||
fi
|
||||
|
||||
album_art="/tmp/$filename"
|
||||
else
|
||||
album_art=""
|
||||
fi
|
||||
}
|
||||
|
||||
# Displays a volume notification
|
||||
function show_volume_notif {
|
||||
volume=$(get_mute)
|
||||
get_volume_icon
|
||||
|
||||
notify-send -a "volume-brightness" -t $volume_notification_timeout -h string:x-dunst-stack-tag:volume_notif -h int:value:$volume -i "$volume_icon" "Volume"
|
||||
}
|
||||
|
||||
function show_mic_volume_notif {
|
||||
mic_volume=$(get_mic_mute)
|
||||
get_mic_volume_icon
|
||||
|
||||
notify-send -a "volume-brightness" -t $mic_volume_notification_timeout -h string:x-dunst-stack-tag:volume_notif -h int:value:$mic_volume -i "$mic_volume_icon" "Microphone volume"
|
||||
}
|
||||
|
||||
# Displays a music notification
|
||||
function show_music_notif {
|
||||
song_title=$(playerctl -f "{{title}}" metadata)
|
||||
song_artist=$(playerctl -f "{{artist}}" metadata)
|
||||
song_album=$(playerctl -f "{{album}}" metadata)
|
||||
|
||||
if [[ $show_album_art == "true" ]]; then
|
||||
get_album_art
|
||||
fi
|
||||
|
||||
notify-send -a "volume-brightness" -t $player_notification_timeout -h string:x-dunst-stack-tag:music_notif -i "$album_art" "$song_title" "$song_artist - $song_album"
|
||||
}
|
||||
|
||||
# Displays a brightness notification using dunstify
|
||||
function show_brightness_notif {
|
||||
brightness=$(get_brightness)
|
||||
echo $brightness
|
||||
get_brightness_icon
|
||||
notify-send -a "volume-brightness" -t $brightness_notification_timeout -h string:x-dunst-stack-tag:brightness_notif -h int:value:$brightness -i "$brightness_icon" "Brightness"
|
||||
}
|
||||
|
||||
function show_kbd_brightness_notif {
|
||||
kbd_brightness=$(get_kbd_brightness)
|
||||
echo $kbd_brightness
|
||||
get_kbd_brightness_icon
|
||||
notify-send -a "volume-brightness" -t $kbd_brightness_notification_timeout -h string:x-dunst-stack-tag:brightness_notif -h int:value:$kbd_brightness -i "$kbd_brightness_icon" "Keyboard brightness"
|
||||
}
|
||||
|
||||
# Main function - Takes user input, "volume_up", "volume_down", "brightness_up", or "brightness_down"
|
||||
case $1 in
|
||||
volume_up)
|
||||
# Unmutes and increases volume, then displays the notification
|
||||
pactl set-sink-mute @DEFAULT_SINK@ 0
|
||||
volume=$(get_volume)
|
||||
if [ $(( "$volume" + "$volume_step" )) -gt $max_volume ]; then
|
||||
pactl set-sink-volume @DEFAULT_SINK@ $max_volume%
|
||||
else
|
||||
pactl set-sink-volume @DEFAULT_SINK@ +$volume_step%
|
||||
fi
|
||||
show_volume_notif
|
||||
;;
|
||||
|
||||
volume_down)
|
||||
# Raises volume and displays the notification
|
||||
pactl set-sink-volume @DEFAULT_SINK@ -$volume_step%
|
||||
show_volume_notif
|
||||
;;
|
||||
|
||||
volume_mute)
|
||||
# Toggles mute and displays the notification
|
||||
pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
show_volume_notif
|
||||
;;
|
||||
|
||||
mic_volume_up)
|
||||
# Unmutes and increases volume, then displays the notification
|
||||
pactl set-source-mute @DEFAULT_SOURCE@ 0
|
||||
mic_volume=$(get_mic_volume)
|
||||
if [ $(( "$mic_volume" + "$mic_volume_step" )) -gt $max_mic_volume ]; then
|
||||
pactl set-source-volume @DEFAULT_SOURCE@ $max_mic_volume%
|
||||
else
|
||||
pactl set-source-volume @DEFAULT_SOURCE@ +$mic_volume_step%
|
||||
fi
|
||||
show_mic_volume_notif
|
||||
;;
|
||||
|
||||
mic_volume_down)
|
||||
# Raises volume and displays the notification
|
||||
pactl set-source-volume @DEFAULT_SOURCE@ -$mic_volume_step%
|
||||
show_mic_volume_notif
|
||||
;;
|
||||
|
||||
mic_volume_mute)
|
||||
# Toggles mute and displays the notification
|
||||
pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
show_mic_volume_notif
|
||||
;;
|
||||
|
||||
brightness_up)
|
||||
# Increases brightness and displays the notification
|
||||
brightnessctl -c backlight set $brightness_step%+
|
||||
show_brightness_notif
|
||||
;;
|
||||
|
||||
brightness_down)
|
||||
# Decreases brightness and displays the notification
|
||||
brightnessctl -c backlight set $brightness_step%-
|
||||
show_brightness_notif
|
||||
;;
|
||||
|
||||
kbd_brightness_up)
|
||||
# Increases brightness and displays the notification
|
||||
brightnessctl -d kbd_backlight set $kbd_brightness_step%+
|
||||
show_kbd_brightness_notif
|
||||
;;
|
||||
|
||||
kbd_brightness_down)
|
||||
# Decreases brightness and displays the notification
|
||||
brightnessctl -d kbd_backlight set $kbd_brightness_step%-
|
||||
show_kbd_brightness_notif
|
||||
;;
|
||||
|
||||
next_track)
|
||||
# Skips to the next song and displays the notification
|
||||
playerctl next
|
||||
sleep 0.5 && show_music_notif
|
||||
;;
|
||||
|
||||
prev_track)
|
||||
# Skips to the previous song and displays the notification
|
||||
playerctl previous
|
||||
sleep 0.5 && show_music_notif
|
||||
;;
|
||||
|
||||
play_pause)
|
||||
playerctl play-pause
|
||||
show_music_notif
|
||||
# Pauses/resumes playback and displays the notification
|
||||
;;
|
||||
esac
|
||||
|
32
config/dunst/dunstrc
Normal file
32
config/dunst/dunstrc
Normal file
|
@ -0,0 +1,32 @@
|
|||
[global]
|
||||
frame_color = "#cba6f7"
|
||||
separator_color = frame
|
||||
font = Rubik Medium 11
|
||||
icon_theme = "Papirus-Dark"
|
||||
enable_recursive_icon_lookup = true
|
||||
frame_width = 2
|
||||
corner_radius = 10
|
||||
progress_bar_corner_radius = 10
|
||||
progress_bar_frame_width = 1
|
||||
origin = top-right
|
||||
|
||||
[urgency_low]
|
||||
background = "#1e1e2ee6"
|
||||
foreground = "#cdd6f4"
|
||||
highlight = "#cba6f7"
|
||||
|
||||
[urgency_normal]
|
||||
background = "#1e1e2ee6"
|
||||
foreground = "#cdd6f4"
|
||||
highlight = "#cba6f7"
|
||||
|
||||
[urgency_critical]
|
||||
background = "#1e1e2ee6"
|
||||
foreground = "#cdd6f4"
|
||||
frame_color = "#ed5365"
|
||||
highlight = "#cba6f7"
|
||||
|
||||
[volume-brightness]
|
||||
appname = volume-brightness
|
||||
alignment = center
|
||||
max_icon_size = 128
|
82
config/fastfetch/config.jsonc
Normal file
82
config/fastfetch/config.jsonc
Normal file
|
@ -0,0 +1,82 @@
|
|||
// Inspired by Catnap
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"type": "kitty",
|
||||
"source": "~/Pictures/AsahiLinux_logomark.png",
|
||||
"padding": {
|
||||
"top": 1
|
||||
}
|
||||
},
|
||||
"display": {
|
||||
"separator": " ",
|
||||
"color": {
|
||||
"keys": "35"
|
||||
}
|
||||
},
|
||||
"modules": [
|
||||
{
|
||||
"key": " ",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"key": " ",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"key": "╭───────────╮",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"key": "│ {#31} user {#keys}│",
|
||||
"type": "title",
|
||||
"format": "{user-name}"
|
||||
},
|
||||
{
|
||||
"key": "│ {#32}{icon} distro {#keys}│",
|
||||
"type": "os"
|
||||
},
|
||||
{
|
||||
"key": "│ {#33} wm {#keys}│",
|
||||
"type": "wm"
|
||||
},
|
||||
{
|
||||
"key": "│ {#34} cpu {#keys}│",
|
||||
"type": "cpu",
|
||||
},
|
||||
{
|
||||
"key": "│ {#36} term {#keys}│",
|
||||
"type": "terminal"
|
||||
},
|
||||
{
|
||||
"key": "│ {#31} font {#keys}│",
|
||||
"type": "terminalfont"
|
||||
},
|
||||
{
|
||||
"key": "│ {#32} shell {#keys}│",
|
||||
"type": "shell"
|
||||
},
|
||||
{
|
||||
"key": "│ {#33} editor {#keys}│",
|
||||
"type": "editor",
|
||||
},
|
||||
{
|
||||
"key": "│ {#34} pkgs {#keys}│",
|
||||
"type": "packages",
|
||||
},
|
||||
|
||||
{
|
||||
"key": "├───────────┤",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"key": "│ {#39} colors {#keys}│",
|
||||
"type": "colors",
|
||||
"symbol": "circle"
|
||||
},
|
||||
{
|
||||
"key": "╰───────────╯",
|
||||
"type": "custom"
|
||||
}
|
||||
]
|
||||
}
|
0
config/gtk-3.0/bookmarks
Normal file
0
config/gtk-3.0/bookmarks
Normal file
7
config/gtk-3.0/settings.ini
Normal file
7
config/gtk-3.0/settings.ini
Normal file
|
@ -0,0 +1,7 @@
|
|||
[Settings]
|
||||
gtk-theme-name = catppuccin-mocha-mauve-standard+default
|
||||
gtk-font-name = Rubik Medium, 11
|
||||
gtk-cursor-theme-name = Bibata-Modern-ClassicX
|
||||
gtk-icon-theme-name = Papirus-Dark
|
||||
gtk-application-prefer-dark-theme = false
|
||||
|
7
config/gtk-4.0/settings.ini
Normal file
7
config/gtk-4.0/settings.ini
Normal file
|
@ -0,0 +1,7 @@
|
|||
[Settings]
|
||||
gtk-theme-name = catppuccin-mocha-mauve-standard+default
|
||||
gtk-font-name = Rubik Medium, 11
|
||||
gtk-cursor-theme-name = Bibata-Modern-ClassicX
|
||||
gtk-icon-theme-name = Papirus-Dark
|
||||
gtk-application-prefer-dark-theme = false
|
||||
|
28
config/hypr/hypridle.conf
Normal file
28
config/hypr/hypridle.conf
Normal file
|
@ -0,0 +1,28 @@
|
|||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
||||
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 180 # 3 min.
|
||||
on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
on-resume = brightnessctl -r # monitor backlight restore.
|
||||
}
|
||||
|
||||
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
|
||||
listener {
|
||||
timeout = 180 # 3 min.
|
||||
on-timeout = brightnessctl -d kbd_backlight -s set 0% # turn off keyboard backlight.
|
||||
on-resume = brightnessctl -d kbd_backlight -r # turn on keyboard backlight.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 300 # 5 min
|
||||
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600 # 10 min
|
||||
on-timeout = systemctl suspend # suspend pc
|
||||
}
|
222
config/hypr/hyprland.conf
Normal file
222
config/hypr/hyprland.conf
Normal file
|
@ -0,0 +1,222 @@
|
|||
#
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
#
|
||||
|
||||
source = ~/.config/hypr/mocha.conf
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor = ,preferred,auto,auto
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
|
||||
# Execute your favorite apps at launch
|
||||
exec-once = waybar
|
||||
exec-once = hyprpaper
|
||||
exec-once = dunst
|
||||
exec-once = nm-applet
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once = /usr/libexec/polkit-gnome-authentication-agent-1
|
||||
exec-once = copyq --start-server
|
||||
exec-once = udiskie
|
||||
exec-once = blueman-applet
|
||||
exec-once = hypridle
|
||||
exec-once = nekobox
|
||||
|
||||
# Source a file (multi-file configs)
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = kitty
|
||||
$fileManager = nemo
|
||||
$menu = rofi -show drun
|
||||
|
||||
# Some default env vars.
|
||||
env = HYPRCURSOR_THEME, Bibata-Modern-Classic
|
||||
env = HYPRCURSOR_SIZE, 24
|
||||
env = QT_QPA_PLATFORMTHEME, qt5ct # change to qt6ct if you have that
|
||||
env = SUDO_EDITOR, nvim
|
||||
env = SYSTEMD_EDITOR, nvim
|
||||
env = EDITOR, nvim
|
||||
env = TERMINAL, kitty
|
||||
env = BROWSER, firefox
|
||||
|
||||
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
||||
input {
|
||||
kb_layout = us,ru
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options = grp:alt_shift_toggle
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
touchpad {
|
||||
natural_scroll = yes
|
||||
}
|
||||
|
||||
sensitivity = 0 # -1.0 to 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
general {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
gaps_in = 5
|
||||
gaps_out = 20
|
||||
border_size = 2
|
||||
col.active_border = $mauve rgba($mauveAlphaee) 45deg
|
||||
col.inactive_border = rgba($baseAlphaaa)
|
||||
|
||||
layout = dwindle
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
}
|
||||
|
||||
decoration {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
rounding = 10
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
size = 7
|
||||
passes = 1
|
||||
}
|
||||
|
||||
drop_shadow = yes
|
||||
shadow_range = 4
|
||||
shadow_render_power = 3
|
||||
col.shadow = rgba($baseAlphaee)
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
|
||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
dwindle {
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = yes # you probably want this
|
||||
}
|
||||
|
||||
master {
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
new_is_master = true
|
||||
}
|
||||
|
||||
gestures {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
workspace_swipe = on
|
||||
}
|
||||
|
||||
misc {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
# Example windowrule v1
|
||||
# windowrule = float, ^(kitty)$
|
||||
# Example windowrule v2
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
|
||||
windowrulev2 = opacity 0.9, class:(kitty)
|
||||
windowrulev2 = opacity 0.9, class:(dunst)
|
||||
windowrulev2 = float, class:(imv)
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
$mainMod = SUPER
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod, Return, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod SHIFT, Q, exit,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
# bind = $mainMod, J, togglesplit, # dwindle
|
||||
bind = $mainMod SHIFT, F, workspaceopt, allfloat
|
||||
bind = $mainMod, F, fullscreen
|
||||
bind = $mainMod, X, exec, copyq toggle
|
||||
bind = $mainMod, S, exec, sspath="$(xdg-user-dir PICTURES)/screenshots/$(date +'ss_%F_%H-%M-%S.png')" && grim "$sspath" && wl-copy -t image/png < "$sspath"
|
||||
bind = $mainMod SHIFT, S, exec, sspath="$(xdg-user-dir PICTURES)/screenshots/$(date +'ss_%F_%H-%M-%S.png')" && grim -g "$(slurp)" "$sspath" && wl-copy -t image/png < "$sspath"
|
||||
bind = $mainMod SHIFT, L, exec, hyprlock
|
||||
|
||||
bindle = , XF86MonBrightnessDown, exec, ~/.local/bin/volume-brightness brightness_down
|
||||
bindle = , XF86MonBrightnessUp, exec, ~/.local/bin/volume-brightness brightness_up
|
||||
bindle = ALT_L, XF86MonBrightnessDown, exec, ~/.local/bin/volume-brightness kbd_brightness_down
|
||||
bindle = ALT_L, XF86MonBrightnessUp, exec, ~/.local/bin/volume-brightness kbd_brightness_up
|
||||
# bind = , XF86LaunchA, exec, $menu
|
||||
bind = , XF86Search, exec, $menu
|
||||
bindl = , XF86AudioRecord, exec, ~/.local/bin/volume-brightness mic_volume_mute
|
||||
bindl = , XF86AudioPrev, exec, ~/.local/bin/volume-brightness prev_track
|
||||
bindl = , XF86AudioPlay, exec, ~/.local/bin/volume-brightness play_pause
|
||||
bindl = , XF86AudioNext, exec, ~/.local/bin/volume-brightness next_track
|
||||
bindl = , XF86AudioMute, exec, ~/.local/bin/volume-brightness volume_mute
|
||||
bindl = ALT_L, XF86AudioMute, exec, ~/.local/bin/volume-brightness mic_volume_mute
|
||||
bindle = , XF86AudioLowerVolume, exec, ~/.local/bin/volume-brightness volume_down
|
||||
bindle = , XF86AudioRaiseVolume, exec, ~/.local/bin/volume-brightness volume_up
|
||||
bindle = ALT_L, XF86AudioLowerVolume, exec, ~/.local/bin/volume-brightness mic_volume_down
|
||||
bindle = ALT_L, XF86AudioRaiseVolume, exec, ~/.local/bin/volume-brightness mic_volume_up
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, h, movefocus, l
|
||||
bind = $mainMod, l, movefocus, r
|
||||
bind = $mainMod, k, movefocus, u
|
||||
bind = $mainMod, j, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
# bind = $mainMod, S, togglespecialworkspace, magic
|
||||
# bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, Control_L, movewindow
|
||||
bindm = $mainMod, ALT_L, resizewindow
|
99
config/hypr/hyprlock.conf
Normal file
99
config/hypr/hyprlock.conf
Normal file
|
@ -0,0 +1,99 @@
|
|||
source = /home/egor/.config/hypr/mocha.conf
|
||||
|
||||
hide_cursor = true
|
||||
ignore_empty_input = true
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = screenshot
|
||||
color = rgba(0, 0, 0, 0)
|
||||
|
||||
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
||||
blur_passes = 3 # 0 disables blurring
|
||||
blur_size = 7
|
||||
noise = 0.0117
|
||||
contrast = 0.8916
|
||||
brightness = 0.8172
|
||||
vibrancy = 0.1696
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 400, 50
|
||||
outline_thickness = 3
|
||||
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
|
||||
outer_color = $base
|
||||
inner_color = $text
|
||||
font_color = rgb(10, 10, 10)
|
||||
fade_on_empty = true
|
||||
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
|
||||
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
|
||||
hide_input = false
|
||||
rounding = -1 # -1 means complete rounding (circle/oval)
|
||||
check_color = rgb(204, 136, 34)
|
||||
fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
|
||||
fail_timeout = 2000 # milliseconds before fail_text and fail_color disappears
|
||||
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
|
||||
capslock_color = -1
|
||||
numlock_color = -1
|
||||
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
|
||||
invert_numlock = false # change color if numlock is off
|
||||
swap_font_color = false # see below
|
||||
|
||||
position = 0, -180
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = Locked
|
||||
shadow_passes = 1
|
||||
shadow_size = 3
|
||||
text_align = center # center/right or any value for default left. multi-line text alignment inside label container
|
||||
color = rgba($textAlphaff)
|
||||
font_size = 64
|
||||
font_family = Rubik Medium
|
||||
rotate = 0 # degrees, counter-clockwise
|
||||
|
||||
position = 0, 140
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME
|
||||
shadow_passes = 1
|
||||
shadow_size = 3
|
||||
text_align = center # center/right or any value for default left. multi-line text alignment inside label container
|
||||
color = rgba($mauveAlphaff)
|
||||
font_size = 128
|
||||
font_family = Rubik Medium
|
||||
rotate = 0 # degrees, counter-clockwise
|
||||
|
||||
position = 0, 0
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = $LAYOUT
|
||||
shadow_passes = 1
|
||||
shadow_size = 3
|
||||
text_align = center # center/right or any value for default left. multi-line text alignment inside label container
|
||||
color = rgba($textAlphaff)
|
||||
font_size = 32
|
||||
font_family = Rubik Medium
|
||||
rotate = 0 # degrees, counter-clockwise
|
||||
|
||||
position = 0, -100
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
8
config/hypr/hyprpaper.conf
Normal file
8
config/hypr/hyprpaper.conf
Normal file
|
@ -0,0 +1,8 @@
|
|||
preload = ~/Pictures/wallpapers/19-cat.jpg
|
||||
wallpaper = ,~/Pictures/wallpapers/19-cat.jpg
|
||||
|
||||
#enable splash text rendering over the wallpaper
|
||||
splash = false
|
||||
|
||||
#fully disable ipc
|
||||
ipc = off
|
78
config/hypr/mocha.conf
Normal file
78
config/hypr/mocha.conf
Normal file
|
@ -0,0 +1,78 @@
|
|||
|
||||
$rosewater = rgb(f5e0dc)
|
||||
$rosewaterAlpha = f5e0dc
|
||||
|
||||
$flamingo = rgb(f2cdcd)
|
||||
$flamingoAlpha = f2cdcd
|
||||
|
||||
$pink = rgb(f5c2e7)
|
||||
$pinkAlpha = f5c2e7
|
||||
|
||||
$mauve = rgb(cba6f7)
|
||||
$mauveAlpha = cba6f7
|
||||
|
||||
$red = rgb(f38ba8)
|
||||
$redAlpha = f38ba8
|
||||
|
||||
$maroon = rgb(eba0ac)
|
||||
$maroonAlpha = eba0ac
|
||||
|
||||
$peach = rgb(fab387)
|
||||
$peachAlpha = fab387
|
||||
|
||||
$yellow = rgb(f9e2af)
|
||||
$yellowAlpha = f9e2af
|
||||
|
||||
$green = rgb(a6e3a1)
|
||||
$greenAlpha = a6e3a1
|
||||
|
||||
$teal = rgb(94e2d5)
|
||||
$tealAlpha = 94e2d5
|
||||
|
||||
$sky = rgb(89dceb)
|
||||
$skyAlpha = 89dceb
|
||||
|
||||
$sapphire = rgb(74c7ec)
|
||||
$sapphireAlpha = 74c7ec
|
||||
|
||||
$blue = rgb(89b4fa)
|
||||
$blueAlpha = 89b4fa
|
||||
|
||||
$lavender = rgb(b4befe)
|
||||
$lavenderAlpha = b4befe
|
||||
|
||||
$text = rgb(cdd6f4)
|
||||
$textAlpha = cdd6f4
|
||||
|
||||
$subtext1 = rgb(bac2de)
|
||||
$subtext1Alpha = bac2de
|
||||
|
||||
$subtext0 = rgb(a6adc8)
|
||||
$subtext0Alpha = a6adc8
|
||||
|
||||
$overlay2 = rgb(9399b2)
|
||||
$overlay2Alpha = 9399b2
|
||||
|
||||
$overlay1 = rgb(7f849c)
|
||||
$overlay1Alpha = 7f849c
|
||||
|
||||
$overlay0 = rgb(6c7086)
|
||||
$overlay0Alpha = 6c7086
|
||||
|
||||
$surface2 = rgb(585b70)
|
||||
$surface2Alpha = 585b70
|
||||
|
||||
$surface1 = rgb(45475a)
|
||||
$surface1Alpha = 45475a
|
||||
|
||||
$surface0 = rgb(313244)
|
||||
$surface0Alpha = 313244
|
||||
|
||||
$base = rgb(1e1e2e)
|
||||
$baseAlpha = 1e1e2e
|
||||
|
||||
$mantle = rgb(181825)
|
||||
$mantleAlpha = 181825
|
||||
|
||||
$crust = rgb(11111b)
|
||||
$crustAlpha = 11111b
|
50
config/kitty/current-theme.conf
Normal file
50
config/kitty/current-theme.conf
Normal file
|
@ -0,0 +1,50 @@
|
|||
# vim:ft=kitty
|
||||
|
||||
## name: Tokyo Night Moon
|
||||
## license: MIT
|
||||
## author: Folke Lemaitre
|
||||
## upstream: https://github.com/folke/tokyonight.nvim/raw/main/extras/kitty/tokyonight_moon.conf
|
||||
|
||||
|
||||
background #222436
|
||||
foreground #c8d3f5
|
||||
selection_background #2d3f76
|
||||
selection_foreground #c8d3f5
|
||||
url_color #4fd6be
|
||||
cursor #c8d3f5
|
||||
cursor_text_color #222436
|
||||
|
||||
# Tabs
|
||||
active_tab_background #82aaff
|
||||
active_tab_foreground #1e2030
|
||||
inactive_tab_background #2f334d
|
||||
inactive_tab_foreground #545c7e
|
||||
#tab_bar_background #1b1d2b
|
||||
|
||||
# Windows
|
||||
active_border_color #82aaff
|
||||
inactive_border_color #2f334d
|
||||
|
||||
# normal
|
||||
color0 #1b1d2b
|
||||
color1 #ff757f
|
||||
color2 #c3e88d
|
||||
color3 #ffc777
|
||||
color4 #82aaff
|
||||
color5 #c099ff
|
||||
color6 #86e1fc
|
||||
color7 #828bb8
|
||||
|
||||
# bright
|
||||
color8 #444a73
|
||||
color9 #ff757f
|
||||
color10 #c3e88d
|
||||
color11 #ffc777
|
||||
color12 #82aaff
|
||||
color13 #c099ff
|
||||
color14 #86e1fc
|
||||
color15 #c8d3f5
|
||||
|
||||
# extended colors
|
||||
color16 #ff966c
|
||||
color17 #c53b53
|
14
config/kitty/kitty.conf
Normal file
14
config/kitty/kitty.conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
hide_window_decorations yes
|
||||
include current-theme.conf
|
||||
enable_audio_bell no
|
||||
|
||||
font_size 11.0
|
||||
font_family CaskaydiaCove Nerd Font
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
|
||||
map ctrl+shift+enter new_window_with_cwd
|
||||
|
||||
enabled_layouts fat:bias=75;full_size=1;mirrored=false,tall:bias=50;full_size=1;mirrored=false,horizontal
|
||||
|
4
config/nvim/init.lua
Normal file
4
config/nvim/init.lua
Normal file
|
@ -0,0 +1,4 @@
|
|||
require('config.options')
|
||||
require('config.lazy')
|
||||
require('config.keymaps')
|
||||
|
31
config/nvim/lazy-lock.json
Normal file
31
config/nvim/lazy-lock.json
Normal file
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "2e3c8cc5a57ddd32f1edd2ffd2ccb10c09421f6c" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
|
||||
"go.nvim": { "branch": "master", "commit": "e66c3240d26936428cd0f320dc5ffa1eb01538b8" },
|
||||
"guihua.lua": { "branch": "master", "commit": "225db770e36aae6a1e9e3a65578095c8eb4038d3" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "f2acd4a21db1ca0a12559e7a9f7cdace3bdbfb09" },
|
||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||
"nvim": { "branch": "main", "commit": "18bab5ec4c782cdf7d7525dbe89c60bfa02fc195" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "48ca9aaee733911424646cb1605f27bc01dedbe3" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "ad32182cc4a03c8826a64e9ced68046c575fdb7d" },
|
||||
"nvim-neoclip.lua": { "branch": "main", "commit": "709c97fabec9da7d04f7d2f5e207423af8c02871" },
|
||||
"nvim-surround": { "branch": "main", "commit": "ec2dc7671067e0086cdf29c2f5df2dd909d5f71f" },
|
||||
"nvim-tree.lua": { "branch": "master", "commit": "ad0b95dee55955817af635fa121f6e2486b10583" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "3de418e73d5b912096229aaeea8bb7aef5094e0d" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||
"sqlite.lua": { "branch": "master", "commit": "d0ffd703b56d090d213b497ed4eb840495f14a11" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" },
|
||||
"vim-be-good": { "branch": "master", "commit": "4fa57b7957715c91326fcead58c1fa898b9b3625" }
|
||||
}
|
9
config/nvim/lua/config/keymaps.lua
Normal file
9
config/nvim/lua/config/keymaps.lua
Normal file
|
@ -0,0 +1,9 @@
|
|||
vim.keymap.set('n', '<c-w>v', ':vnew<cr>')
|
||||
vim.keymap.set('n', '<c-b>', ':bn<cr>')
|
||||
vim.keymap.set('n', '<s-b>', ':bp<cr>')
|
||||
vim.keymap.set('n', '<c-d>', ':bd<cr>:bn<cr>')
|
||||
vim.keymap.set('n', '<c-j>', '<c-w><Down>')
|
||||
vim.keymap.set('n', '<c-k>', '<c-w><Up>')
|
||||
vim.keymap.set('n', '<c-h>', '<c-w><Left>')
|
||||
vim.keymap.set('n', '<c-l>', '<c-w><Right>')
|
||||
|
17
config/nvim/lua/config/lazy.lua
Normal file
17
config/nvim/lua/config/lazy.lua
Normal file
|
@ -0,0 +1,17 @@
|
|||
-- Bootstrap lazy.nvim
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
-- Make sure to setup `mapleader` and `maplocalleader` before
|
||||
-- loading lazy.nvim so that mappings are correct.
|
||||
-- s also a good place to setup other settings (vim.opt)
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = "\\"
|
||||
|
||||
-- Setup lazy.nvim
|
||||
require('lazy').setup('plugins')
|
||||
|
25
config/nvim/lua/config/options.lua
Normal file
25
config/nvim/lua/config/options.lua
Normal file
|
@ -0,0 +1,25 @@
|
|||
vim.g.mapleader = ' '
|
||||
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
vim.opt.autoindent = true
|
||||
vim.opt.clipboard = 'unnamedplus'
|
||||
vim.opt.mouse = 'a'
|
||||
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.expandtab = true
|
||||
|
||||
vim.opt.number = true
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.cursorline = true
|
||||
vim.opt.splitbelow = true
|
||||
vim.opt.splitright = true
|
||||
vim.opt.showmode = false
|
||||
|
||||
vim.opt.incsearch = true
|
||||
vim.opt.hlsearch = false
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.smartcase = true
|
||||
|
6
config/nvim/lua/plugins/autopairs.lua
Normal file
6
config/nvim/lua/plugins/autopairs.lua
Normal file
|
@ -0,0 +1,6 @@
|
|||
return {
|
||||
'windwp/nvim-autopairs',
|
||||
event = 'InsertEnter',
|
||||
config = true,
|
||||
}
|
||||
|
21
config/nvim/lua/plugins/bufferline.lua
Normal file
21
config/nvim/lua/plugins/bufferline.lua
Normal file
|
@ -0,0 +1,21 @@
|
|||
return {
|
||||
'akinsho/bufferline.nvim',
|
||||
version = '*',
|
||||
dependencies = 'nvim-tree/nvim-web-devicons',
|
||||
config = function ()
|
||||
require('bufferline').setup({
|
||||
options = {
|
||||
diagnostics = 'nvim_lsp',
|
||||
separator_style = 'slant',
|
||||
offsets = {
|
||||
{
|
||||
filetype = "NvimTree",
|
||||
text = "File Explorer",
|
||||
highlight = "Directory",
|
||||
separator = true
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
}
|
22
config/nvim/lua/plugins/go.lua
Normal file
22
config/nvim/lua/plugins/go.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
return {
|
||||
'ray-x/go.nvim',
|
||||
dependencies = {
|
||||
'ray-x/guihua.lua',
|
||||
'neovim/nvim-lspconfig',
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
},
|
||||
config = function()
|
||||
require('go').setup()
|
||||
local format_sync_grp = vim.api.nvim_create_augroup("GoFormat", {})
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
pattern = "*.go",
|
||||
callback = function()
|
||||
require('go.format').goimports()
|
||||
end,
|
||||
group = format_sync_grp,
|
||||
})
|
||||
end,
|
||||
event = {'CmdlineEnter'},
|
||||
ft = {'go', 'gomod'},
|
||||
build = ':lua require("go.install").update_all_sync()'
|
||||
}
|
8
config/nvim/lua/plugins/init.lua
Normal file
8
config/nvim/lua/plugins/init.lua
Normal file
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
{
|
||||
'williamboman/mason.nvim',
|
||||
config = true
|
||||
},
|
||||
'ThePrimeagen/vim-be-good',
|
||||
}
|
||||
|
97
config/nvim/lua/plugins/lsp.lua
Normal file
97
config/nvim/lua/plugins/lsp.lua
Normal file
|
@ -0,0 +1,97 @@
|
|||
return {
|
||||
{
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
opts = {
|
||||
ensure_installed = { 'lua_ls', 'gopls', 'rust_analyzer', 'pylsp' }
|
||||
}
|
||||
},
|
||||
{
|
||||
'L3MON4D3/LuaSnip',
|
||||
version = 'v2.*',
|
||||
build = 'make install_jsregexp',
|
||||
dependencies = {
|
||||
'rafamadriz/friendly-snippets'
|
||||
},
|
||||
config = function ()
|
||||
local vscode_loader = require('luasnip.loaders.from_vscode')
|
||||
vscode_loader.lazy_load()
|
||||
vscode_loader.lazy_load({ paths = { './snippets' } })
|
||||
local ls = require('luasnip')
|
||||
vim.keymap.set({"i"}, "<C-K>", function() ls.expand() end, {silent = true})
|
||||
vim.keymap.set({"i", "s"}, "<C-L>", function() ls.jump( 1) end, {silent = true})
|
||||
vim.keymap.set({"i", "s"}, "<C-J>", function() ls.jump(-1) end, {silent = true})
|
||||
end
|
||||
},
|
||||
{
|
||||
'hrsh7th/nvim-cmp',
|
||||
event = 'InsertEnter',
|
||||
dependencies = {
|
||||
'hrsh7th/cmp-buffer',
|
||||
'hrsh7th/cmp-path',
|
||||
'hrsh7th/cmp-cmdline',
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
'saadparwaiz1/cmp_luasnip'
|
||||
},
|
||||
config = function ()
|
||||
local has_words_before = function()
|
||||
unpack = unpack or table.unpack
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||
end
|
||||
|
||||
local cmp = require('cmp')
|
||||
local luasnip = require('luasnip')
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<CR>'] = cmp.mapping.confirm({ select = true }),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif has_words_before() then
|
||||
cmp.complete()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable( -1) then
|
||||
luasnip.jump( -1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
{ name = 'buffer' },
|
||||
{ name = 'path' },
|
||||
})
|
||||
})
|
||||
|
||||
end
|
||||
},
|
||||
{
|
||||
'neovim/nvim-lspconfig',
|
||||
config = function()
|
||||
local lspconfig = require('lspconfig')
|
||||
local lsp_capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
lspconfig.lua_ls.setup({ capabilities = lsp_capabilities })
|
||||
lspconfig.rust_analyzer.setup({ capabilities = lsp_capabilities })
|
||||
lspconfig.gopls.setup({ capabilities = lsp_capabilities })
|
||||
lspconfig.typst_lsp.setup({ capabilities = lsp_capabilities })
|
||||
lspconfig.pylsp.setup({ capabilities = lsp_capabilities })
|
||||
end
|
||||
},
|
||||
}
|
7
config/nvim/lua/plugins/lualine.lua
Normal file
7
config/nvim/lua/plugins/lualine.lua
Normal file
|
@ -0,0 +1,7 @@
|
|||
return {
|
||||
{
|
||||
'nvim-lualine/lualine.nvim',
|
||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||
config = true
|
||||
}
|
||||
}
|
9
config/nvim/lua/plugins/mdpreview.lua
Normal file
9
config/nvim/lua/plugins/mdpreview.lua
Normal file
|
@ -0,0 +1,9 @@
|
|||
return {
|
||||
'iamcco/markdown-preview.nvim',
|
||||
cmd = { 'MarkdownPreviewToggle', 'MarkdownPreview', 'MarkdownPreviewStop' },
|
||||
build = 'cd app && yarn install',
|
||||
init = function ()
|
||||
vim.g.mkdp_filetypes = { 'markdown' }
|
||||
end,
|
||||
ft = { 'markdown' }
|
||||
}
|
11
config/nvim/lua/plugins/neoclip.lua
Normal file
11
config/nvim/lua/plugins/neoclip.lua
Normal file
|
@ -0,0 +1,11 @@
|
|||
return {
|
||||
'AckslD/nvim-neoclip.lua',
|
||||
dependencies = {
|
||||
{ 'kkharji/sqlite.lua', module = 'sqlite' },
|
||||
{ 'nvim-telescope/telescope.nvim' }
|
||||
},
|
||||
config = function ()
|
||||
require('neoclip').setup()
|
||||
vim.keymap.set('n', '<leader>v', ':Telescope neoclip plus<cr>')
|
||||
end
|
||||
}
|
6
config/nvim/lua/plugins/surround.lua
Normal file
6
config/nvim/lua/plugins/surround.lua
Normal file
|
@ -0,0 +1,6 @@
|
|||
return {
|
||||
"kylechui/nvim-surround",
|
||||
version = "*", -- Use for stability; omit to use `main` branch for the latest features
|
||||
event = "VeryLazy",
|
||||
config = true
|
||||
}
|
18
config/nvim/lua/plugins/telescope.lua
Normal file
18
config/nvim/lua/plugins/telescope.lua
Normal file
|
@ -0,0 +1,18 @@
|
|||
return {
|
||||
'nvim-telescope/telescope.nvim', tag = '0.1.8',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
config = function ()
|
||||
local builtin = require('telescope.builtin')
|
||||
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
|
||||
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
|
||||
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
|
||||
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
|
||||
vim.keymap.set('n', '<leader>lr', builtin.lsp_references, {})
|
||||
vim.keymap.set('n', '<leader>ld', builtin.lsp_definitions, {})
|
||||
vim.keymap.set('n', '<leader>li', builtin.lsp_implementations, {})
|
||||
vim.keymap.set('n', '<leader>gc', builtin.git_commits, {})
|
||||
vim.keymap.set('n', '<leader>gb', builtin.git_branches, {})
|
||||
vim.keymap.set('n', '<leader>gs', builtin.git_status, {})
|
||||
vim.keymap.set('n', '<leader>bb', builtin.builtin, {})
|
||||
end
|
||||
}
|
17
config/nvim/lua/plugins/theme.lua
Normal file
17
config/nvim/lua/plugins/theme.lua
Normal file
|
@ -0,0 +1,17 @@
|
|||
return {
|
||||
'catppuccin/nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
require('catppuccin').setup({
|
||||
flavour = 'mocha',
|
||||
integrations = {
|
||||
cmp = true,
|
||||
nvimtree = true,
|
||||
treesitter = true
|
||||
}
|
||||
})
|
||||
vim.cmd[[colorscheme catppuccin]]
|
||||
end
|
||||
}
|
||||
|
19
config/nvim/lua/plugins/tree.lua
Normal file
19
config/nvim/lua/plugins/tree.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
return {
|
||||
'nvim-tree/nvim-tree.lua',
|
||||
dependencies = {
|
||||
'nvim-tree/nvim-web-devicons'
|
||||
},
|
||||
config = function ()
|
||||
vim.g.loaded_netrw = 1
|
||||
vim.g.loaded_netrwPlugin = 1
|
||||
vim.keymap.set('n', '<leader>e', ':NvimTreeToggle<cr>')
|
||||
require('nvim-tree').setup({
|
||||
filters = {
|
||||
dotfiles = true
|
||||
}
|
||||
})
|
||||
vim.api.nvim_create_autocmd({"QuitPre"}, {
|
||||
callback = function() vim.cmd("NvimTreeClose") end,
|
||||
})
|
||||
end
|
||||
}
|
14
config/nvim/lua/plugins/treesitter.lua
Normal file
14
config/nvim/lua/plugins/treesitter.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
return {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
build = ':TSUpdate',
|
||||
config = function ()
|
||||
local configs = require('nvim-treesitter.configs')
|
||||
configs.setup({
|
||||
ensure_installed = { 'c', 'lua', 'vim', 'vimdoc', 'query' },
|
||||
auto_install = true,
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true }
|
||||
})
|
||||
end
|
||||
}
|
||||
|
37
config/nvim/lua/plugins/trouble.lua
Normal file
37
config/nvim/lua/plugins/trouble.lua
Normal file
|
@ -0,0 +1,37 @@
|
|||
return {
|
||||
"folke/trouble.nvim",
|
||||
opts = {},
|
||||
cmd = "Trouble",
|
||||
keys = {
|
||||
{
|
||||
"<leader>xx",
|
||||
"<cmd>Trouble diagnostics toggle<cr>",
|
||||
desc = "Diagnostics (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>xX",
|
||||
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
|
||||
desc = "Buffer Diagnostics (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>cs",
|
||||
"<cmd>Trouble symbols toggle focus=false<cr>",
|
||||
desc = "Symbols (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>cl",
|
||||
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
|
||||
desc = "LSP Definitions / references / ... (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>xL",
|
||||
"<cmd>Trouble loclist toggle<cr>",
|
||||
desc = "Location List (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>xQ",
|
||||
"<cmd>Trouble qflist toggle<cr>",
|
||||
desc = "Quickfix List (Trouble)",
|
||||
},
|
||||
},
|
||||
}
|
13
config/nvim/snippets/package.json
Normal file
13
config/nvim/snippets/package.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"name": "my-snippets",
|
||||
"contributes": {
|
||||
"snippets": [
|
||||
{
|
||||
"language": [
|
||||
"rust"
|
||||
],
|
||||
"path": "./rust.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
34
config/nvim/snippets/rust.json
Normal file
34
config/nvim/snippets/rust.json
Normal file
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"leetcode": {
|
||||
"prefix": "leetcode",
|
||||
"body": [
|
||||
"pub struct Solution;",
|
||||
"impl Solution {",
|
||||
" pub fn ${1:name}(${2:arg}: ${3:Type}) -> ${4:RetType} {",
|
||||
" ${5:todo!();}",
|
||||
" }",
|
||||
"}",
|
||||
"",
|
||||
"#[cfg(test)]",
|
||||
"mod tests {",
|
||||
" use super::Solution;",
|
||||
"",
|
||||
" #[test]",
|
||||
" fn test1() {",
|
||||
" ${6:todo!();}",
|
||||
" }",
|
||||
"",
|
||||
" #[test]",
|
||||
" fn test2() {",
|
||||
" ${7:todo!();}",
|
||||
" }",
|
||||
"",
|
||||
" #[test]",
|
||||
" fn test3() {",
|
||||
" ${8:todo!();}",
|
||||
" }",
|
||||
"}"
|
||||
],
|
||||
"description": "leetcode Solution snippet"
|
||||
}
|
||||
}
|
4
config/qt5ct/colors/Catppuccin-Mocha.conf
Normal file
4
config/qt5ct/colors/Catppuccin-Mocha.conf
Normal file
|
@ -0,0 +1,4 @@
|
|||
[ColorScheme]
|
||||
active_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ff1e1e2e, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
|
||||
disabled_colors=#ffa6adc8, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffa6adc8, #ffa6adc8, #ffa6adc8, #ff1e1e2e, #ff11111b, #ff7f849c, #ff89b4fa, #ff45475a, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
|
||||
inactive_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ffa6adc8, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
|
28
config/qt5ct/qt5ct.conf
Normal file
28
config/qt5ct/qt5ct.conf
Normal file
|
@ -0,0 +1,28 @@
|
|||
[Appearance]
|
||||
color_scheme_path=/home/egor/.config/qt5ct/colors/Catppuccin-Mocha.conf
|
||||
custom_palette=true
|
||||
icon_theme=Papirus-Dark
|
||||
standard_dialogs=default
|
||||
style=Fusion
|
||||
|
||||
[Fonts]
|
||||
fixed=@Variant(\0\0\0@\0\0\0\n\0R\0u\0\x62\0i\0k@&\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x39\x10)
|
||||
general=@Variant(\0\0\0@\0\0\0\n\0R\0u\0\x62\0i\0k@&\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x39\x10)
|
||||
|
||||
[Interface]
|
||||
activate_item_on_single_click=1
|
||||
buttonbox_layout=0
|
||||
cursor_flash_time=1000
|
||||
dialog_buttons_have_icons=1
|
||||
double_click_interval=400
|
||||
gui_effects=@Invalid()
|
||||
keyboard_scheme=2
|
||||
menus_have_icons=true
|
||||
show_shortcuts_in_context_menus=true
|
||||
stylesheets=@Invalid()
|
||||
toolbutton_style=4
|
||||
underline_shortcut=1
|
||||
wheel_scroll_lines=3
|
||||
|
||||
[SettingsWindow]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2\x62\0\0\x2\xd5\0\0\0\0\0\0\0\0\0\0\x2\x7f\0\0\x3\x1\0\0\0\0\x2\0\0\0\x5\0\0\0\0\0\0\0\0\0\0\0\x2\x62\0\0\x2\xd5)
|
4
config/qt6ct/colors/Catppuccin-Mocha.conf
Normal file
4
config/qt6ct/colors/Catppuccin-Mocha.conf
Normal file
|
@ -0,0 +1,4 @@
|
|||
[ColorScheme]
|
||||
active_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ff1e1e2e, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
|
||||
disabled_colors=#ffa6adc8, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffa6adc8, #ffa6adc8, #ffa6adc8, #ff1e1e2e, #ff11111b, #ff7f849c, #ff89b4fa, #ff45475a, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
|
||||
inactive_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ffa6adc8, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
|
32
config/qt6ct/qt6ct.conf
Normal file
32
config/qt6ct/qt6ct.conf
Normal file
|
@ -0,0 +1,32 @@
|
|||
[Appearance]
|
||||
color_scheme_path=/home/egor/.config/qt6ct/colors/Catppuccin-Mocha.conf
|
||||
custom_palette=true
|
||||
icon_theme=Papirus-Dark
|
||||
standard_dialogs=default
|
||||
style=Fusion
|
||||
|
||||
[Fonts]
|
||||
fixed="Rubik,11,-1,5,500,0,0,0,0,0,0,0,0,0,0,1,Medium"
|
||||
general="Rubik,11,-1,5,500,0,0,0,0,0,0,0,0,0,0,1,Medium"
|
||||
|
||||
[Interface]
|
||||
activate_item_on_single_click=1
|
||||
buttonbox_layout=0
|
||||
cursor_flash_time=1000
|
||||
dialog_buttons_have_icons=1
|
||||
double_click_interval=400
|
||||
gui_effects=@Invalid()
|
||||
keyboard_scheme=2
|
||||
menus_have_icons=true
|
||||
show_shortcuts_in_context_menus=true
|
||||
stylesheets=@Invalid()
|
||||
toolbutton_style=4
|
||||
underline_shortcut=1
|
||||
wheel_scroll_lines=3
|
||||
|
||||
[SettingsWindow]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2\x62\0\0\x2\xd5\0\0\0\0\0\0\0\0\0\0\x2\x7f\0\0\x3\x1\0\0\0\0\x2\0\0\0\x5\0\0\0\0\0\0\0\0\0\0\0\x2\x62\0\0\x2\xd5)
|
||||
|
||||
[Troubleshooting]
|
||||
force_raster_widgets=1
|
||||
ignored_applications=@Invalid()
|
18
config/rofi/config.rasi
Normal file
18
config/rofi/config.rasi
Normal file
|
@ -0,0 +1,18 @@
|
|||
configuration{
|
||||
modi: "run,drun,window";
|
||||
icon-theme: "Papirus-Dark";
|
||||
show-icons: true;
|
||||
terminal: "kitty";
|
||||
drun-display-format: "{icon} {name}";
|
||||
location: 0;
|
||||
disable-history: false;
|
||||
hide-scrollbar: true;
|
||||
display-drun: " Apps ";
|
||||
display-run: " Run ";
|
||||
display-window: " Window";
|
||||
display-Network: " Network";
|
||||
sidebar-mode: true;
|
||||
}
|
||||
|
||||
@theme "catppuccin-mocha"
|
||||
|
201
config/waybar/config.jsonc
Normal file
201
config/waybar/config.jsonc
Normal file
|
@ -0,0 +1,201 @@
|
|||
// -*- mode: jsonc -*-
|
||||
{
|
||||
// "layer": "top", // Waybar at top layer
|
||||
// "position": "bottom", // Waybar position (top|bottom|left|right)
|
||||
"height": 30, // Waybar height (to be removed for auto height)
|
||||
// "width": 1280, // Waybar width
|
||||
"spacing": 4, // Gaps between modules (4px)
|
||||
// Choose the order of the modules
|
||||
"modules-left": [
|
||||
"hyprland/workspaces"
|
||||
],
|
||||
"modules-center": [
|
||||
"hyprland/window"
|
||||
],
|
||||
"modules-right": [
|
||||
"hyprland/language",
|
||||
"battery",
|
||||
"clock",
|
||||
"tray"
|
||||
],
|
||||
"hyprland/language": {
|
||||
"format-en": "us",
|
||||
"format-ru": "ru"
|
||||
},
|
||||
"keyboard-state": {
|
||||
"numlock": true,
|
||||
"capslock": true,
|
||||
"format": "{name} {icon}",
|
||||
"format-icons": {
|
||||
"locked": "",
|
||||
"unlocked": ""
|
||||
}
|
||||
},
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"default": "",
|
||||
"active": "",
|
||||
"empty": "",
|
||||
"persistent": "",
|
||||
"special": "",
|
||||
"urgent": "",
|
||||
},
|
||||
"on-scroll-up": "hyprctl dispatch workspace e+1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace e-1"
|
||||
},
|
||||
"wireplumber": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": "",
|
||||
"on-click": "pavucontrol",
|
||||
"max-volume": 150,
|
||||
"scroll-step": 0.2,
|
||||
"format-icons": ["", "", ""]
|
||||
},
|
||||
"mpd": {
|
||||
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
|
||||
"format-disconnected": "Disconnected ",
|
||||
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
|
||||
"unknown-tag": "N/A",
|
||||
"interval": 5,
|
||||
"consume-icons": {
|
||||
"on": " "
|
||||
},
|
||||
"random-icons": {
|
||||
"off": "<span color=\"#f53c3c\"></span> ",
|
||||
"on": " "
|
||||
},
|
||||
"repeat-icons": {
|
||||
"on": " "
|
||||
},
|
||||
"single-icons": {
|
||||
"on": "1 "
|
||||
},
|
||||
"state-icons": {
|
||||
"paused": "",
|
||||
"playing": ""
|
||||
},
|
||||
"tooltip-format": "MPD (connected)",
|
||||
"tooltip-format-disconnected": "MPD (disconnected)"
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
// "icon-size": 21,
|
||||
"spacing": 10
|
||||
},
|
||||
"clock": {
|
||||
// "timezone": "America/New_York",
|
||||
"interval": 1,
|
||||
"format": "{:%H:%M:%S}",
|
||||
"tooltip-format": "<big>{:%B %d %Y}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"tooltip": false,
|
||||
"format-alt": "{:%d/%m/%Y}"
|
||||
},
|
||||
"cpu": {
|
||||
"format": "{usage}% ",
|
||||
"tooltip": false
|
||||
},
|
||||
"memory": {
|
||||
"format": "{}% "
|
||||
},
|
||||
"temperature": {
|
||||
// "thermal-zone": 2,
|
||||
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
||||
"critical-threshold": 80,
|
||||
// "format-critical": "{temperatureC}°C {icon}",
|
||||
"format": "{temperatureC}°C {icon}",
|
||||
"format-icons": ["", "", ""]
|
||||
},
|
||||
"backlight": {
|
||||
// "device": "acpi_video1",
|
||||
"format": "{percent}% {icon}",
|
||||
"format-icons": ["🌑", "🌘", "🌗", "🌖", "🌕"]
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
// "good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-full": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
"battery#bat2": {
|
||||
"bat": "BAT2"
|
||||
},
|
||||
"power-profiles-daemon": {
|
||||
"format": "{icon}",
|
||||
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
|
||||
"tooltip": true,
|
||||
"format-icons": {
|
||||
"default": "",
|
||||
"performance": "",
|
||||
"balanced": "",
|
||||
"power-saver": ""
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format-disconnected": "Disconnected ⚠",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||
},
|
||||
"pulseaudio": {
|
||||
// "scroll-step": 1, // %, can be a float
|
||||
"format": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
"format-source": "{volume}% ",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
"custom/media": {
|
||||
"format": "{icon} {}",
|
||||
"return-type": "json",
|
||||
"max-length": 40,
|
||||
"format-icons": {
|
||||
"spotify": "",
|
||||
"default": "🎜"
|
||||
},
|
||||
"escape": true,
|
||||
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
|
||||
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
||||
},
|
||||
"custom/power": {
|
||||
"format" : "⏻ ",
|
||||
"tooltip": false,
|
||||
"menu": "on-click",
|
||||
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
|
||||
"menu-actions": {
|
||||
"shutdown": "shutdown",
|
||||
"reboot": "reboot",
|
||||
"suspend": "systemctl suspend",
|
||||
"hibernate": "systemctl hibernate"
|
||||
}
|
||||
}
|
||||
}
|
26
config/waybar/mocha.css
Normal file
26
config/waybar/mocha.css
Normal file
|
@ -0,0 +1,26 @@
|
|||
@define-color rosewater #f5e0dc;
|
||||
@define-color flamingo #f2cdcd;
|
||||
@define-color pink #f5c2e7;
|
||||
@define-color mauve #cba6f7;
|
||||
@define-color red #f38ba8;
|
||||
@define-color maroon #eba0ac;
|
||||
@define-color peach #fab387;
|
||||
@define-color yellow #f9e2af;
|
||||
@define-color green #a6e3a1;
|
||||
@define-color teal #94e2d5;
|
||||
@define-color sky #89dceb;
|
||||
@define-color sapphire #74c7ec;
|
||||
@define-color blue #89b4fa;
|
||||
@define-color lavender #b4befe;
|
||||
@define-color text #cdd6f4;
|
||||
@define-color subtext1 #bac2de;
|
||||
@define-color subtext0 #a6adc8;
|
||||
@define-color overlay2 #9399b2;
|
||||
@define-color overlay1 #7f849c;
|
||||
@define-color overlay0 #6c7086;
|
||||
@define-color surface2 #585b70;
|
||||
@define-color surface1 #45475a;
|
||||
@define-color surface0 #313244;
|
||||
@define-color base #1e1e2e;
|
||||
@define-color mantle #181825;
|
||||
@define-color crust #11111b;
|
333
config/waybar/style.css
Normal file
333
config/waybar/style.css
Normal file
|
@ -0,0 +1,333 @@
|
|||
@import "mocha.css";
|
||||
|
||||
* {
|
||||
font-family: 'Rubik Medium', 'Font Awesome 6 Free', 'Font Awesome 6 Brands', monospace;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: alpha(@base, 0.9);
|
||||
border-bottom: 2px solid alpha(@mauve, 0.9);
|
||||
color: #ffffff;
|
||||
transition-property: background-color;
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
/*
|
||||
window#waybar.empty {
|
||||
background-color: transparent;
|
||||
}
|
||||
window#waybar.solo {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
*/
|
||||
|
||||
window#waybar.termite {
|
||||
background-color: #3F3F3F;
|
||||
}
|
||||
|
||||
window#waybar.chromium {
|
||||
background-color: #000000;
|
||||
border: none;
|
||||
}
|
||||
|
||||
button {
|
||||
/* Use box-shadow instead of border so the text isn't offset */
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
/* Avoid rounded borders under each button name */
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||
button:hover {
|
||||
background: inherit;
|
||||
box-shadow: inset 0 -3px #ffffff;
|
||||
}
|
||||
|
||||
/* you can set a style on hover for any module like this */
|
||||
#pulseaudio:hover {
|
||||
background-color: #a37800;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
background-color: transparent;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: @mauve;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: alpha(@overlay0, 0.2);
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background-color: #64727D;
|
||||
box-shadow: inset 0 -3px #ffffff;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#mode {
|
||||
background-color: #64727D;
|
||||
box-shadow: inset 0 -3px #ffffff;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#battery,
|
||||
#cpu,
|
||||
#memory,
|
||||
#disk,
|
||||
#temperature,
|
||||
#backlight,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#wireplumber,
|
||||
#custom-media,
|
||||
#tray,
|
||||
#mode,
|
||||
#idle_inhibitor,
|
||||
#scratchpad,
|
||||
#power-profiles-daemon,
|
||||
#mpd {
|
||||
padding: 0 10px;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#window,
|
||||
#workspaces {
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
/* If workspaces is the leftmost module, omit left margin */
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* If workspaces is the rightmost module, omit right margin */
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#clock {
|
||||
background-color: @surface1;
|
||||
min-width: 64px;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: @surface1;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#battery.charging, #battery.plugged {
|
||||
color: #ffffff;
|
||||
background-color: @green;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: @surface1;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
/* Using steps() instead of linear as a timing function to limit cpu usage */
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: @red;
|
||||
color: #ffffff;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: steps(12);
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#power-profiles-daemon {
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.performance {
|
||||
background-color: #f53c3c;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.balanced {
|
||||
background-color: #2980b9;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.power-saver {
|
||||
background-color: #2ecc71;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
background-color: #2ecc71;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#memory {
|
||||
background-color: #9b59b6;
|
||||
}
|
||||
|
||||
#disk {
|
||||
background-color: #964B00;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
background-color: #90b1b1;
|
||||
}
|
||||
|
||||
#network {
|
||||
background-color: #2980b9;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
background-color: #f53c3c;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
background-color: #f1c40f;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
background-color: #90b1b1;
|
||||
color: #2a5c45;
|
||||
}
|
||||
|
||||
#wireplumber {
|
||||
background-color: #fff0f5;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#wireplumber.muted {
|
||||
background-color: #f53c3c;
|
||||
}
|
||||
|
||||
#custom-media {
|
||||
background-color: #66cc99;
|
||||
color: #2a5c45;
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
#custom-media.custom-spotify {
|
||||
background-color: #66cc99;
|
||||
}
|
||||
|
||||
#custom-media.custom-vlc {
|
||||
background-color: #ffa000;
|
||||
}
|
||||
|
||||
#temperature {
|
||||
background-color: #f0932b;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#tray {
|
||||
background-color: @surface0;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#idle_inhibitor {
|
||||
background-color: #2d3436;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated {
|
||||
background-color: #ecf0f1;
|
||||
color: #2d3436;
|
||||
}
|
||||
|
||||
#mpd {
|
||||
background-color: #66cc99;
|
||||
color: #2a5c45;
|
||||
}
|
||||
|
||||
#mpd.disconnected {
|
||||
background-color: #f53c3c;
|
||||
}
|
||||
|
||||
#mpd.stopped {
|
||||
background-color: #90b1b1;
|
||||
}
|
||||
|
||||
#mpd.paused {
|
||||
background-color: #51a37a;
|
||||
}
|
||||
|
||||
#language {
|
||||
background: @surface2;
|
||||
color: #ffffff;
|
||||
padding: 0 5px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#keyboard-state {
|
||||
background: #97e1ad;
|
||||
color: #000000;
|
||||
padding: 0 0px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#keyboard-state > label {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
#keyboard-state > label.locked {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#scratchpad {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#scratchpad.empty {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#privacy {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#privacy-item {
|
||||
padding: 0 5px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#privacy-item.screenshare {
|
||||
background-color: #cf5700;
|
||||
}
|
||||
|
||||
#privacy-item.audio-in {
|
||||
background-color: #1ca000;
|
||||
}
|
||||
|
||||
#privacy-item.audio-out {
|
||||
background-color: #0069d4;
|
||||
}
|
Loading…
Reference in a new issue