From 1688bd830909d82dde38b95d21bae3301ff2f7a1 Mon Sep 17 00:00:00 2001 From: AINDUSTRIES Date: Sat, 9 Aug 2025 00:03:40 +0200 Subject: [PATCH] Initial Commit --- ashell/config.toml | 60 +++++++ hypr/hyprland.conf | 242 +++++++++++++++++++++++++++ hypr/hyprlock.conf | 50 ++++++ hypr/macchiato.conf | 77 +++++++++ kitty/kitty.conf | 91 ++++++++++ nvim/.gitignore | 8 + nvim/.neoconf.json | 15 ++ nvim/init.lua | 2 + nvim/lazy-lock.json | 42 +++++ nvim/lazyvim.json | 18 ++ nvim/lua/config/autocmds.lua | 8 + nvim/lua/config/keymaps.lua | 3 + nvim/lua/config/lazy.lua | 53 ++++++ nvim/lua/config/options.lua | 7 + nvim/lua/plugins/colorscheme.lua | 65 ++++++++ nvim/lua/plugins/example.lua | 197 ++++++++++++++++++++++ nvim/stylua.toml | 3 + starship/starship.toml | 26 +++ walker/config.toml | 264 ++++++++++++++++++++++++++++++ walker/themes/default.css | 162 ++++++++++++++++++ walker/themes/default.toml | 103 ++++++++++++ walker/themes/default_window.toml | 105 ++++++++++++ waybar/config | 100 +++++++++++ waybar/macchiato.css | 37 +++++ waybar/style.css | 127 ++++++++++++++ waybar/style.css.bak | 150 +++++++++++++++++ 26 files changed, 2015 insertions(+) create mode 100644 ashell/config.toml create mode 100644 hypr/hyprland.conf create mode 100644 hypr/hyprlock.conf create mode 100644 hypr/macchiato.conf create mode 100644 kitty/kitty.conf create mode 100644 nvim/.gitignore create mode 100644 nvim/.neoconf.json create mode 100644 nvim/init.lua create mode 100644 nvim/lazy-lock.json create mode 100644 nvim/lazyvim.json create mode 100644 nvim/lua/config/autocmds.lua create mode 100644 nvim/lua/config/keymaps.lua create mode 100644 nvim/lua/config/lazy.lua create mode 100644 nvim/lua/config/options.lua create mode 100644 nvim/lua/plugins/colorscheme.lua create mode 100644 nvim/lua/plugins/example.lua create mode 100644 nvim/stylua.toml create mode 100644 starship/starship.toml create mode 100644 walker/config.toml create mode 100644 walker/themes/default.css create mode 100644 walker/themes/default.toml create mode 100644 walker/themes/default_window.toml create mode 100644 waybar/config create mode 100644 waybar/macchiato.css create mode 100644 waybar/style.css create mode 100644 waybar/style.css.bak diff --git a/ashell/config.toml b/ashell/config.toml new file mode 100644 index 0000000..0366ef3 --- /dev/null +++ b/ashell/config.toml @@ -0,0 +1,60 @@ +[modules] +left = ["Workspaces"] +center = ["WindowTitle", "MediaPlayer"] +right = ["Tray", "SystemInfo", "KeyboardLayout", "Updates", ["Clock", "Privacy", "Settings"]] + +[updates] +check_cmd = "checkupdates; yay -Qua" +update_cmd = 'kitty -e bash -c "yay; echo Done - Press enter to exit; read" &' + +[workspaces] +visibility_mode = "MonitorSpecific" +enable_workspace_filling = true + +[system] +indicators = [ "Cpu", "Memory", "Temperature" ] + +[system.cpu] +warn_threshold = 60 +alert_threshold = 80 + +[system.memory] +warn_threshold = 70 +alert_threshold = 85 + +[system.disk] +warn_threshold = 80 +alert_threshold = 90 + +[system.temperature] +warn_threshold = 60 +alert_threshold = 80 + +#[keyboard_layout.labels] +#"English (US)" = "us" +#"Belgian" = "be" + +[appearance] +font_name = "Hack Nerd Font Mono" + +success_color = "#a6e3a1" +text_color = "#cdd6f4" + +workspace_colors = [ "#fab387", "#b4befe", "#cba6f7" ] + +[appearance.primary_color] +base = "#fab387" +text = "#1e1e2e" + +[appearance.danger_color] +base = "#f38ba8" +weak = "#f9e2af" + +[appearance.background_color] +base = "#1e1e2e" +weak = "#313244" +strong = "#45475a" + +[appearance.secondary_color] +base = "#11111b" +strong = "#1b1b25" diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf new file mode 100644 index 0000000..7156512 --- /dev/null +++ b/hypr/hyprland.conf @@ -0,0 +1,242 @@ + +# ####################################################################################### +# AUTOGENERATED HYPR CONFIG. +# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, +# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. +# ####################################################################################### + +# +# Please note not all available settings / options are set here. +# For a full list, see the wiki +# +# Macchiato color theme +source=~/.config/hypr/macchiato.conf + + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=DP-1,1920x1080@100,0x0,1 +monitor=DP-2,1920x1080@60,-1920x0,1 + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +exec-once = ashell +exec-once = swww-daemon + +# Set programs that you use +$terminal = kitty +$fileManager = nemo +$menu = walker + +# Some default env vars. +env = XCURSOR_SIZE,24 +env = QT_QPA_PLATFORM,wayland +env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that +env = LIBVA_DRIVER_NAME,nvidia +env = XDG_SESSION_TYPE,wayland +env = GBM_BACKEND,nvidia-drm +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = WLR_NO_HARDWARE_CURSORS,1 + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = be,us + kb_options = grp:win_space_toggle + + follow_mouse = 1 + + touchpad { + natural_scroll = yes + + } + +} + +device { + name = microsoft-surface-045e:09af-mouse + sensitivity = 0.5 +} + +device { + name = microsoft-surface-045e:09af-touchpad + sensitivity = 0.2 +} + +device { + name = glorious-model-o + sensitivity = -0.2 +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 3 + gaps_out = 10 + border_size = 3 + col.active_border = $flamingo $mauve 45deg + col.inactive_border = rgb(141414) + + layout = dwindle + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false +} + +group { + col.border_active = $flamingo $lavender 45deg + col.border_inactive = rgb(141414) + col.border_locked_active = $red $lavender 45deg + col.border_locked_inactive = rgb(141414) +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10 + + blur { + enabled = true + size = 3 + passes = 1 + } + shadow { + enabled = yes + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } +} + + + +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_status = master +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +misc { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + force_default_wallpaper = -1 # 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 = float,title:^(Brightness Control)$ +windowrulev2 = move 100%-295 50,title:^(Brightness Control)$ + +windowrulev2 = stayfocused,title:^(rofi - combi)$ + +windowrulev2 = float,title:^(Volume Control)$ +windowrulev2 = move 50% 50,title:^(Volume Control)$ +windowrulev2 = size 700 400,title:^(Volume Control)$ + +windowrulev2 = float, title:^(HyperDown)$ +windowrulev2 = center, title:^(HyperDown)$ + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER +$spaceMod = ALT + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, T, exec, $terminal +bind = $mainMod, C, killactive, +bind = $mainMod, Escape, exit, +bind = $mainMod, E, exec, $fileManager +bind = $mainMod, F, togglefloating, +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle +bind = $altMod, SPACE, exec, $menu +bind = $mainMod, L, exec, hyprlock +bind = $mainMod, V, fullscreen + +# Move focus with mainMod + arrow key +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, ampersand, workspace, 1 +bind = $mainMod, eacute, workspace, 2 +bind = $mainMod, quotedbl, workspace, 3 +bind = $mainMod, apostrophe, workspace, 4 +bind = $mainMod, parenleft, workspace, 5 +bind = $mainMod, section, workspace, 6 +bind = $mainMod, egrave, workspace, 7 +bind = $mainMod, exclam, workspace, 8 +bind = $mainMod, ccedilla, workspace, 9 +bind = $mainMod, agrave, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, ampersand, movetoworkspace, 1 +bind = $mainMod SHIFT, eacute, movetoworkspace, 2 +bind = $mainMod SHIFT, quotedbl, movetoworkspace, 3 +bind = $mainMod SHIFT, apostrophe, movetoworkspace, 4 +bind = $mainMod SHIFT, parenleft, movetoworkspace, 5 +bind = $mainMod SHIFT, section, movetoworkspace, 6 +bind = $mainMod SHIFT, egrave, movetoworkspace, 7 +bind = $mainMod SHIFT, exclam, movetoworkspace, 8 +bind = $mainMod SHIFT, ccedilla, movetoworkspace, 9 +bind = $mainMod SHIFT, agrave, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, M, togglespecialworkspace, magic +bind = $mainMod SHIFT, M, 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 window to existing workspaces with mainMod + SHIFT + scroll +bind = $mainMod SHIFT, mouse_down, movetoworkspace, e+1 +bind = $mainMod SHIFT, mouse_up, movetoworkspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Take a screenshot and copy it to clipboard +bind = $mainMod SHIFT, S, exec, grim -g "$(slurp -d)" - | wl-copy + +# Write Decroly mon collègue mais néanmoins amis +bind = $altMod, TAB, exec, printf "%s\n" "type Mon collègue mais néanmois ami, André Decroly." "key enter" | DOTOOL_XKB_LAYOUT=be dotool diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf new file mode 100644 index 0000000..1394644 --- /dev/null +++ b/hypr/hyprlock.conf @@ -0,0 +1,50 @@ +general { + monitor = + ignore_empty_input = true +} + +background { + monitor = + path = /home/aindustries/Downloads/test.jpg + blur_passes = 3 +} + +input-field { + monitor = DP-3 + size = 250, 30 + outline_thickness = 1 + dots_size = 0.11 + dots_spacing = 0.05 + dots_center = true + placeholder_text = + font_color = rgb(0, 0, 0) + hide_input = false + fade_on_empty = true + fade_timeout = 500 + rounding = 20 + position = 0, -30 + halign = center + valign = center +} + +label { + monitor = DP-3 + text = Welcome back, $USER! + text_align = center + font_size = 30 + font_family = Hack Nerd Font + position = 0, 100 + halign = center + valign = center +} + +label { + monitor = DP-3 + text = Please enter your password. + text_align = center + font_size = 10 + font_family = Hack Nerd Font + position = 0, 30 + halign = center + valign = center +} diff --git a/hypr/macchiato.conf b/hypr/macchiato.conf new file mode 100644 index 0000000..a179511 --- /dev/null +++ b/hypr/macchiato.conf @@ -0,0 +1,77 @@ +$rosewater = rgb(f4dbd6) +$rosewaterAlpha = f4dbd6 + +$flamingo = rgb(f0c6c6) +$flamingoAlpha = f0c6c6 + +$pink = rgb(f5bde6) +$pinkAlpha = f5bde6 + +$mauve = rgb(c6a0f6) +$mauveAlpha = c6a0f6 + +$red = rgb(ed8796) +$redAlpha = ed8796 + +$maroon = rgb(ee99a0) +$maroonAlpha = ee99a0 + +$peach = rgb(f5a97f) +$peachAlpha = f5a97f + +$yellow = rgb(eed49f) +$yellowAlpha = eed49f + +$green = rgb(a6da95) +$greenAlpha = a6da95 + +$teal = rgb(8bd5ca) +$tealAlpha = 8bd5ca + +$sky = rgb(91d7e3) +$skyAlpha = 91d7e3 + +$sapphire = rgb(7dc4e4) +$sapphireAlpha = 7dc4e4 + +$blue = rgb(8aadf4) +$blueAlpha = 8aadf4 + +$lavender = rgb(b7bdf8) +$lavenderAlpha = b7bdf8 + +$text = rgb(cad3f5) +$textAlpha = cad3f5 + +$subtext1 = rgb(b8c0e0) +$subtext1Alpha = b8c0e0 + +$subtext0 = rgb(a5adcb) +$subtext0Alpha = a5adcb + +$overlay2 = rgb(939ab7) +$overlay2Alpha = 939ab7 + +$overlay1 = rgb(8087a2) +$overlay1Alpha = 8087a2 + +$overlay0 = rgb(6e738d) +$overlay0Alpha = 6e738d + +$surface2 = rgb(5b6078) +$surface2Alpha = 5b6078 + +$surface1 = rgb(494d64) +$surface1Alpha = 494d64 + +$surface0 = rgb(363a4f) +$surface0Alpha = 363a4f + +$base = rgb(24273a) +$baseAlpha = 24273a + +$mantle = rgb(1e2030) +$mantleAlpha = 1e2030 + +$crust = rgb(181926) +$crustAlpha = 181926 diff --git a/kitty/kitty.conf b/kitty/kitty.conf new file mode 100644 index 0000000..544e249 --- /dev/null +++ b/kitty/kitty.conf @@ -0,0 +1,91 @@ +font_family family="Hack Nerd Font Mono" +font_size 14.0 + +cursor_trail 1 +cursor_trail_delay 0.1 0.1 + +background_opacity 0.8 + +window_padding_width 4 +placement_strategy top + +# vim:ft=kitty + +## name: Catppuccin Kitty Macchiato +## author: Catppuccin Org +## license: MIT +## upstream: https://github.com/catppuccin/kitty/blob/main/themes/macchiato.conf +## blurb: Soothing pastel theme for the high-spirited! + + + +# The basic colors +foreground #cad3f5 +background #24273a +selection_foreground #24273a +selection_background #f4dbd6 + +# Cursor colors +cursor #f4dbd6 +cursor_text_color #24273a + +# URL underline color when hovering with mouse +url_color #f4dbd6 + +# Kitty window border colors +active_border_color #b7bdf8 +inactive_border_color #6e738d +bell_border_color #eed49f + +# OS Window titlebar colors +wayland_titlebar_color system +macos_titlebar_color system + +# Tab bar colors +active_tab_foreground #181926 +active_tab_background #c6a0f6 +inactive_tab_foreground #cad3f5 +inactive_tab_background #1e2030 +tab_bar_background #181926 + +# Colors for marks (marked text in the terminal) +mark1_foreground #24273a +mark1_background #b7bdf8 +mark2_foreground #24273a +mark2_background #c6a0f6 +mark3_foreground #24273a +mark3_background #7dc4e4 + +# The 16 terminal colors + +# black +color0 #494d64 +color8 #5b6078 + +# red +color1 #ed8796 +color9 #ed8796 + +# green +color2 #a6da95 +color10 #a6da95 + +# yellow +color3 #eed49f +color11 #eed49f + +# blue +color4 #8aadf4 +color12 #8aadf4 + +# magenta +color5 #f5bde6 +color13 #f5bde6 + +# cyan +color6 #8bd5ca +color14 #8bd5ca + +# white +color7 #b8c0e0 +color15 #a5adcb diff --git a/nvim/.gitignore b/nvim/.gitignore new file mode 100644 index 0000000..cc5457a --- /dev/null +++ b/nvim/.gitignore @@ -0,0 +1,8 @@ +tt.* +.tests +doc/tags +debug +.repro +foo.* +*.log +data diff --git a/nvim/.neoconf.json b/nvim/.neoconf.json new file mode 100644 index 0000000..7c48087 --- /dev/null +++ b/nvim/.neoconf.json @@ -0,0 +1,15 @@ +{ + "neodev": { + "library": { + "enabled": true, + "plugins": true + } + }, + "neoconf": { + "plugins": { + "lua_ls": { + "enabled": true + } + } + } +} diff --git a/nvim/init.lua b/nvim/init.lua new file mode 100644 index 0000000..2514f9e --- /dev/null +++ b/nvim/init.lua @@ -0,0 +1,2 @@ +-- bootstrap lazy.nvim, LazyVim and your plugins +require("config.lazy") diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json new file mode 100644 index 0000000..60f74b8 --- /dev/null +++ b/nvim/lazy-lock.json @@ -0,0 +1,42 @@ +{ + "LazyVim": { "branch": "main", "commit": "25abbf546d564dc484cf903804661ba12de45507" }, + "blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" }, + "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, + "catppuccin": { "branch": "main", "commit": "76a8d0515024cc55d8bd26fc13f1af88faef3ebf" }, + "conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" }, + "crates.nvim": { "branch": "main", "commit": "a49df0f70171adc77704eac70dd2c0d179065933" }, + "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, + "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "gitsigns.nvim": { "branch": "main", "commit": "736f51d2bb684c06f39a2032f064d7244f549981" }, + "grug-far.nvim": { "branch": "main", "commit": "385d1949dc21d0c39e7a74b4f4a25da18817bc86" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, + "lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" }, + "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, + "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, + "mini.ai": { "branch": "main", "commit": "1cd4f021a05c29acd4ab511c0981da14217daf38" }, + "mini.icons": { "branch": "main", "commit": "b8f6fa6f5a3fd0c56936252edcd691184e5aac0c" }, + "mini.pairs": { "branch": "main", "commit": "1e1ca3f60f58d4050bf814902b472eec9963a5dd" }, + "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-lint": { "branch": "master", "commit": "7ef127aaede2a4d5ad8df8321e2eb4e567f29594" }, + "nvim-lspconfig": { "branch": "master", "commit": "9141be4c1332afc83bdf1b0278dbb030f75ff8e3" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" }, + "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, + "persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "render-markdown.nvim": { "branch": "main", "commit": "5df2eab599e06c48d04ea7e89cbaa3cdb4e09538" }, + "rustaceanvim": { "branch": "master", "commit": "1fd56eeb60dc79621b3270bc71a5384ea340a027" }, + "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, + "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, + "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, + "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, + "ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" }, + "vim-dadbod": { "branch": "master", "commit": "e95afed23712f969f83b4857a24cf9d59114c2e6" }, + "vim-dadbod-completion": { "branch": "master", "commit": "a8dac0b3cf6132c80dc9b18bef36d4cf7a9e1fe6" }, + "vim-dadbod-ui": { "branch": "master", "commit": "2900a1617b3df1a48683d872eadbe1101146a49a" }, + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }, + "yanky.nvim": { "branch": "main", "commit": "04775cc6e10ef038c397c407bc17f00a2f52b378" } +} diff --git a/nvim/lazyvim.json b/nvim/lazyvim.json new file mode 100644 index 0000000..7e34ce1 --- /dev/null +++ b/nvim/lazyvim.json @@ -0,0 +1,18 @@ +{ + "extras": [ + "lazyvim.plugins.extras.coding.yanky", + "lazyvim.plugins.extras.lang.docker", + "lazyvim.plugins.extras.lang.markdown", + "lazyvim.plugins.extras.lang.python", + "lazyvim.plugins.extras.lang.rust", + "lazyvim.plugins.extras.lang.sql", + "lazyvim.plugins.extras.lang.tailwind", + "lazyvim.plugins.extras.lang.typescript", + "lazyvim.plugins.extras.util.dot" + ], + "install_version": 8, + "news": { + "NEWS.md": "10960" + }, + "version": 8 +} \ No newline at end of file diff --git a/nvim/lua/config/autocmds.lua b/nvim/lua/config/autocmds.lua new file mode 100644 index 0000000..4221e75 --- /dev/null +++ b/nvim/lua/config/autocmds.lua @@ -0,0 +1,8 @@ +-- Autocmds are automatically loaded on the VeryLazy event +-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua +-- +-- Add any additional autocmds here +-- with `vim.api.nvim_create_autocmd` +-- +-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults) +-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell") diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua new file mode 100644 index 0000000..2c134f7 --- /dev/null +++ b/nvim/lua/config/keymaps.lua @@ -0,0 +1,3 @@ +-- Keymaps are automatically loaded on the VeryLazy event +-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua +-- Add any additional keymaps here diff --git a/nvim/lua/config/lazy.lua b/nvim/lua/config/lazy.lua new file mode 100644 index 0000000..d73bfa1 --- /dev/null +++ b/nvim/lua/config/lazy.lua @@ -0,0 +1,53 @@ +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" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + spec = { + -- add LazyVim and import its plugins + { "LazyVim/LazyVim", import = "lazyvim.plugins" }, + -- import/override with your plugins + { import = "plugins" }, + }, + defaults = { + -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. + -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. + lazy = false, + -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, + -- have outdated releases, which may break your Neovim install. + version = false, -- always use the latest git commit + -- version = "*", -- try installing the latest stable version for plugins that support semver + }, + install = { colorscheme = { "tokyonight", "habamax" } }, + checker = { + enabled = true, -- check for plugin updates periodically + notify = false, -- notify on update + }, -- automatically check for plugin updates + performance = { + rtp = { + -- disable some rtp plugins + disabled_plugins = { + "gzip", + -- "matchit", + -- "matchparen", + -- "netrwPlugin", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + }, + }, + }, +}) diff --git a/nvim/lua/config/options.lua b/nvim/lua/config/options.lua new file mode 100644 index 0000000..fc485e0 --- /dev/null +++ b/nvim/lua/config/options.lua @@ -0,0 +1,7 @@ +-- Options are automatically loaded before lazy.nvim startup +-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua +-- Add any additional options here +local opt = vim.opt +opt.tabstop = 4 +opt.spell = true +opt.spelllang = { "en", "fr" } diff --git a/nvim/lua/plugins/colorscheme.lua b/nvim/lua/plugins/colorscheme.lua new file mode 100644 index 0000000..085d5dd --- /dev/null +++ b/nvim/lua/plugins/colorscheme.lua @@ -0,0 +1,65 @@ +return { + { + "catppuccin/nvim", + lazy = false, + name = "catppuccin", + opts = { + integrations = { + aerial = true, + alpha = true, + cmp = true, + dashboard = true, + flash = true, + fzf = true, + grug_far = true, + gitsigns = true, + headlines = true, + illuminate = true, + indent_blankline = { enabled = true }, + leap = true, + lsp_trouble = true, + mason = true, + markdown = true, + mini = true, + native_lsp = { + enabled = true, + underlines = { + errors = { "undercurl" }, + hints = { "undercurl" }, + warnings = { "undercurl" }, + information = { "undercurl" }, + }, + }, + navic = { enabled = true, custom_bg = "lualine" }, + neotest = true, + neotree = true, + noice = true, + notify = true, + semantic_tokens = true, + snacks = true, + telescope = true, + treesitter = true, + treesitter_context = true, + which_key = true, + }, + transparent_background = true, + }, + specs = { + { + "akinsho/bufferline.nvim", + optional = true, + opts = function(_, opts) + if (vim.g.colors_name or ""):find("catppuccin") then + opts.highlights = require("catppuccin.groups.integrations.bufferline").get() + end + end, + }, + }, + }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "catppuccin", + }, + }, +} diff --git a/nvim/lua/plugins/example.lua b/nvim/lua/plugins/example.lua new file mode 100644 index 0000000..17f53d6 --- /dev/null +++ b/nvim/lua/plugins/example.lua @@ -0,0 +1,197 @@ +-- since this is just an example spec, don't actually load anything here and return an empty spec +-- stylua: ignore +if true then return {} end + +-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim +-- +-- In your plugin files, you can: +-- * add extra plugins +-- * disable/enabled LazyVim plugins +-- * override the configuration of LazyVim plugins +return { + -- add gruvbox + { "ellisonleao/gruvbox.nvim" }, + + -- Configure LazyVim to load gruvbox + { + "LazyVim/LazyVim", + opts = { + colorscheme = "gruvbox", + }, + }, + + -- change trouble config + { + "folke/trouble.nvim", + -- opts will be merged with the parent spec + opts = { use_diagnostic_signs = true }, + }, + + -- disable trouble + { "folke/trouble.nvim", enabled = false }, + + -- override nvim-cmp and add cmp-emoji + { + "hrsh7th/nvim-cmp", + dependencies = { "hrsh7th/cmp-emoji" }, + ---@param opts cmp.ConfigSchema + opts = function(_, opts) + table.insert(opts.sources, { name = "emoji" }) + end, + }, + + -- change some telescope options and a keymap to browse plugin files + { + "nvim-telescope/telescope.nvim", + keys = { + -- add a keymap to browse plugin files + -- stylua: ignore + { + "fp", + function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, + desc = "Find Plugin File", + }, + }, + -- change some options + opts = { + defaults = { + layout_strategy = "horizontal", + layout_config = { prompt_position = "top" }, + sorting_strategy = "ascending", + winblend = 0, + }, + }, + }, + + -- add pyright to lspconfig + { + "neovim/nvim-lspconfig", + ---@class PluginLspOpts + opts = { + ---@type lspconfig.options + servers = { + -- pyright will be automatically installed with mason and loaded with lspconfig + pyright = {}, + }, + }, + }, + + -- add tsserver and setup with typescript.nvim instead of lspconfig + { + "neovim/nvim-lspconfig", + dependencies = { + "jose-elias-alvarez/typescript.nvim", + init = function() + require("lazyvim.util").lsp.on_attach(function(_, buffer) + -- stylua: ignore + vim.keymap.set( "n", "co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) + vim.keymap.set("n", "cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer }) + end) + end, + }, + ---@class PluginLspOpts + opts = { + ---@type lspconfig.options + servers = { + -- tsserver will be automatically installed with mason and loaded with lspconfig + tsserver = {}, + }, + -- you can do any additional lsp server setup here + -- return true if you don't want this server to be setup with lspconfig + ---@type table + setup = { + -- example to setup with typescript.nvim + tsserver = function(_, opts) + require("typescript").setup({ server = opts }) + return true + end, + -- Specify * to use this function as a fallback for any server + -- ["*"] = function(server, opts) end, + }, + }, + }, + + -- for typescript, LazyVim also includes extra specs to properly setup lspconfig, + -- treesitter, mason and typescript.nvim. So instead of the above, you can use: + { import = "lazyvim.plugins.extras.lang.typescript" }, + + -- add more treesitter parsers + { + "nvim-treesitter/nvim-treesitter", + opts = { + ensure_installed = { + "bash", + "html", + "javascript", + "json", + "lua", + "markdown", + "markdown_inline", + "python", + "query", + "regex", + "tsx", + "typescript", + "vim", + "yaml", + }, + }, + }, + + -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above + -- would overwrite `ensure_installed` with the new value. + -- If you'd rather extend the default config, use the code below instead: + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + -- add tsx and treesitter + vim.list_extend(opts.ensure_installed, { + "tsx", + "typescript", + }) + end, + }, + + -- the opts function can also be used to change the default opts: + { + "nvim-lualine/lualine.nvim", + event = "VeryLazy", + opts = function(_, opts) + table.insert(opts.sections.lualine_x, { + function() + return "😄" + end, + }) + end, + }, + + -- or you can return new options to override all the defaults + { + "nvim-lualine/lualine.nvim", + event = "VeryLazy", + opts = function() + return { + --[[add your custom lualine config here]] + } + end, + }, + + -- use mini.starter instead of alpha + { import = "lazyvim.plugins.extras.ui.mini-starter" }, + + -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc + { import = "lazyvim.plugins.extras.lang.json" }, + + -- add any tools you want to have installed below + { + "williamboman/mason.nvim", + opts = { + ensure_installed = { + "stylua", + "shellcheck", + "shfmt", + "flake8", + }, + }, + }, +} diff --git a/nvim/stylua.toml b/nvim/stylua.toml new file mode 100644 index 0000000..e55efd5 --- /dev/null +++ b/nvim/stylua.toml @@ -0,0 +1,3 @@ +indent_type = "Spaces" +indent_width = 4 +column_width = 120 diff --git a/starship/starship.toml b/starship/starship.toml new file mode 100644 index 0000000..20860a6 --- /dev/null +++ b/starship/starship.toml @@ -0,0 +1,26 @@ +format = ''' +[⎧ ](white)$username[@](white)$hostname [|](white) $directory(bold blue)$python(bold green)$rust(bold red) +[⎩](white) ''' + +scan_timeout = 10 + +add_newline = true + +[username] +format = "[$user]($style)" +style_user = "#f5bde6 bold" #rose bold +style_root = "#ed8796 bold" #red bold +show_always = true + +[hostname] +format = "[$hostname]($style)" +style = "#f0c6c6 bold" +trim_at = "" +ssh_only = false + +[directory] +format = "[$path]($style)[$read_only]($read_only_style) " +style = "#8aadf4 bold" +home_symbol = "~" +read_only = "" +read_only_style = "red" diff --git a/walker/config.toml b/walker/config.toml new file mode 100644 index 0000000..9843509 --- /dev/null +++ b/walker/config.toml @@ -0,0 +1,264 @@ +terminal_title_flag = "" +locale = "" +close_when_open = false +theme = "default" +monitor = "" +hotreload_theme = false +as_window = false +timeout = 0 +disable_click_to_close = false +force_keyboard_focus = false +theme_location = [] +plugin_location = [] +js_runtime = "node" + +[keys] +accept_typeahead = ["tab"] +trigger_labels = "lalt" +next = ["down"] +prev = ["up"] +close = ["esc"] +remove_from_history = ["shift backspace"] +resume_query = ["ctrl r"] +toggle_exact_search = ["ctrl m"] + +[keys.activation_modifiers] +keep_open = "shift" +alternate = "alt" + +[keys.ai] +clear_session = ["ctrl x"] +copy_last_response = ["ctrl c"] +resume_session = ["ctrl r"] +run_last_response = ["ctrl e"] + +[events] +on_activate = "" +on_selection = "" +on_exit = "" +on_launch = "" +on_query_change = "" + +[list] +dynamic_sub = true +keyboard_scroll_style = "emacs" +max_entries = 50 +show_initial_entries = true +single_click = true +visibility_threshold = 20 +placeholder = "No Results" + +[search] +argument_delimiter = "#" +placeholder = "Search..." +delay = 0 +resume_last_query = false + +[activation_mode] +labels = "jkl;asdf" + +[builtins.hyprland_keybinds] +show_sub_when_single = true +weight = 5 +name = "hyprland_keybinds" +placeholder = "Hyprland Keybinds" +switcher_only = true + +[builtins.applications] +weight = 5 +name = "applications" +placeholder = "Applications" +prioritize_new = true +hide_actions_with_empty_query = true +context_aware = true +refresh = true +show_sub_when_single = true +show_icon_when_single = true +show_generic = true +history = true +icon = "applications-other" + +[builtins.applications.actions] +enabled = true +hide_category = false +hide_without_query = true + +[builtins.bookmarks] +weight = 5 +placeholder = "Bookmarks" +name = "bookmarks" +icon = "bookmark" +switcher_only = true + +[[builtins.bookmarks.entries]] +label = "Walker" +url = "https://github.com/abenz1267/walker" +keywords = ["walker", "github"] + +[builtins.xdph_picker] +hidden = true +weight = 5 +placeholder = "Screen/Window Picker" +show_sub_when_single = true +name = "xdphpicker" +switcher_only = true + +[builtins.ai] +weight = 5 +placeholder = "AI" +name = "ai" +icon = "help-browser" +switcher_only = true +show_sub_when_single = true + +[[builtins.ai.anthropic.prompts]] +model = "claude-3-7-sonnet-20250219" +temperature = 1 +max_tokens = 1_000 +label = "General Assistant" +prompt = "You are a helpful general assistant. Keep your answers short and precise." + +[builtins.calc] +require_number = true +weight = 5 +name = "calc" +icon = "accessories-calculator" +placeholder = "Calculator" +min_chars = 4 + +[builtins.windows] +weight = 5 +icon = "view-restore" +name = "windows" +placeholder = "Windows" +show_icon_when_single = true + +[builtins.clipboard] +always_put_new_on_top = true +exec = "wl-copy" +weight = 5 +icon = "user-bookmarks" +name = "clipboard" +avoid_line_breaks = true +placeholder = "Clipboard" +image_height = 300 +max_entries = 10 +switcher_only = true + +[builtins.commands] +weight = 5 +icon = "utilities-terminal" +switcher_only = true +name = "commands" +placeholder = "Commands" + +[builtins.custom_commands] +weight = 5 +icon = "utilities-terminal" +name = "custom_commands" +placeholder = "Custom Commands" + +[builtins.emojis] +exec = "wl-copy" +weight = 5 +icon = "face-smile" +name = "emojis" +placeholder = "Emojis" +switcher_only = true +history = true +typeahead = true +show_unqualified = false + +[builtins.symbols] +exec = "wl-copy '%RESULT%'" +weight = 5 +name = "symbols" +placeholder = "Symbols" +switcher_only = true +history = true +typeahead = true + +[builtins.finder] +use_fd = false +fd_flags = "--ignore-vcs --type file --type directory" +cmd_alt = "xdg-open \"$(dirname \"$HOME/%RESULT%\")\"" +weight = 5 +icon = "folder" +name = "finder" +placeholder = "Finder" +switcher_only = true +ignore_gitignore = true +refresh = true +concurrency = 8 +show_icon_when_single = true +preview_images = false + +[builtins.runner] +eager_loading = true +weight = 5 +icon = "utilities-terminal" +name = "runner" +placeholder = "Runner" +typeahead = true +history = true +generic_entry = false +refresh = true +use_fd = false + +[builtins.ssh] +weight = 5 +icon = "preferences-system-network" +name = "ssh" +placeholder = "SSH" +switcher_only = true +history = true +refresh = true + +[builtins.switcher] +weight = 5 +name = "switcher" +placeholder = "Switcher" +prefix = "/" + +[builtins.websearch] +keep_selection = true +weight = 5 +icon = "applications-internet" +name = "websearch" +placeholder = "Websearch" + +[[builtins.websearch.entries]] +name = "Google" +url = "https://www.google.com/search?q=%TERM%" + +[[builtins.websearch.entries]] +name = "DuckDuckGo" +url = "https://duckduckgo.com/?q=%TERM%" +switcher_only = true + +[[builtins.websearch.entries]] +name = "Ecosia" +url = "https://www.ecosia.org/search?q=%TERM%" +switcher_only = true + +[[builtins.websearch.entries]] +name = "Yandex" +url = "https://yandex.com/search/?text=%TERM%" +switcher_only = true + +[builtins.dmenu] +hidden = true +weight = 5 +name = "dmenu" +placeholder = "Dmenu" +switcher_only = true +show_icon_when_single = true + +[builtins.translation] +delay = 1000 +weight = 5 +name = "translation" +icon = "accessories-dictionary" +placeholder = "Translation" +switcher_only = true +provider = "googlefree" diff --git a/walker/themes/default.css b/walker/themes/default.css new file mode 100644 index 0000000..7b4bdcb --- /dev/null +++ b/walker/themes/default.css @@ -0,0 +1,162 @@ +/* AUTO GENERATED. DO NOT EDIT. CHANGES WILL BE OVERWRITTEN. */ + +@define-color foreground rgba(255, 255, 255, 0.8); +@define-color background hsla(240, 12.7%, 13.9%, 0.98); +@define-color color1 hsl(172, 100%, 25.3%); +/* AUTO GENERATED. DO NOT EDIT. CHANGES WILL BE OVERWRITTEN. */ + +#window, +#box, +#aiScroll, +#aiList, +#search, +#password, +#input, +#prompt, +#clear, +#typeahead, +#list, +child, +scrollbar, +slider, +#item, +#text, +#label, +#bar, +#sub, +#activationlabel { + all: unset; +} + +#cfgerr { + background: rgba(255, 0, 0, 0.4); + margin-top: 20px; + padding: 8px; + font-size: 1.2em; +} + +#window { + color: @foreground; +} + +#box { + border-radius: 2px; + background: @background; + padding: 32px; + border: 1px solid lighter(@background); + box-shadow: + 0 19px 38px rgba(0, 0, 0, 0.3), + 0 15px 12px rgba(0, 0, 0, 0.22); +} + +#search { + box-shadow: + 0 1px 3px rgba(0, 0, 0, 0.1), + 0 1px 2px rgba(0, 0, 0, 0.22); + background: lighter(@background); + padding: 8px; +} + +#prompt { + margin-left: 4px; + margin-right: 12px; + color: @foreground; + opacity: 0.2; +} + +#clear { + color: @foreground; + opacity: 0.8; +} + +#password, +#input, +#typeahead { + border-radius: 2px; +} + +#input { + background: none; +} + +#password { +} + +#spinner { + padding: 8px; +} + +#typeahead { + color: @foreground; + opacity: 0.8; +} + +#input placeholder { + opacity: 0.5; +} + +#list { +} + +child { + padding: 8px; + border-radius: 2px; +} + +child:selected, +child:hover { + background: alpha(@color1, 0.4); +} + +#item { +} + +#icon { + margin-right: 8px; +} + +#text { +} + +#label { + font-weight: 500; +} + +#sub { + opacity: 0.5; + font-size: 0.8em; +} + +#activationlabel { +} + +#bar { +} + +.barentry { +} + +.activation #activationlabel { +} + +.activation #text, +.activation #icon, +.activation #search { + opacity: 0.5; +} + +.aiItem { + padding: 10px; + border-radius: 2px; + color: @foreground; + background: @background; +} + +.aiItem.user { + padding-left: 0; + padding-right: 0; +} + +.aiItem.assistant { + background: lighter(@background); +} diff --git a/walker/themes/default.toml b/walker/themes/default.toml new file mode 100644 index 0000000..38d1ac6 --- /dev/null +++ b/walker/themes/default.toml @@ -0,0 +1,103 @@ +# AUTO GENERATED. DO NOT EDIT. CHANGES WILL BE OVERWRITTEN. + +[ui.anchors] +bottom = true +left = true +right = true +top = true + +[ui.window] +h_align = "fill" +v_align = "fill" + +[ui.window.box] +h_align = "center" +width = 450 + +[ui.window.box.bar] +orientation = "horizontal" +position = "end" + +[ui.window.box.bar.entry] +h_align = "fill" +h_expand = true + +[ui.window.box.bar.entry.icon] +h_align = "center" +h_expand = true +pixel_size = 24 +theme = "" + +[ui.window.box.margins] +top = 200 + +[ui.window.box.ai_scroll] +name = "aiScroll" +h_align = "fill" +v_align = "fill" +max_height = 300 +min_width = 400 +height = 300 +width = 400 + +[ui.window.box.ai_scroll.margins] +top = 8 + +[ui.window.box.ai_scroll.list] +name = "aiList" +orientation = "vertical" +width = 400 +spacing = 10 + +[ui.window.box.ai_scroll.list.item] +name = "aiItem" +h_align = "fill" +v_align = "fill" +x_align = 0 +y_align = 0 +wrap = true + +[ui.window.box.scroll.list] +marker_color = "#1BFFE1" +max_height = 300 +max_width = 400 +min_width = 400 +width = 400 + +[ui.window.box.scroll.list.item.activation_label] +h_align = "fill" +v_align = "fill" +width = 20 +x_align = 0.5 +y_align = 0.5 + +[ui.window.box.scroll.list.item.icon] +pixel_size = 26 +theme = "" + +[ui.window.box.scroll.list.margins] +top = 8 + +[ui.window.box.search.prompt] +name = "prompt" +icon = "edit-find" +theme = "" +pixel_size = 18 +h_align = "center" +v_align = "center" + +[ui.window.box.search.clear] +name = "clear" +icon = "edit-clear" +theme = "" +pixel_size = 18 +h_align = "center" +v_align = "center" + +[ui.window.box.search.input] +h_align = "fill" +h_expand = true +icons = true + +[ui.window.box.search.spinner] +hide = true diff --git a/walker/themes/default_window.toml b/walker/themes/default_window.toml new file mode 100644 index 0000000..39c2729 --- /dev/null +++ b/walker/themes/default_window.toml @@ -0,0 +1,105 @@ +# AUTO GENERATED. DO NOT EDIT. CHANGES WILL BE OVERWRITTEN. + +[ui.anchors] +bottom = true +left = true +right = true +top = true + +[ui.window] +h_align = "fill" +v_align = "fill" +v_expand = true +height = 400 +width = 450 + +[ui.window.box] +h_align = "center" +width = 450 + +[ui.window.box.bar] +orientation = "horizontal" +position = "end" + +[ui.window.box.bar.entry] +h_align = "fill" +h_expand = true + +[ui.window.box.bar.entry.icon] +h_align = "center" +h_expand = true +pixel_size = 24 +theme = "" + +[ui.window.box.margins] +top = 0 + +[ui.window.box.ai_scroll] +name = "aiScroll" +h_align = "fill" +v_align = "fill" +max_height = 400 +min_width = 400 +height = 450 +width = 450 + +[ui.window.box.ai_scroll.margins] +top = 8 + +[ui.window.box.ai_scroll.list] +name = "aiList" +orientation = "vertical" +width = 450 +spacing = 10 + +[ui.window.box.ai_scroll.list.item] +name = "aiItem" +h_align = "fill" +v_align = "fill" +x_align = 0 +y_align = 0 +wrap = true + +[ui.window.box.scroll.list] +max_height = 400 +max_width = 450 +min_width = 450 +width = 450 + +[ui.window.box.scroll.list.item.activation_label] +h_align = "fill" +v_align = "fill" +width = 20 +x_align = 0.5 +y_align = 0.5 + +[ui.window.box.scroll.list.item.icon] +pixel_size = 26 +theme = "" + +[ui.window.box.scroll.list.margins] +top = 8 + +[ui.window.box.search.prompt] +name = "prompt" +icon = "edit-find" +theme = "" +pixel_size = 18 +h_align = "center" +v_align = "center" + +[ui.window.box.search.clear] +name = "clear" +icon = "edit-clear" +theme = "" +pixel_size = 18 +h_align = "center" +v_align = "center" + +[ui.window.box.search.input] +h_align = "fill" +h_expand = true +icons = true + +[ui.window.box.search.spinner] +hide = true diff --git a/waybar/config b/waybar/config new file mode 100644 index 0000000..d645838 --- /dev/null +++ b/waybar/config @@ -0,0 +1,100 @@ +{ + "layer": "top", + "position": "top", + "height": 35, + "spacing": 0, + "modules-left": ["hyprland/workspaces", "custom/media"], + "modules-center": ["hyprland/window"], + "modules-right": ["tray", "pulseaudio", "cpu", "memory", "custom/gpu-usage", "custom/brightness", "battery", "clock", "custom/power"], + "hyprland/workspaces": { + "format": "{icon}", + "on-scroll-up": "hyprctl dispatch workspace e+1", + "on-scroll-down": "hyprctl dispatch workspace e-1", + "format-icons": { + "default": "", + "active": "", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7", + "8":"8", + "9":"9", + "10":"10" + } + }, + "hyprland/window": { + "format": "{}", + "separate-outputs": true, + "rewrite": { + "(.*)Mozilla Firefox": "Firefox", + "Alacritty": "Terminal", + } + }, + "clock": { + "timezone": "Europe/Brussels", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%d-%m-%Y}" + }, + "cpu": { + "interval": 2, + "format": "CPU  {usage}%", + "tooltip": false, + "on-click": "alacritty -e htop" + }, + "memory": { + "interval": 2, + "format": "RAM  {}%", + "on-click": "alacritty -e htop" + }, + "pulseaudio": { + "format": "{icon} {volume}% {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": { + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "interval": 2, + "max-length": 50, + "return-type": "json", + "escape": true, + "exec": "playerctlwaybar", + "on-click": "playerctl play-pause", + "on-scroll-up": "playerctl previous", + "on-scroll-down": "playerctl next" + }, + "custom/gpu-usage": { + "format": "GPU  {}", + "exec": "gpu-usage-waybar", + "return-type": "json", + "on-click": "alacritty -e nvtop", + }, + "custom/brightness": { + "format": " {}", + "interval": 2, + "exec": "brightctl info", + "on-click": "brightctl run" + }, + "battery": { + "bat": "BAT1", + "interval": "60", + "states": { + "warning": 25, + "critical": 10, + }, + "format": "{icon} {capacity}%", + "format-icons": ["", "", "", "", ""], + }, + "custom/power": { + "format": "", + "on-click": "hypedown" + } +} diff --git a/waybar/macchiato.css b/waybar/macchiato.css new file mode 100644 index 0000000..12bc89c --- /dev/null +++ b/waybar/macchiato.css @@ -0,0 +1,37 @@ +/* +* +* Catppuccin Mocha palette +* Maintainer: rubyowo +* +*/ + +@define-color base #24273a; +@define-color mantle #1e2030; +@define-color crust #181926; + +@define-color text #cad3f5; +@define-color subtext0 #a5adcb; +@define-color subtext1 #b8c0e0; + +@define-color surface0 #363a4f; +@define-color surface1 #494d64; +@define-color surface2 #5b6078; + +@define-color overlay0 #6e738d; +@define-color overlay1 #8087a2; +@define-color overlay2 #939ab7; + +@define-color blue #8aadf4; +@define-color lavender #b7bdf8; +@define-color sapphire #7dc4e4; +@define-color sky #91d7e3; +@define-color teal #8bd5ca; +@define-color green #a6da95; +@define-color yellow #eed49f; +@define-color peach #f5a97f; +@define-color maroon #ee99a0; +@define-color red #ed8796; +@define-color mauve #c6a0f6; +@define-color pink #f5bde6; +@define-color flamingo #f0c6c6; +@define-color rosewater #f4dbd6; diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..fdbe96f --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,127 @@ +@import "macchiato.css"; + +* { + font-family: "Hack Nerd Font Mono"; + font-size: 14px; + font-weight: bold; + background-color: transparent; +} + +#workspaces, +#custom-gpu-usage, +#custom-media, +#cpu, +#memory, +#clock, +#pulseaudio, +#window, +#custom-brightness, +#tray, +#battery, +#custom-power{ + background-color: @mantle; + border-radius: 15px; + padding-top: 2px; + padding-bottom: 2px; + padding-left: 12px; + padding-right: 12px; + margin-top: 1px; + margin-bottom: 0px; +} + +#workspaces { + margin-left: 2px; + margin-right: 5px; +} + +#window { + margin-left: 5px; + margin-right: 5px; +} + +#window, +#custom-power{ + color: @text; +} + +window#waybar.empty #window { + background-color: transparent; +} + +#workspaces button { + padding-left: 6px; + padding-right: 6px; + margin-left: 2px; + margin-right: 2px; + color: @text; + background-color: @surface0; + border-radius: 20px; +} + +#custom-media { + color: @mauve; +} + +#custom-gpu-usage { + color: @peach; +} + +#custom-brightness { + color: @maroon; +} + +#memory { + color: @yellow; +} + +#battery { + color: @blue; +} + +#battery.discharging.warning { + color: @peach; +} + +#battery.discharging.critical { + color: @red; +} + +#battry.charging { + color: @green; +} + +#clock { + color: @flamingo; +} + +#pulseaudio { + color: @sapphire; +} + +#pulseaudio.muted { + color: @text; +} + +#cpu { + color: @pink; +} + +.modules-right > * > * { + margin-left: -4px; + margin-right: -4px; +} + + +.modules-right > *:first-child > * { + margin-left: 5px; + margin-right: -4px; +} + +.modules-right > *:last-child > * { + margin-right: 2px; + margin-left: -4px; +} + +tooltip { + background-color: black; +} diff --git a/waybar/style.css.bak b/waybar/style.css.bak new file mode 100644 index 0000000..7014425 --- /dev/null +++ b/waybar/style.css.bak @@ -0,0 +1,150 @@ +@import "macchiato.css"; +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: HackNerdFont; + font-size: 14px; +} + +window#waybar { + background-color: #1E1E2E; + 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 */ + +#workspaces button { + padding: 0px 10px; + border-radius: 5em / 5em; + background-color: @surface0; + color: @rosewater; + margin: 2px; + font-weight: bold; +} + + +#cpu, +#pulseaudio, +.media { + padding: 0 10px; + color: @mauve; + font-weight: bold; + margin: 2px; +} + +#custom-gpu-usage { + padding: 0 10px; + color: @red; + font-weight: bold; + margin: 2px; +} + +#memory { + color: @yellow; +} + +#window, +#workspaces { + margin: 0 5px; + background-color: transparent; + font-weight:bold; + border-radius: 5em / 5em; + padding: 0 10px; + color: #444854; +} + + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces button { + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +#clock { + border-top-right-radius: 5em 5em; + border-bottom-right-radius: 5em 5em; + color: @sky; +} + + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +label:focus { + background-color: #000000; +} + + + +#pulseaudio { + border-top-left-radius: 5em 5em; + border-bottom-left-radius: 5em 5em; + color: @red; +} + +#pulseaudio.muted { + background-color: #90b1b1; + color: #2a5c45; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#temperature { + color: @green; +} + +#keyboard-state { + padding: 0 0px; + min-width: 16px; + color: @mauve; +} + + +#keyboard-state > label { + padding: 0 5px; +} + +#keyboard-state > label.locked { + background: rgba(0, 0, 0, 0.2); +}