From 8b800faa8cbc1dd3a9d1b803748b48108e1dd17d Mon Sep 17 00:00:00 2001 From: d3m0k1d Date: Wed, 24 Dec 2025 18:49:11 +0300 Subject: [PATCH] Add my dots --- .config/fastfetch/config.jsonc | 281 +++++++++++++++++++ .config/hypr/hyprland.conf | 264 ++++++++++++++++++ .config/kitty/kitty.conf | 12 + .config/lazygit/config.yml | 14 + .config/nvim/.luarc.json | 3 + .config/nvim/.neoconf.json | 20 ++ .config/nvim/.stylua.toml | 7 + .config/nvim/README.md | 34 +++ .config/nvim/init.lua | 27 ++ .config/nvim/lazy-lock.json | 51 ++++ .config/nvim/lua/community.lua | 12 + .config/nvim/lua/lazy_setup.lua | 32 +++ .config/nvim/lua/plugins/astrocore.lua | 87 ++++++ .config/nvim/lua/plugins/astrolsp.lua | 105 +++++++ .config/nvim/lua/plugins/astroui.lua | 39 +++ .config/nvim/lua/plugins/mason.lua | 28 ++ .config/nvim/lua/plugins/none-ls.lua | 24 ++ .config/nvim/lua/plugins/treesitter.lua | 15 + .config/nvim/lua/plugins/user.lua | 148 ++++++++++ .config/nvim/lua/polish.lua | 5 + .config/nvim/neovim.yml | 6 + .config/nvim/selene.toml | 8 + .config/waybar/config | 217 +++++++++++++++ .config/waybar/config.jsonc | 347 ++++++++++++++++++++++++ .config/waybar/scripts/amixer-toggle.sh | 11 + .config/waybar/scripts/brightness.sh | 3 + .config/waybar/scripts/colorpicker.sh | 60 ++++ .config/waybar/scripts/myUpdates.sh | 24 ++ .config/waybar/scripts/myupdate.sh | 22 ++ .config/waybar/scripts/powerdraw.sh | 10 + .config/waybar/scripts/weather.sh | 24 ++ .config/waybar/style.css | 98 +++++++ .config/waybar/style2.css | 160 +++++++++++ .zshrc | 111 ++++++++ 34 files changed, 2309 insertions(+) create mode 100644 .config/fastfetch/config.jsonc create mode 100644 .config/hypr/hyprland.conf create mode 100644 .config/kitty/kitty.conf create mode 100644 .config/lazygit/config.yml create mode 100644 .config/nvim/.luarc.json create mode 100644 .config/nvim/.neoconf.json create mode 100644 .config/nvim/.stylua.toml create mode 100644 .config/nvim/README.md create mode 100644 .config/nvim/init.lua create mode 100644 .config/nvim/lazy-lock.json create mode 100644 .config/nvim/lua/community.lua create mode 100644 .config/nvim/lua/lazy_setup.lua create mode 100644 .config/nvim/lua/plugins/astrocore.lua create mode 100644 .config/nvim/lua/plugins/astrolsp.lua create mode 100644 .config/nvim/lua/plugins/astroui.lua create mode 100644 .config/nvim/lua/plugins/mason.lua create mode 100644 .config/nvim/lua/plugins/none-ls.lua create mode 100644 .config/nvim/lua/plugins/treesitter.lua create mode 100644 .config/nvim/lua/plugins/user.lua create mode 100644 .config/nvim/lua/polish.lua create mode 100644 .config/nvim/neovim.yml create mode 100644 .config/nvim/selene.toml create mode 100644 .config/waybar/config create mode 100644 .config/waybar/config.jsonc create mode 100755 .config/waybar/scripts/amixer-toggle.sh create mode 100644 .config/waybar/scripts/brightness.sh create mode 100755 .config/waybar/scripts/colorpicker.sh create mode 100755 .config/waybar/scripts/myUpdates.sh create mode 100755 .config/waybar/scripts/myupdate.sh create mode 100755 .config/waybar/scripts/powerdraw.sh create mode 100755 .config/waybar/scripts/weather.sh create mode 100644 .config/waybar/style.css create mode 100644 .config/waybar/style2.css create mode 100644 .zshrc diff --git a/.config/fastfetch/config.jsonc b/.config/fastfetch/config.jsonc new file mode 100644 index 0000000..3ae6d52 --- /dev/null +++ b/.config/fastfetch/config.jsonc @@ -0,0 +1,281 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/master/doc/json_schema.json", + "logo": { + "type": "auto", + "source": "", + "color": { + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "6": "", + "7": "", + "8": "", + "9": "" + }, + "width": null, + "height": null, + "padding": { + "top": 0, + "left": 0, + "right": 4 + }, + "printRemaining": true, + "preserveAspectRatio": false, + "recache": false, + "position": "left", + "chafa": { + "fgOnly": false, + "symbols": "block+border+space-wide-inverted" + } + }, + "display": { + "stat": false, + "pipe": false, + "showErrors": false, + "disableLinewrap": true, + "hideCursor": false, + "separator": " ➜ ", + "color": { + "keys": "", + "title": "", + "output": "", + "separator": "" + }, + "brightColor": true, + "duration": { + "abbreviation": false, + "spaceBeforeUnit": "default" + }, + "size": { + "maxPrefix": "YB", + "binaryPrefix": "iec", + "ndigits": 2, + "spaceBeforeUnit": "default" + }, + "temp": { + "unit": "D", + "ndigits": 1, + "color": { + "green": "32", + "yellow": "93", + "red": "91" + }, + "spaceBeforeUnit": "default" + }, + "percent": { + "type": [ + "num", + "num-color" + ], + "ndigits": 0, + "color": { + "green": "32", + "yellow": "93", + "red": "91" + }, + "spaceBeforeUnit": "default", + "width": 0 + }, + "bar": { + "char": { + "elapsed": "■", + "total": "-" + }, + "border": { + "left": "[ ", + "right": " ]", + "leftElapsed": "", + "rightElapsed": "" + }, + "color": { + "elapsed": "auto", + "total": "97", + "border": "97" + }, + "width": 10 + }, + "fraction": { + "ndigits": 2 + }, + "noBuffer": false, + "key": { + "width": 0, + "type": "string", + "paddingLeft": 0 + }, + "freq": { + "ndigits": 2, + "spaceBeforeUnit": "default" + }, + "constants": [] + }, + "general": { + "thread": true, + "processingTimeout": 5000, + "detectVersion": true, + "playerName": "", + "dsForceDrm": false + }, + "modules": [ + { + "type": "title", + "key": " ", + "keyIcon": "", + "fqdn": false, + "color": { + "user": "", + "at": "", + "host": "" + } + }, + { + "type": "separator", + "string": "-", + "outputColor": "", + "times": 0 + }, + { + "type": "os", + "keyIcon": "" + }, + { + "type": "host", + "keyIcon": "󰌢" + }, + { + "type": "kernel", + "keyIcon": "" + }, + { + "type": "packages", + "keyIcon": "󰏖", + "disabled": [ + "apk" + ], + "combined": false + }, + "break", + { + "type": "shell", + "keyIcon": "" + }, + { + "type": "de", + "keyIcon": "", + "slowVersionDetection": false + }, + { + "type": "wm", + "keyIcon": "", + "detectPlugin": false + }, + { + "type": "wmtheme", + "keyIcon": "󰓸" + }, + { + "type": "theme", + "keyIcon": "󰉼" + }, + { + "type": "icons", + "keyIcon": "" + }, + { + "type": "font", + "keyIcon": "" + }, + { + "type": "cursor", + "keyIcon": "󰆿" + }, + { + "type": "terminal", + "keyIcon": "" + }, + { + "type": "terminalfont", + "keyIcon": "" + }, + "break", + { + "type": "cpu", + "keyIcon": "", + "temp": false, + "showPeCoreCount": false + }, + { + "type": "gpu", + "keyIcon": "󰾲", + "driverSpecific": false, + "detectionMethod": "pci", + "temp": false, + "hideType": "none", + "percent": { + "green": 50, + "yellow": 80, + "type": 0 + } + }, + { + "type": "memory", + "keyIcon": "", + "percent": { + "green": 50, + "yellow": 80, + "type": 0 + } + }, + { + "type": "disk", + "keyIcon": "", + "showRegular": true, + "showExternal": true, + "showHidden": false, + "showSubvolumes": false, + "showReadOnly": true, + "showUnknown": false, + "folders": "", + "hideFolders": "/efi:/boot:/boot/*", + "hideFS": "", + "useAvailable": false, + "percent": { + "green": 50, + "yellow": 80, + "type": 0 + }, + }, + { + "type": "localip", + "keyIcon": "󰩟", + "showIpv4": true, + "showIpv6": false, + "showMac": false, + "showLoop": false, + "showPrefixLen": true, + "showMtu": false, + "showSpeed": false, + "showFlags": false, + "compact": false, + "defaultRouteOnly": true, + "showAllIps": false, + "namePrefix": "" + }, + { + "type": "battery", + "keyIcon": "", + "temp": false, + "percent": { + "green": 50, + "yellow": 20, + "type": 0 + } + }, + { + "type": "poweradapter", + "keyIcon": "󰚥" + }, + ] +} diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..3d09f8a --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,264 @@ +################ +### MONITORS ### +################ +# See https://wiki.hypr.land/Configuring/Monitors/ +monitor=,preferred,0x0,auto +monitor=,preferred,1920x1080@144,auto-left + +############ +### APPS ### +############ + +# See https://wiki.hypr.land/Configuring/Keywords/ +$terminal = kitty +$fileManager = dolphin +$menu = wofi --show drun +$browser = zen-browser + +################# +### AUTOSTART ### +################# +exec-once = swww-daemon & swww img /home/d3m0k1d/wlp/415519.jpg & waybar & $browser & Telegram +exec-once = ~/bin/hypr_monitor_switch.sh +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hypr.land/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hypr.land/Configuring/Variables/ + +# https://wiki.hypr.land/Configuring/Variables/#general +general { + gaps_in = 5 + gaps_out = 20 + + border_size = 0 + + # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hypr.land/Configuring/Variables/#decoration +decoration { + rounding = 10 + rounding_power = 2 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 1.0 + + shadow { + enabled = true + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } + + # https://wiki.hypr.land/Configuring/Variables/#blur + blur { + enabled = true + size = 3 + passes = 1 + + vibrancy = 0.1696 + } +} + +# https://wiki.hypr.land/Configuring/Variables/#animations +animations { + enabled = yes, please :) + + # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves + # NAME, X0, Y0, X1, Y1 + bezier = easeOutQuint, 0.23, 1, 0.32, 1 + bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1 + bezier = linear, 0, 0, 1, 1 + bezier = almostLinear, 0.5, 0.5, 0.75, 1 + bezier = quick, 0.15, 0, 0.1, 1 + + # Default animations, see https://wiki.hypr.land/Configuring/Animations/ + # NAME, ONOFF, SPEED, CURVE, [STYLE] + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 1.94, almostLinear, fade + animation = workspacesIn, 1, 1.21, almostLinear, fade + animation = workspacesOut, 1, 1.94, almostLinear, fade + animation = zoomFactor, 1, 7, quick +} + +# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/ +# "Smart gaps" / "No gaps when only" +# uncomment all if you wish to use that. +# workspace = w[tv1], gapsout:0, gapsin:0 +# workspace = f[1], gapsout:0, gapsin:0 +# windowrule = bordersize 0, floating:0, onworkspace:w[tv1] +# windowrule = rounding 0, floating:0, onworkspace:w[tv1] +# windowrule = bordersize 0, floating:0, onworkspace:f[1] +# windowrule = rounding 0, floating:0, onworkspace:f[1] + +# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this +} + +# See https://wiki.hypr.land/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hypr.land/Configuring/Variables/#misc +misc { + force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( +} + + +############# +### INPUT ### +############# + +# https://wiki.hypr.land/Configuring/Variables/#input +input { + kb_layout = us, ru + kb_variant = + kb_model = + kb_options =grp:win_space_toggle + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 + touchpad { + natural_scroll = false + } +} + +# See https://wiki.hypr.land/Configuring/Gestures +gesture = 3, horizontal, workspace + +# Example per-device config +# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more +device { + name = epic-mouse-v1 + sensitivity = -0.5 +} + + +################### +### KEYBINDINGS ### +################### + +# See https://wiki.hypr.land/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier + +# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more +bind = $mainMod, Q, exec, $terminal +bind = $mainMod, T, exec, Telegram +bind = $mainMod, B, exec, $browser +bind = $mainMod, C, killactive, +bind = $mainMod, M, 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 + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, 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, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Laptop multimedia keys for volume and LCD brightness +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hypr.land/Configuring/Window-Rules/ for more +# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule +# windowrule = float,class:^(kitty)$,title:^(kitty)$ + +# Ignore maximize requests from apps. You'll probably like this. +windowrule = suppressevent maximize, class:.* + +# Fix some dragging issues with XWayland +windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf new file mode 100644 index 0000000..1a24a1c --- /dev/null +++ b/.config/kitty/kitty.conf @@ -0,0 +1,12 @@ +shell zsh +# Уровень прозрачности фона (0.0 — полностью прозрачный, 1.0 — непрозрачный) +background_opacity 0.7 + +# Если хотите изменять прозрачность при неактивном окне +# inactive_window_opacity 0.6 + +# Включить фон размытия (требует поддержки compositor’а) +enable_background_blur yes + +# Сила размытия (чем больше — тем сильнее blur) +background_blur_radius 9.0 diff --git a/.config/lazygit/config.yml b/.config/lazygit/config.yml new file mode 100644 index 0000000..dde2971 --- /dev/null +++ b/.config/lazygit/config.yml @@ -0,0 +1,14 @@ +git: + pagers: + - colorArg: always + pager: delta --syntax-theme base16-256 + showIcons: true +gui: + theme: + activeBorderColor: + - green + - bold + inactiveBorderColor: + - white + optionsTextColor: + - blue diff --git a/.config/nvim/.luarc.json b/.config/nvim/.luarc.json new file mode 100644 index 0000000..8415579 --- /dev/null +++ b/.config/nvim/.luarc.json @@ -0,0 +1,3 @@ +{ + "format.enable": false +} diff --git a/.config/nvim/.neoconf.json b/.config/nvim/.neoconf.json new file mode 100644 index 0000000..2d7a81f --- /dev/null +++ b/.config/nvim/.neoconf.json @@ -0,0 +1,20 @@ +{ + "neodev": { + "library": { + "enabled": true, + "plugins": true + } + }, + "neoconf": { + "plugins": { + "lua_ls": { + "enabled": true + } + } + }, + "lspconfig": { + "lua_ls": { + "Lua.format.enable": false + } + } +} diff --git a/.config/nvim/.stylua.toml b/.config/nvim/.stylua.toml new file mode 100644 index 0000000..bfcffff --- /dev/null +++ b/.config/nvim/.stylua.toml @@ -0,0 +1,7 @@ +column_width = 120 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 2 +quote_style = "AutoPreferDouble" +call_parentheses = "None" +collapse_simple_statement = "Always" diff --git a/.config/nvim/README.md b/.config/nvim/README.md new file mode 100644 index 0000000..71d48de --- /dev/null +++ b/.config/nvim/README.md @@ -0,0 +1,34 @@ +# AstroNvim Template + +**NOTE:** This is for AstroNvim v5+ + +A template for getting started with [AstroNvim](https://github.com/AstroNvim/AstroNvim) + +## 🛠️ Installation + +#### Make a backup of your current nvim and shared folder + +```shell +mv ~/.config/nvim ~/.config/nvim.bak +mv ~/.local/share/nvim ~/.local/share/nvim.bak +mv ~/.local/state/nvim ~/.local/state/nvim.bak +mv ~/.cache/nvim ~/.cache/nvim.bak +``` + +#### Create a new user repository from this template + +Press the "Use this template" button above to create a new repository to store your user configuration. + +You can also just clone this repository directly if you do not want to track your user configuration in GitHub. + +#### Clone the repository + +```shell +git clone https://github.com// ~/.config/nvim +``` + +#### Start Neovim + +```shell +nvim +``` diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..424e48d --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,27 @@ +-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution +-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk. +local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim" + +if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then + -- stylua: ignore + local result = vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath }) + if vim.v.shell_error ~= 0 then + -- stylua: ignore + vim.api.nvim_echo({ { ("Error cloning lazy.nvim:\n%s\n"):format(result), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {}) + vim.fn.getchar() + vim.cmd.quit() + end +end + +vim.opt.rtp:prepend(lazypath) + +-- validate that lazy is available +if not pcall(require, "lazy") then + -- stylua: ignore + vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {}) + vim.fn.getchar() + vim.cmd.quit() +end + +require "lazy_setup" +require "polish" diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json new file mode 100644 index 0000000..d1f316e --- /dev/null +++ b/.config/nvim/lazy-lock.json @@ -0,0 +1,51 @@ +{ + "AstroNvim": { "branch": "main", "commit": "55a2b084eabe880c4ffa377f82bb972caec57e09" }, + "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, + "aerial.nvim": { "branch": "master", "commit": "6ab1a0ce4874d21610fc5a67a6c82c7b943c635b" }, + "astrocore": { "branch": "main", "commit": "c797dd5a592e2bd154f2503e231b8a4083659534" }, + "astrolsp": { "branch": "main", "commit": "0befe28a4ea96e46b7f7c01e4a634c04225ba55a" }, + "astrotheme": { "branch": "main", "commit": "4a2af93815e4e6adfe69c836e46047a9451de858" }, + "astroui": { "branch": "main", "commit": "4943abbd42674b43249313afe83b91065a40e4be" }, + "better-escape.nvim": { "branch": "master", "commit": "199dcc2643dec5d8dbdab4ec672cf405224dcb3b" }, + "blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" }, + "blink.compat": { "branch": "main", "commit": "2ed6d9a28b07fa6f3bface818470605f8896408c" }, + "cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" }, + "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" }, + "guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" }, + "heirline.nvim": { "branch": "master", "commit": "fae936abb5e0345b85c3a03ecf38525b0828b992" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" }, + "lsp_signature.nvim": { "branch": "master", "commit": "62cadce83aaceed677ffe7a2d6a57141af7131ea" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, + "mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" }, + "mason-nvim-dap.nvim": { "branch": "main", "commit": "e51f9b259f066c4347f9a79ffde54c29a0619384" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, + "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, + "mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" }, + "neo-tree.nvim": { "branch": "main", "commit": "8cdd6b1940f333c1dd085526a9c45b30fb2dbf50" }, + "neoconf.nvim": { "branch": "main", "commit": "7a8d7fd36f95f5cbbf57d4a5c463f6c54ad54cd3" }, + "none-ls.nvim": { "branch": "main", "commit": "6617d47fbf275d197e3335022a3d33ff310a4b93" }, + "nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" }, + "nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" }, + "nvim-dap": { "branch": "master", "commit": "7367cec8e8f7a0b1e4566af9a7ef5959d11206a7" }, + "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" }, + "nvim-highlight-colors": { "branch": "main", "commit": "e0c4a58ec8c3ca7c92d3ee4eb3bc1dd0f7be317e" }, + "nvim-lspconfig": { "branch": "master", "commit": "fa2662510d30b06168b6e2e6915518decde6bbac" }, + "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" }, + "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, + "nvim-window-picker": { "branch": "main", "commit": "6382540b2ae5de6c793d4aa2e3fe6dbb518505ec" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" }, + "resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" }, + "smart-splits.nvim": { "branch": "master", "commit": "ddb23c1a1cf1507bda487cda7f6e4690965ef9f5" }, + "snacks.nvim": { "branch": "main", "commit": "da230e3ca8146da4b73752daaf0a1d07d343c12d" }, + "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, + "toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" }, + "transparent.nvim": { "branch": "main", "commit": "8ac59883de84e9cd1850ea25cf087031c5ba7d54" }, + "vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" }, + "which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }, + "windsurf.vim": { "branch": "main", "commit": "a8d47ec54fe82df920b2545559f767003e8a7f8d" } +} diff --git a/.config/nvim/lua/community.lua b/.config/nvim/lua/community.lua new file mode 100644 index 0000000..c842899 --- /dev/null +++ b/.config/nvim/lua/community.lua @@ -0,0 +1,12 @@ +if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE + +-- AstroCommunity: import any community modules here +-- We import this file in `lazy_setup.lua` before the `plugins/` folder. +-- This guarantees that the specs are processed before any user plugins. + +---@type LazySpec +return { + "AstroNvim/astrocommunity", + { import = "astrocommunity.pack.lua" }, + -- import/override with your plugins folder +} diff --git a/.config/nvim/lua/lazy_setup.lua b/.config/nvim/lua/lazy_setup.lua new file mode 100644 index 0000000..4d9552f --- /dev/null +++ b/.config/nvim/lua/lazy_setup.lua @@ -0,0 +1,32 @@ +require("lazy").setup({ + { + "AstroNvim/AstroNvim", + version = "^5", -- Remove version tracking to elect for nightly AstroNvim + import = "astronvim.plugins", + opts = { -- AstroNvim options must be set here with the `import` key + mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up + maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up + icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available) + pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override + update_notifications = true, -- Enable/disable notification about running `:Lazy update` twice to update pinned plugins + }, + }, + { import = "community" }, + { import = "plugins" }, +} --[[@as LazySpec]], { + -- Configure any other `lazy.nvim` configuration options here + install = { colorscheme = { "astrotheme", "habamax" } }, + ui = { backdrop = 100 }, + performance = { + rtp = { + -- disable some rtp plugins, add more to your liking + disabled_plugins = { + "gzip", + "netrwPlugin", + "tarPlugin", + "tohtml", + "zipPlugin", + }, + }, + }, +} --[[@as LazyConfig]]) diff --git a/.config/nvim/lua/plugins/astrocore.lua b/.config/nvim/lua/plugins/astrocore.lua new file mode 100644 index 0000000..3902dc1 --- /dev/null +++ b/.config/nvim/lua/plugins/astrocore.lua @@ -0,0 +1,87 @@ +#if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE + +-- AstroCore provides a central place to modify mappings, vim options, autocommands, and more! +-- Configuration documentation can be found with `:h astrocore` +-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`) +-- as this provides autocomplete and documentation while editing + +---@type LazySpec +return { + "AstroNvim/astrocore", + ---@type AstroCoreOpts + opts = { + -- Configure core features of AstroNvim + features = { + large_buf = { size = 1024 * 256, lines = 10000 }, -- set global limits for large files for disabling features like treesitter + autopairs = true, -- enable autopairs at start + cmp = true, -- enable completion at start + diagnostics = { virtual_text = true, virtual_lines = false }, -- diagnostic settings on startup + highlighturl = true, -- highlight URLs at start + notifications = true, -- enable notifications at start + clipboard = "unnamedplus" + + }, + -- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on + diagnostics = { + virtual_text = true, + underline = true, + }, + -- passed to `vim.filetype.add` + filetypes = { + -- see `:h vim.filetype.add` for usage + extension = { + foo = "fooscript", + }, + filename = { + [".foorc"] = "fooscript", + }, + pattern = { + [".*/etc/foo/.*"] = "fooscript", + }, + }, + -- vim options can be configured here + options = { + opt = { -- vim.opt. + relativenumber = true, -- sets vim.opt.relativenumber + number = true, -- sets vim.opt.number + spell = false, -- sets vim.opt.spell + signcolumn = "yes", -- sets vim.opt.signcolumn to yes + wrap = false, -- sets vim.opt.wrap + }, + g = { -- vim.g. + -- configure global vim variables (vim.g) + -- NOTE: `mapleader` and `maplocalleader` must be set in the AstroNvim opts or before `lazy.setup` + -- This can be found in the `lua/lazy_setup.lua` file + }, + }, + -- Mappings can be configured through AstroCore as well. + -- NOTE: keycodes follow the casing in the vimdocs. For example, `` must be capitalized + mappings = { + -- first key is the mode + n = { + -- second key is the lefthand side of the map + + -- navigate buffer tabs + ["]b"] = { function() require("astrocore.buffer").nav(vim.v.count1) end, desc = "Next buffer" }, + ["[b"] = { function() require("astrocore.buffer").nav(-vim.v.count1) end, desc = "Previous buffer" }, + + -- mappings seen under group name "Buffer" + ["bd"] = { + function() + require("astroui.status.heirline").buffer_picker( + function(bufnr) require("astrocore.buffer").close(bufnr) end + ) + end, + desc = "Close buffer from tabline", + }, + + -- tables with just a `desc` key will be registered with which-key if it's installed + -- this is useful for naming menus + -- ["b"] = { desc = "Buffers" }, + + -- setting a mapping to false will disable it + -- [""] = false, + }, + }, + }, +} diff --git a/.config/nvim/lua/plugins/astrolsp.lua b/.config/nvim/lua/plugins/astrolsp.lua new file mode 100644 index 0000000..09aaae6 --- /dev/null +++ b/.config/nvim/lua/plugins/astrolsp.lua @@ -0,0 +1,105 @@ +#if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE + +-- AstroLSP allows you to customize the features in AstroNvim's LSP configuration engine +-- Configuration documentation can be found with `:h astrolsp` +-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`) +-- as this provides autocomplete and documentation while editing + +---@type LazySpec +return { + "AstroNvim/astrolsp", + ---@type AstroLSPOpts + opts = { + -- Configuration table of features provided by AstroLSP + features = { + codelens = true, -- enable/disable codelens refresh on start + inlay_hints = false, -- enable/disable inlay hints on start + semantic_tokens = true, -- enable/disable semantic token highlighting + }, + -- customize lsp formatting options + formatting = { + -- control auto formatting on save + format_on_save = { + enabled = true, -- enable or disable format on save globally + allow_filetypes = { -- enable format on save for specified filetypes only + -- "go", + }, + ignore_filetypes = { -- disable format on save for specified filetypes + -- "python", + }, + }, + disabled = { -- disable formatting capabilities for the listed language servers + -- disable lua_ls formatting capability if you want to use StyLua to format your lua code + -- "lua_ls", + }, + timeout_ms = 1000, -- default format timeout + -- filter = function(client) -- fully override the default formatting function + -- return true + -- end + }, + -- enable servers that you already have installed without mason + servers = { + -- "pyright" + }, + -- customize language server configuration options passed to `lspconfig` + ---@diagnostic disable: missing-fields + config = { + -- clangd = { capabilities = { offsetEncoding = "utf-8" } }, + }, + -- customize how language servers are attached + handlers = { + -- a function without a key is simply the default handler, functions take two parameters, the server name and the configured options table for that server + -- function(server, opts) require("lspconfig")[server].setup(opts) end + + -- the key is the server that is being setup with `lspconfig` + -- rust_analyzer = false, -- setting a handler to false will disable the set up of that language server + -- pyright = function(_, opts) require("lspconfig").pyright.setup(opts) end -- or a custom handler function can be passed + }, + -- Configure buffer local auto commands to add when attaching a language server + autocmds = { + -- first key is the `augroup` to add the auto commands to (:h augroup) + lsp_codelens_refresh = { + -- Optional condition to create/delete auto command group + -- can either be a string of a client capability or a function of `fun(client, bufnr): boolean` + -- condition will be resolved for each client on each execution and if it ever fails for all clients, + -- the auto commands will be deleted for that buffer + cond = "textDocument/codeLens", + -- cond = function(client, bufnr) return client.name == "lua_ls" end, + -- list of auto commands to set + { + -- events to trigger + event = { "InsertLeave", "BufEnter" }, + -- the rest of the autocmd options (:h nvim_create_autocmd) + desc = "Refresh codelens (buffer)", + callback = function(args) + if require("astrolsp").config.features.codelens then vim.lsp.codelens.refresh { bufnr = args.buf } end + end, + }, + }, + }, + -- mappings to be set up on attaching of a language server + mappings = { + n = { + -- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean + gD = { + function() vim.lsp.buf.declaration() end, + desc = "Declaration of current symbol", + cond = "textDocument/declaration", + }, + ["uY"] = { + function() require("astrolsp.toggles").buffer_semantic_tokens() end, + desc = "Toggle LSP semantic highlight (buffer)", + cond = function(client) + return client.supports_method "textDocument/semanticTokens/full" and vim.lsp.semantic_tokens ~= nil + end, + }, + }, + }, + -- A custom `on_attach` function to be run after the default `on_attach` function + -- takes two parameters `client` and `bufnr` (`:h lspconfig-setup`) + on_attach = function(client, bufnr) + -- this would disable semanticTokensProvider for all clients + -- client.server_capabilities.semanticTokensProvider = nil + end, + }, +} diff --git a/.config/nvim/lua/plugins/astroui.lua b/.config/nvim/lua/plugins/astroui.lua new file mode 100644 index 0000000..6f0ff64 --- /dev/null +++ b/.config/nvim/lua/plugins/astroui.lua @@ -0,0 +1,39 @@ +#if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE + +-- AstroUI provides the basis for configuring the AstroNvim User Interface +-- Configuration documentation can be found with `:h astroui` +-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`) +-- as this provides autocomplete and documentation while editing + +---@type LazySpec +return { + "AstroNvim/astroui", + ---@type AstroUIOpts + opts = { + -- change colorscheme + colorscheme = "astrodark", + -- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes + highlights = { + init = { -- this table overrides highlights in all themes + -- Normal = { bg = "#000000" },Normal = { bg = "NONE", ctermbg = "NONE" }, + }, + astrodark = { -- a table of overrides/changes when applying the astrotheme theme + -- Normal = { bg = "#000000" }, + }, + }, + -- Icons can be configured throughout the interface + icons = { + -- configure the loading of the lsp in the status line + LSPLoading1 = "⠋", + LSPLoading2 = "⠙", + LSPLoading3 = "⠹", + LSPLoading4 = "⠸", + LSPLoading5 = "⠼", + LSPLoading6 = "⠴", + LSPLoading7 = "⠦", + LSPLoading8 = "⠧", + LSPLoading9 = "⠇", + LSPLoading10 = "⠏", + }, + }, +} diff --git a/.config/nvim/lua/plugins/mason.lua b/.config/nvim/lua/plugins/mason.lua new file mode 100644 index 0000000..4f8609a --- /dev/null +++ b/.config/nvim/lua/plugins/mason.lua @@ -0,0 +1,28 @@ +#if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE + +-- Customize Mason + +---@type LazySpec +return { + -- use mason-tool-installer for automatically installing Mason packages + { + "WhoIsSethDaniel/mason-tool-installer.nvim", + -- overrides `require("mason-tool-installer").setup(...)` + opts = { + -- Make sure to use the names found in `:Mason` + ensure_installed = { + -- install language servers + "lua-language-server", + + -- install formatters + "stylua", + + -- install debuggers + "debugpy", + + -- install any other package + "tree-sitter-cli", + }, + }, + }, +} diff --git a/.config/nvim/lua/plugins/none-ls.lua b/.config/nvim/lua/plugins/none-ls.lua new file mode 100644 index 0000000..7d0896a --- /dev/null +++ b/.config/nvim/lua/plugins/none-ls.lua @@ -0,0 +1,24 @@ +#if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE + +-- Customize None-ls sources + +---@type LazySpec +return { + "nvimtools/none-ls.nvim", + opts = function(_, opts) + -- opts variable is the default configuration table for the setup function call + -- local null_ls = require "null-ls" + + -- Check supported formatters and linters + -- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/formatting + -- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics + + -- Only insert new sources, do not replace the existing ones + -- (If you wish to replace, use `opts.sources = {}` instead of the `list_insert_unique` function) + opts.sources = require("astrocore").list_insert_unique(opts.sources, { + -- Set a formatter + -- null_ls.builtins.formatting.stylua, + -- null_ls.builtins.formatting.prettier, + }) + end, +} diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..5dcff7f --- /dev/null +++ b/.config/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,15 @@ +#if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE + +-- Customize Treesitter + +---@type LazySpec +return { + "nvim-treesitter/nvim-treesitter", + opts = { + ensure_installed = { + "lua", + "vim", + -- add more arguments for adding more treesitter parsers + }, + }, +} diff --git a/.config/nvim/lua/plugins/user.lua b/.config/nvim/lua/plugins/user.lua new file mode 100644 index 0000000..bc3b06a --- /dev/null +++ b/.config/nvim/lua/plugins/user.lua @@ -0,0 +1,148 @@ +-- You can also add or configure plugins by creating files in this `plugins/` folder +-- PLEASE REMOVE THE EXAMPLES YOU HAVE NO INTEREST IN BEFORE ENABLING THIS FILE +-- Here are some examples: + +---@type LazySpec +return { + + { + "xiyaowong/transparent.nvim", + event = "VeryLazy", + config = function() + require("transparent").setup { + groups = { + "Normal", + "NormalNC", + "Comment", + "Constant", + "Special", + "Identifier", + "Statement", + "PreProc", + "Type", + "Underlined", + "Todo", + "String", + "Function", + "Conditional", + "Repeat", + "Operator", + "Structure", + "LineNr", + "NonText", + "SignColumn", + "CursorColumn", + "CursorLine", + "CursorLineNr", + "StatusLine", + "StatusLineNC", + "EndOfBuffer", + }, + extra_groups = { + "NormalFloat", + "NeoTreeNormal", + "NeoTreeNormalNC", + }, + exclude_groups = {}, + } + -- Для bufferline и аналогичных плагинов + require("transparent").clear_prefix "BufferLine" + require("transparent").clear_prefix "NeoTree" + end, + }, + { + "Exafunction/windsurf.vim", + event = "BufEnter", + config = function() + -- Принять текущее предложение + vim.keymap.set("i", "", function() return vim.fn["codeium#Accept"]() end, { expr = true, silent = true }) + -- Перейти к следующему предложению + vim.keymap.set( + "i", + "", + function() return vim.fn["codeium#CycleCompletions"](1) end, + { expr = true, silent = true } + ) + -- Перейти к предыдущему предложению + vim.keymap.set( + "i", + "", + function() return vim.fn["codeium#CycleCompletions"](-1) end, + { expr = true, silent = true } + ) + -- Очистить текущее предложение + vim.keymap.set("i", "", function() return vim.fn["codeium#Clear"]() end, { expr = true, silent = true }) + end, + }, + -- == Examples of Adding Plugins == + "andweeb/presence.nvim", + { + "ray-x/lsp_signature.nvim", + event = "BufRead", + config = function() require("lsp_signature").setup() end, + }, + + -- == Examples of Overriding Plugins == + + -- customize dashboard options + { + "folke/snacks.nvim", + opts = { + dashboard = { + preset = { + header = table.concat({ + "███  ██ ██  ██ ██ ███  ███", + "████  ██ ██  ██ ██ ████  ████", + "██ ██  ██ ██  ██ ██ ██ ████ ██", + "██  ██ ██  ██  ██  ██ ██  ██  ██", + "██   ████   ████   ██ ██      ██", + }, "\n"), + }, + }, + }, + }, + + -- You can disable default plugins as follows: + { "max397574/better-escape.nvim", enabled = false }, + + -- You can also easily customize additional setup of plugins that is outside of the plugin's setup call + { + "L3MON4D3/LuaSnip", + config = function(plugin, opts) + require "astronvim.plugins.configs.luasnip"(plugin, opts) -- include the default astronvim config that calls the setup call + -- add more custom luasnip configuration such as filetype extend or custom snippets + local luasnip = require "luasnip" + luasnip.filetype_extend("javascript", { "javascriptreact" }) + end, + }, + + { + "windwp/nvim-autopairs", + config = function(plugin, opts) + require "astronvim.plugins.configs.nvim-autopairs"(plugin, opts) -- include the default astronvim config that calls the setup call + -- add more custom autopairs configuration such as custom rules + local npairs = require "nvim-autopairs" + local Rule = require "nvim-autopairs.rule" + local cond = require "nvim-autopairs.conds" + npairs.add_rules( + { + Rule("$", "$", { "tex", "latex" }) + -- don't add a pair if the next character is % + :with_pair(cond.not_after_regex "%%") + -- don't add a pair if the previous character is xxx + :with_pair( + cond.not_before_regex("xxx", 3) + ) + -- don't move right when repeat character + :with_move(cond.none()) + -- don't delete if the next character is xx + :with_del(cond.not_after_regex "xx") + -- disable adding a newline when you press + :with_cr(cond.none()), + }, + -- disable for .vim files, but it work for another filetypes + Rule("a", "a", "-vim") + ) + end, + }, +} diff --git a/.config/nvim/lua/polish.lua b/.config/nvim/lua/polish.lua new file mode 100644 index 0000000..642719f --- /dev/null +++ b/.config/nvim/lua/polish.lua @@ -0,0 +1,5 @@ +if true then return end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE + +-- This will run last in the setup process. +-- This is just pure lua so anything that doesn't +-- fit in the normal config locations above can go here diff --git a/.config/nvim/neovim.yml b/.config/nvim/neovim.yml new file mode 100644 index 0000000..b9235ab --- /dev/null +++ b/.config/nvim/neovim.yml @@ -0,0 +1,6 @@ +--- +base: lua51 + +globals: + vim: + any: true diff --git a/.config/nvim/selene.toml b/.config/nvim/selene.toml new file mode 100644 index 0000000..e7005c3 --- /dev/null +++ b/.config/nvim/selene.toml @@ -0,0 +1,8 @@ +std = "neovim" + +[rules] +global_usage = "allow" +if_same_then_else = "allow" +incorrect_standard_library_use = "allow" +mixed_table = "allow" +multiple_statements = "allow" diff --git a/.config/waybar/config b/.config/waybar/config new file mode 100644 index 0000000..1484d60 --- /dev/null +++ b/.config/waybar/config @@ -0,0 +1,217 @@ +{ + "layer": "top", "position": "top", + "modules-left": ["custom/logo", "clock", "custom/weather", "disk", "memory", "cpu", "temperature", "custom/powerDraw", "hyprland/window" ], + "modules-center": [ "hyprland/workspaces"], + "modules-right": ["tray", "custom/clipboard", "backlight", "idle_inhibitor", "custom/colorpicker", "bluetooth", "pulseaudio", "network", "battery" ], + "reload_style_on_change":true, + + "custom/logo": { + "format": "", + "tooltip": false + }, + + "hyprland/workspaces": { + "format": "{icon}", + "format-icons": { + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "6": "", + "active": "", + "default": "" + }, + "persistent-workspaces": { + "*": [ 2, 3, 4, 5, 6 ] + } +}, + +"idle_inhibitor":{ + "format": "{icon} ", + "format-icons": { + "activated":"󰈈", + "deactivated":"󰈉" + } +}, + +"custom/weather": { + "format": "{}", + "return-type": "json", + "exec": "~/.config/waybar/scripts/weather.sh", + "interval": 10, + "on-click": "firefox https://wttr.in" +}, + +"custom/clipboard":{ + "format":"", + "on-click": "cliphist list | rofi -dmenu | cliphist decode | wl-copy", + "interval":86400 +}, + + +"clock": { + "format": "{:%I:%M:%S %p}", + "interval":1, + "tooltip-format": "\n{:%Y %B}\n{calendar}", + "calendar-weeks-pos": "right", + "today-format": "{}", + "format-calendar": "{}", + "format-calendar-weeks": "W{:%V}", + "format-calendar-weekdays": "{}" + }, + + "bluetooth": { + "format-on": "", + "format-off": "", + "format-disabled": "󰂲", + "format-connected": "󰂴", + "format-connected-battery": "{device_battery_percentage}% 󰂴", + "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected", + "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}", + "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", + "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%", + "on-click": "rofi-bluetooth", + }, + +"network": { + "format-wifi": " ", + "format-ethernet":" ", + "format-disconnected": "", + "tooltip-format": "{ipaddr}", + "tooltip-format-wifi": "{essid} ({signalStrength}%)  | {ipaddr}", + "tooltip-format-ethernet": "{ifname} 🖧 | {ipaddr}", + "on-click": "networkmanager_dmenu" + }, + +"battery": { + "interval":1, + "states": { + "good": 95, + "warning": 30, + "critical": 20 + }, + "format": "{capacity}% {icon} ", + "format-charging": "{capacity}% 󰂄 ", + "format-plugged": "{capacity}% 󰂄 ", + "format-alt": "{time} {icon}", + "format-icons": [ + "󰁻", + "󰁼", + "󰁾", + "󰂀", + "󰂂", + "󰁹" + ], + }, +"backlight": { + "device": "intel_backlight", + "format": "{icon}", + "format-icons": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ], + "on-scroll-down": "light -A 10", + "on-scroll-up": "light -U 10", + "smooth-scrolling-threshold": 1 + }, + + "disk": { + "interval": 30, + "format": " {percentage_used}%", + "path": "/" + }, + + "custom/colorpicker": { + "format": "{}", + "return-type": "json", + "interval": "once", + "exec": "~/.config/waybar/scripts/colorpicker.sh -j", + "on-click": "sleep 1 && ~/.config/waybar/scripts/colorpicker.sh", + "signal": 1 + }, + + "cpu": { + "interval": 1, + "format": " {usage}%", + "min-length": 6, + "max-length": 6, + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"], + }, + +"memory": { + "format": " {percentage}%" +}, + + "hyprland/window": { + "format": "( {class} )", + "rewrite": { + "(.*) - Mozilla Firefox": "🌎 $1", + "(.*) - zsh": "> [$1]" + } +}, + +"temperature": { + "format": " {temperatureC}°C", + "format-critical": " {temperatureC}°C", + "interval": 1, + "critical-threshold": 80, + "on-click": "foot btop", + }, + +"pulseaudio": { + "format": "{volume}% {icon}", + "format-bluetooth":"󰂰", + "format-muted": "", + "format-icons": { + "headphones": "", + "bluetooth": "󰥰", + "handsfree": "", + "headset": "󱡬", + "phone": "", + "portable": "", + "car": "", + "default": ["🕨","🕩","🕪"] + }, + "justify": "center", + "on-click": "amixer sset Master toggle", + "on-click-right": "pavucontrol", + "tooltip-format": "{icon} {volume}%" +}, + +"jack": { + "format": "{} 󱎔", + "format-xrun": "{xruns} xruns", + "format-disconnected": "DSP off", + "realtime": true +}, + +"tray": { + "icon-size": 14, + "spacing": 10 +}, + +"upower": { + "show-icon": false, + "hide-if-empty": true, + "tooltip": true, + "tooltip-spacing": 20 +}, + + "custom/powerDraw": { + "format": "{}", + "interval": 1, + "exec": "~/.config/waybar/scripts/powerdraw.sh", + "return-type": "json" + } + +} + diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc new file mode 100644 index 0000000..be3070b --- /dev/null +++ b/.config/waybar/config.jsonc @@ -0,0 +1,347 @@ +{ + "layer": "top", + "position": "bottom", + "modules-left": [ + "custom/logo", + "clock", + "disk", + "memory", + "cpu", + "temperature", + "custom/powerDraw" + ], + "modules-center": [ + "hyprland/workspaces", + "mpd" + ], + "modules-right": [ + "hyprland/window", + "tray", + "custom/updates", + "custom/clipboard", + "group/blight", + "idle_inhibitor", + "custom/colorpicker", + "bluetooth", + "group/audio", + "custom/hotspot", + "group/networking", + "battery" + ], + "reload_style_on_change": true, + "custom/logo": { + "format": "󰊠", + "tooltip": false, + "on-click": "~/.config/rofi/scripts/powermenu.sh" + }, + "clock": { + "format": "{:%I:%M:%S %p}", + "interval": 1, + "tooltip-format": "\n{:%Y %B}\n{calendar}", + "calendar-weeks-pos": "right", + "today-format": "{}", + "format-calendar": "{}", + "format-calendar-weeks": "W{:%V}", + "format-calendar-weekdays": "{}" + }, + "hyprland/language": { + "format": "Lang: {long}", + "format-en": "AMERICA, HELL YEAH!", + "format-tr": "As bayrakları", + "keyboard-name": "at-translated-set-2-keyboard" + }, + "disk": { + "interval": 30, + "format": " {percentage_used}%", + "path": "/" + }, + "memory": { + "format": " {percentage}%" + }, + "cpu": { + "interval": 1, + "format": " {usage}%", + "format-icons": [ + "▁", + "▂", + "▃", + "▄", + "▅", + "▆", + "▇", + "█" + ], + }, + "temperature": { + "format": " {temperatureC}°C", + "format-critical": " {temperatureC}°C", + "interval": 1, + "critical-threshold": 80, + "on-click": "foot btop", + }, + "custom/powerDraw": { + "format": "{}", + "interval": 1, + "exec": "~/.config/waybar/scripts/powerdraw.sh", + "return-type": "json" + }, + "hyprland/workspaces": { + "format": "{icon}", + "format-icons": { + "1": "१", + "2": "२", + "3": "३", + "4": "४", + "5": "५", + "6": "६", + "default": "" + }, + "persistent-workspaces": { + "*": [ + 1, + 2, + 3, + 4, + 5, + 6 + ] + } + }, + "hyprland/window": { + "format": "( {class} )", + "rewrite": { + "(.*) - Mozilla Firefox": "🌎 $1", + "org.telegram.desktop": "> [$1]", + "org.gnome.Nautilus": "> [$1]", + "(.*) - zsh": "> [$1]" + } + }, + "tray": { + "icon-size": 14, + "spacing": 10 + }, + "custom/updates": { + "format": "{}", + "interval": 60, + "exec": "~/.config/waybar/scripts/checkupdate.sh", + "return-type": "json", + "exec-if": "exit 0", + }, + "custom/clipboard": { + // "exec": "echo '󰅍'", + "interval": 5, + "tooltip": true, + // "tooltip-format": "{output}", + // "exec-tooltip": "sh -c cliphist list | head -n 5", + "on-click": "sh -c 'cliphist list | rofi -dmenu | cliphist decode | wl-copy'" + }, + "group/blight": { + "orientation": "horizontal", + "drawer": { + "transition-duration": 500, + "transition-left-to-right": false + }, + "modules": [ + "backlight", + "backlight/slider" + ] + }, + "backlight": { + "device": "intel_backlight", + "format": "{icon}", + "format-icons": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ], + "on-scroll-down": "light -U 10", + "on-scroll-up": "light -A 10", + "smooth-scrolling-threshold": 1 + }, + "backlight/slider": { + "min": 0, + "max": 100, + "orientation": "horizontal", + "device": "intel_backlight" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "󰾪", + "deactivated": "󰅶" + } + }, + "custom/colorpicker": { + "format": "{}", + "return-type": "json", + "interval": "once", + "exec": "~/.config/waybar/scripts/colorpicker.sh -j", + "on-click": "sleep 1 && ~/.config/waybar/scripts/colorpicker.sh", + }, + "bluetooth": { + "format-on": "󰂰", + "format-off": "", + "format-disabled": "󰂲", + "format-connected": "󰂴", + "format-connected-battery": "{device_battery_percentage}% 󰂴", + "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected", + "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}", + "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", + "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%", + "on-click": "rofi-bluetooth", + }, + "pulseaudio": { + "format": "{icon}", + "format-bluetooth": "󰂰", + "format-muted": "", + "tooltip-format": "{volume}% {icon}", + "format-icons": { + "headphones": "", + "bluetooth": "󰥰", + "handsfree": "", + "headset": "󱡬", + "phone": "", + "portable": "", + "car": "", + "default": [ + "🕨", + "🕩", + "🕪" + ] + }, + "scroll-step": 5, + "justify": "center", + "on-click": "amixer sset Master toggle", + "on-click-right": "pavucontrol", + "tooltip-format": "{volume}% {icon}", + "on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +5%", + "on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -5%" + }, + "pulseaudio#mic": { + "format": "{format_source}", + "format-source": "", + "format-source-muted": "", + "tooltip-format": "{volume}% {format_source} ", + "on-click": "pactl set-source-mute 0 toggle", + "on-scroll-down": "pactl set-source-volume 0 -1%", + "on-scroll-up": "pactl set-source-volume 0 +1%" + }, + "group/audio": { + "orientation": "horizontal", + "drawer": { + "transition-duration": 500, + "transition-left-to-right": false + }, + "modules": [ + "pulseaudio", + "pulseaudio#mic", + "pulseaudio/slider" + ] + }, + "pulseaudio/slider": { + "min": 0, + "max": 140, + "orientation": "horizontal" + }, + "custom/hotspot": { + "format": "{icon}", + "interval": 1, + "tooltip": true, + "return-type": "json", + "format-icons": { + "active": "󱜠", + "notactive": "󱜡" + }, + "exec": "waybar-hotspot -a watch", + "on-click": "waybar-hotspot -a toggle", + }, + "network": { + "format-wifi": " ", + "format-ethernet": "󰈀", + "format-disconnected": "󱐅", + "tooltip-format": "{ipaddr}", + "tooltip-format-wifi": "{essid} ({signalStrength}%)  | {ipaddr}", + "tooltip-format-ethernet": "{ifname} 🖧 | {ipaddr}", + "tooltip-format-ethernet": "{bandwidthTotalBytes}", + "on-click": "networkmanager_dmenu" + }, + "network#speed": { + "format": "{bandwidthDownBits}", + "interval": 1, + "tooltip-format": "{ipaddr}", + "tooltip-format-wifi": "{essid} ({signalStrength}%)  \n{ipaddr} | {frequency} MHz{icon} ", + "tooltip-format-ethernet": "{ifname} 󰈀 \n{ipaddr} | {frequency} MHz{icon} ", + "tooltip-format-disconnected": "Not Connected to any type of Network", + "tooltip": true, + "on-click": "pgrep -x rofi &>/dev/null && notify-send rofi || networkmanager_dmenu" + }, + "group/networking": { + "orientation": "horizontal", + "drawer": { + "transition-duration": 500, + "transition-left-to-right": false + }, + "modules": [ + "network", + "network#speed" + ] + }, + "battery": { + "interval": 1, + "states": { + "good": 95, + "warning": 30, + "critical": 20 + }, + "tooltip": true, + "format": "{capacity}% {icon}", + "format-time": "{H}h {M}min", + "tooltip": "{time}", + "format-charging": "{capacity}% {icon}", + "format-plugged": "{capacity}% 󰠠", + // "format-alt": "{time} {icon}", + "format-icons": [ + "󰪞", + "󰪟", + "󰪠", + "󰪡", + "󰪢", + "󰪣", + "󰪤", + "󰪥" + ], + "on-click": "~/.config/rofi/scripts/powermenu.sh" + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "interval": 2, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + } +} diff --git a/.config/waybar/scripts/amixer-toggle.sh b/.config/waybar/scripts/amixer-toggle.sh new file mode 100755 index 0000000..ca45bba --- /dev/null +++ b/.config/waybar/scripts/amixer-toggle.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Check the current state of the speaker +state=$(amixer -D pulse sget Master | awk '/\[on\]/{print "unmute"; exit} /\[off\]/{print "mute"; exit}') + +# Toggle the state of the speaker +# +if [ "$state" = "[on] "]; then + amixer +# amixer -D pulse sset Master "$state" > /dev/null + diff --git a/.config/waybar/scripts/brightness.sh b/.config/waybar/scripts/brightness.sh new file mode 100644 index 0000000..7a693aa --- /dev/null +++ b/.config/waybar/scripts/brightness.sh @@ -0,0 +1,3 @@ +#!/bin/bash + + diff --git a/.config/waybar/scripts/colorpicker.sh b/.config/waybar/scripts/colorpicker.sh new file mode 100755 index 0000000..3047757 --- /dev/null +++ b/.config/waybar/scripts/colorpicker.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +check() { + command -v "$1" 1>/dev/null +} + +notify() { + check notify-send && { + notify-send -a "Color Picker" "$@" + return + } + echo "$@" +} + +loc="$HOME/.cache/colorpicker" +[ -d "$loc" ] || mkdir -p "$loc" +[ -f "$loc/colors" ] || touch "$loc/colors" + +limit=10 + +[[ $# -eq 1 && $1 = "-l" ]] && { + cat "$loc/colors" + exit +} + +[[ $# -eq 1 && $1 = "-j" ]] && { + text="$(head -n 1 "$loc/colors")" + + mapfile -t allcolors < <(tail -n +2 "$loc/colors") + # allcolors=($(tail -n +2 "$loc/colors")) + tooltip=" COLORS\n\n" + + tooltip+="-> $text \n" + for i in "${allcolors[@]}"; do + tooltip+=" $i \n" + done + + cat <", "tooltip":"$tooltip"} +EOF + + exit +} + +check hyprpicker || { + notify "hyprpicker is not installed" + exit +} +killall -q hyprpicker +color=$(hyprpicker) + +check wl-copy && { + echo "$color" | sed -z 's/\n//g' | wl-copy +} + +prevColors=$(head -n $((limit - 1)) "$loc/colors") +echo "$color" >"$loc/colors" +echo "$prevColors" >>"$loc/colors" +sed -i '/^$/d' "$loc/colors" +pkill -RTMIN+1 waybar diff --git a/.config/waybar/scripts/myUpdates.sh b/.config/waybar/scripts/myUpdates.sh new file mode 100755 index 0000000..5011866 --- /dev/null +++ b/.config/waybar/scripts/myUpdates.sh @@ -0,0 +1,24 @@ +#!/bin/bash +format() { + if [ "$1" -eq 0 ]; then + echo '-' + else + echo "$1" + fi +} + +if ! updates_arch="$(checkupdates | wc -l)"; then + updates_arch=0 +fi + +if ! updates_aur="$(yay -Qum 2>/dev/null | wc -l)"; then + updates_aur=0 +fi + +updates="$((updates_arch + updates_aur))" + +if [ "$updates" -gt 0 ]; then + echo " ($(format $updates_arch)/$(format $updates_aur))" +else + echo +fia diff --git a/.config/waybar/scripts/myupdate.sh b/.config/waybar/scripts/myupdate.sh new file mode 100755 index 0000000..99e5e72 --- /dev/null +++ b/.config/waybar/scripts/myupdate.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +pkgmgr="pacman" +hash paru 2>/dev/null && pkgmgr="paru" +hash yay 2>/dev/null && pkgmgr="yay" + +IFS=$'\n'$'\r' + +updatesli=($($pkgmgr -Qu)) +text=${#updatesli[@]} +icon="" +[ $text -eq 0 ] && icon="" || icon="📦" + +for i in ${updatesli[@]} +do + tooltip+="$i\n" +done + +cat << EOF +{ "text":"$icon", "tooltip":"UPDATES: $text"} +EOF + diff --git a/.config/waybar/scripts/powerdraw.sh b/.config/waybar/scripts/powerdraw.sh new file mode 100755 index 0000000..8d367b7 --- /dev/null +++ b/.config/waybar/scripts/powerdraw.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f /sys/class/power_supply/BAT*/power_now ]; then + powerDraw="󰠰 $(($(cat /sys/class/power_supply/BAT*/power_now)/1000000))w" +fi + + +cat << EOF +{ "text":"$powerDraw", "tooltip":"power Draw $powerDraw"} +EOF diff --git a/.config/waybar/scripts/weather.sh b/.config/waybar/scripts/weather.sh new file mode 100755 index 0000000..0eaeaf9 --- /dev/null +++ b/.config/waybar/scripts/weather.sh @@ -0,0 +1,24 @@ +#!/bin/sh +BSSIDS="$(nmcli device wifi list | + awk 'NR>1 {if ($1 != "*") {print $1}}' | + tr -d ":" | + tr "\n" ",")" + +LOC="" +REQUEST_GEO="$(wget -qO - http://openwifi.su/api/v1/bssids/"$BSSIDS")" +if [[ "$(jq ".count_results" <<< "$REQUEST_GEO")" -gt 0 ]] ; then + LAT="$(jq ".lat" <<< "$REQUEST_GEO")" + LON="$(jq ".lon" <<< "$REQUEST_GEO")" + LOC="$LAT,$LON" +fi + +text="$(curl -s "https://wttr.in/$LOC?format=1" | sed 's/ //g')" +tooltip="$(curl -s "https://wttr.in/$LOC?0QT" | + sed 's/\\/\\\\/g' | + sed ':a;N;$!ba;s/\n/\\n/g' | + sed 's/"/\\"/g')" + +if ! grep -q "Unknown location" <<< "$text"; then + echo "{\"text\": \"$text\", \"tooltip\": \"$tooltip\", \"class\": \"weather\"}" +fi + diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..ee4d090 --- /dev/null +++ b/.config/waybar/style.css @@ -0,0 +1,98 @@ +* { + border: none; + font-size: 14px; + color: white; + font-family: "JetBrainsMono Nerd Font,JetBrainsMono NF"; + min-height: 25px; +} + +window#waybar { + background: transparent; + margin: 5px; +} + +#custom-logo { + padding: 0 10px; +} + +.modules-right { + padding-left: 5px; + border-radius: 15px 0 0 15px; + margin-top: 2px; + background: #000000; +} + +.modules-center { + padding: 0 15px; + margin-top: 2px; + border-radius: 15px 15px 15px 15px; + background: #000000; +} + +.modules-left { + border-radius: 0 15px 15px 0; + margin-top: 2px; + background: #000000; +} + +#battery, +#custom-clipboard, +#custom-colorpicker, +#custom-powerDraw, +#bluetooth, +#pulseaudio, +#network, +#disk, +#memory, +#backlight, +#cpu, +#temperature, +#custom-weather, +#idle_inhibitor, +#jack, +#tray, +#window, +#workspaces, +#clock { + padding: 0 5px; +} +#pulseaudio { + padding-top: 3px; +} + +#temperature.critical, +#pulseaudio.muted { + color: #ff0000; + padding-top: 0; +} + +#clock { + color: #5fd1fa; +} + +#battery.charging { + color: #ffffff; + background-color: #26a65b; +} + +#battery.warning:not(.charging) { + background-color: #ffbe61; + color: black; +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} diff --git a/.config/waybar/style2.css b/.config/waybar/style2.css new file mode 100644 index 0000000..f268612 --- /dev/null +++ b/.config/waybar/style2.css @@ -0,0 +1,160 @@ +@import "./waybar.css"; + +@define-color active @color0; + +* { + border: none; + font-size: 15px; + font-family: "JetBrainsMono Nerd Font,JetBrainsMono NF" ; + min-height: 10px; + color: @active; + /* color: White; */ +} + +window#waybar { + /* background: transparent; */ + background: rgba(0, 0, 0, 0.9); + } + +tooltip { + border-radius: 15px; + background: rgba(0, 0, 0, 0.9); + color: @active; +} + +tooltip label{ + color: @active; +} + +#custom-logo { + padding: 0 10px; +} + +.modules-right { + /* border: 1px solid lighter(@active); */ + /* border: 1px solid @active; */ + border-radius: 15px; + padding: 0px 5px; + margin: 2px 5px; + background: rgba(000, 000, 000, 0.8); +} + +.modules-center { + /* border: 1px solid lighter(@active); */ + /* border: 1px solid @active; */ + padding: 0 15px; + margin: 2px 0px; + border-radius: 15px 15px 15px 15px; + background: rgba(000, 000, 000, 0.8); +} + +.modules-left { + /* border: 1px solid lighter(@active); */ + /* border: 1px solid @active; */ + padding: 0px 5px; + border-radius: 15px; + margin: 2px 5px; + background: rgba(000, 000, 000, 0.8); +} + +#battery, +#custom-clipboard, +#custom-colorpicker, +#custom-powerDraw, +#custom-updates, +#custom-pacman, +#bluetooth, +#pulseaudio, +#custom-hotspot, +#pulseaudio.mic, +#pulseaudio.bluetooth, +#network, +#disk, +#memory, +#backlight, +#cpu, +#temperature, +#custom-weather, +#idle_inhibitor, +#jack, +#tray, +#window, +/* #workspaces, */ +#clock { + padding: 0 5px; +} + +#workspaces button { + border-radius: 0px; +} + +#workspaces button.active { + border-bottom: solid 2px @active; +} + +#pulseaudio{ + padding-top: 3px; +} + +#pulseaudio.muted{ + color: #FF0000; + padding-top: 2px; + padding-right: 10px; +} + +#backlight-slider, +#pulseaudio-slider { + padding: 0 5px 0 8px; +} + +#backlight-slider slider, +#pulseaudio-slider slider { + background-color: transparent; + box-shadow: none; +} + +#backlight-slider trough, +#pulseaudio-slider trough { + min-width: 50px; + min-height: 5px; + border-radius: 8px; +} + +#backlight-slider highlight, +#pulseaudio-slider highlight { + min-width: 5px; + min-height: 5px; + background-color: #FFFFFF; + +} + +/* #clock{ */ +/* color: #5fd1fa; */ +/* } */ + +#battery.charging { + color: #77DD77; +} + +#battery.warning:not(.charging) { + background-color: #ffbe61; + color: black; +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..5830d97 --- /dev/null +++ b/.zshrc @@ -0,0 +1,111 @@ +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH + +# Path to your Oh My Zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time Oh My Zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="funky" + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment one of the following lines to change the auto-update behavior +# zstyle ':omz:update' mode disabled # disable automatic updates +# zstyle ':omz:update' mode auto # update automatically without asking +# zstyle ':omz:update' mode reminder # just remind me to update when it's time + +# Uncomment the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git zsh-autosuggestions zsh-syntax-highlighting) + + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='nvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch $(uname -m)" + +# Set personal aliases, overriding those provided by Oh My Zsh libs, +# plugins, and themes. Aliases can be placed here, though Oh My Zsh +# users are encouraged to define aliases within a top-level file in +# the $ZSH_CUSTOM folder, with .zsh extension. Examples: +# - $ZSH_CUSTOM/aliases.zsh +# - $ZSH_CUSTOM/macos.zsh +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" +alias n='nvim' +alias l='lazygit' +alias g='git push origin master' +alias sn='shutdown now' +alias upd='sudo pacman -Syu' +alias ls='eza'