├── nvim ├── lua │ ├── plugins │ │ ├── config │ │ │ ├── rust-tools.lua │ │ │ ├── formatter │ │ │ │ ├── .cbfmt.toml │ │ │ │ ├── .vale.ini │ │ │ │ └── .markdownlint-cli2.jsonc │ │ │ ├── snippets │ │ │ │ └── python.lua │ │ │ ├── barbecue.lua │ │ │ ├── cord.lua │ │ │ ├── nvim-lint.lua │ │ │ ├── indent_blankline.lua │ │ │ ├── fidget.lua │ │ │ ├── gitsigns.lua │ │ │ ├── treesitter.lua │ │ │ ├── telescope.lua │ │ │ ├── lualine.lua │ │ │ ├── presence.lua │ │ │ ├── conform.lua │ │ │ ├── dressing.lua │ │ │ ├── cmp.lua │ │ │ ├── nvim-tree.lua │ │ │ ├── catppuccin.lua │ │ │ └── lsp.lua │ │ └── bootstrap.lua │ ├── lualine │ │ └── custom_component │ │ │ ├── winbar.lua │ │ │ └── filename.lua │ └── core │ │ ├── utils.lua │ │ ├── keymaps.lua │ │ └── options.lua ├── ftplugin │ └── zig.lua ├── init.lua ├── .luarc.json └── lazy-lock.json ├── waybar ├── sass.sh ├── config ├── scripts │ ├── notify_arch_updates │ ├── arch_updates │ ├── downloads │ ├── mpd_song_scroll │ └── mediaplayer.py ├── README.md ├── _colors.scss ├── style.css.map └── default-modules.json ├── scripts ├── disable-openrgb ├── zsh-forever.sh ├── kde-pipewire.sh ├── tmux-launch-nvim ├── toggle-night-mode ├── lock ├── restart-pipewire.sh ├── noisetorch-load.sh ├── takeshot ├── launcher_look ├── unused │ ├── setup_keys │ ├── mpc_control │ ├── bspwm-tmux-workspaces │ ├── play-song.sh │ └── play-from-playlist ├── tmux-pane-tile ├── new_tmux_session.sh ├── tmux-new-window ├── new_tmux_terminal.sh ├── open_book ├── save-full-shot ├── switch_keyboard_layout.sh ├── dmenu_run_gruv ├── fuzzel-themed ├── dmenu_gruv ├── takeshot-fast ├── tmux-reorder-windows ├── tmux-window-or-pane ├── change_brightness ├── change_audio ├── mts-show-project ├── onefetch-wrapper └── my-tmux-sessionizer ├── .gitignore ├── neofetch └── images │ └── ogata5.png ├── wob └── wob.ini ├── hypr ├── cleanup_after_start.sh ├── launch.sh ├── start.sh ├── record.sh ├── scripts │ └── vfr_on_fullscreen.py └── hyprland.conf ├── zathura ├── dark │ └── zathurarc ├── zathurarc-dark └── zathurarc ├── LICENSE ├── ghostty ├── themes │ └── catppuccin-mocha └── config ├── README.md ├── dunst └── dunstrc ├── wezterm ├── 8 └── wezterm.lua ├── starship.toml ├── .tmux.conf ├── cava └── config ├── MangoHud ├── 2 ├── wine-Fallout3.conf ├── MangoHud.conf └── overwatch-MangoHud.conf └── .zshrc /nvim/lua/plugins/config/rust-tools.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /nvim/ftplugin/zig.lua: -------------------------------------------------------------------------------- 1 | vim.g.zig_fmt_autosave = 0 2 | -------------------------------------------------------------------------------- /waybar/sass.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | sass --watch . --no-source-map 3 | -------------------------------------------------------------------------------- /scripts/disable-openrgb: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | openrgb --profile disabled 3 | -------------------------------------------------------------------------------- /scripts/zsh-forever.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | while true 4 | do 5 | zsh 6 | done 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | nvim/plugged 2 | .sass-cache 3 | /nvim/plugin/packer_compiled.lua 4 | styles/ 5 | -------------------------------------------------------------------------------- /scripts/kde-pipewire.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | pipewire & 3 | pipewire-pulse & 4 | wireplumber & 5 | -------------------------------------------------------------------------------- /scripts/tmux-launch-nvim: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | source ~/.zshrc 4 | 5 | nvim . 6 | 7 | zsh 8 | -------------------------------------------------------------------------------- /neofetch/images/ogata5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angelofallars/dotfiles/HEAD/neofetch/images/ogata5.png -------------------------------------------------------------------------------- /scripts/toggle-night-mode: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | pidof wlsunset && killall -9 wlsunset || wlsunset -l 14.6 -L 121 & 3 | -------------------------------------------------------------------------------- /nvim/lua/lualine/custom_component/winbar.lua: -------------------------------------------------------------------------------- 1 | return { vim.fn.expand("%{%v:lua.require'nvim-navic'.get_location()%}") } 2 | -------------------------------------------------------------------------------- /scripts/lock: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | swaylock --image ~/Pictures/mohammed-alaa-A_RBvupgI8o-unsplash_catppuccin-mocha_16_GaussianV1_0_20_512.png 3 | -------------------------------------------------------------------------------- /nvim/init.lua: -------------------------------------------------------------------------------- 1 | vim.loader.enable() 2 | 3 | require("core.options") 4 | require("core.keymaps") 5 | 6 | require("plugins.bootstrap") 7 | require("plugins") 8 | -------------------------------------------------------------------------------- /scripts/restart-pipewire.sh: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | killall pipewire pipewire-pulse wireplumber 3 | pipewire & disown 4 | pipewire-pulse & disown 5 | wireplumber & disown 6 | -------------------------------------------------------------------------------- /wob/wob.ini: -------------------------------------------------------------------------------- 1 | bar_color = cba6f7ff 2 | border_color = 181825ff 3 | bar_padding = 1 4 | margin = 512 5 | background_color = 11111bff 6 | timeout = 1500 7 | anchor = bottom 8 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/formatter/.cbfmt.toml: -------------------------------------------------------------------------------- 1 | [languages] 2 | rust = ["rustfmt"] 3 | go = ["gofumpt"] 4 | lua = ["stylua -s -"] 5 | python = ["black --fast -"] 6 | zig = ["zig fmt"] 7 | -------------------------------------------------------------------------------- /scripts/noisetorch-load.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | sleep 1 3 | noisetorch -i 4 | 5 | pactl set-default-source "NoiseTorch Microphone for Family 17h (Models 10h-1fh) HD Audio Controller Analog Stereo" 6 | -------------------------------------------------------------------------------- /scripts/takeshot: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [[ "$1" == "--full" ]]; then 4 | wayshot --stdout | swappy -f - 5 | exit 6 | fi 7 | 8 | wayshot --slurp "$(slurp -f '%x %y %w %h')" --stdout | swappy -f - 9 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/snippets/python.lua: -------------------------------------------------------------------------------- 1 | local ls = require("luasnip") 2 | local s = ls.snippet 3 | local t = ls.text_node 4 | 5 | return { 6 | s("bp", { 7 | t("breakpoint()"), 8 | }), 9 | } 10 | -------------------------------------------------------------------------------- /scripts/launcher_look: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | launcher_font="JetBrains Mono Nerd Font Medium 18px" 4 | launcher_bg="#202020" 5 | launcher_fg="#dfbf8e" 6 | launcher_hibg="#323232" 7 | launcher_hifg="#e78a4e" 8 | launcher_width="0.9" 9 | -------------------------------------------------------------------------------- /scripts/unused/setup_keys: -------------------------------------------------------------------------------- 1 | remove Lock = Caps_Lock 2 | remove Control = Control_L 3 | keycode 0x42 = Control_L 4 | keycode 0x25 = grave 5 | add Lock = Caps_Lock 6 | add Control = Control_L 7 | 8 | keycode 9 = Escape asciitilde Escape 9 | -------------------------------------------------------------------------------- /scripts/unused/mpc_control: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | declare -A mpc_commands=( 4 | ["stop"]="notify-send 1" 5 | ["play"]="notify-send 2" 6 | ); 7 | 8 | echo $mpc_commands 9 | -------------------------------------------------------------------------------- /scripts/tmux-pane-tile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/sh 2 | 3 | if [[ $(tmux list-panes | wc -l) -eq 1 ]]; then 4 | tmux join-pane -s ":{next}" -t +0 -hd \; select-pane -t "{right}" \; resize-pane -x "35%" 5 | else 6 | tmux break-pane -s ":+0.{right}" -d 7 | fi 8 | -------------------------------------------------------------------------------- /hypr/cleanup_after_start.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/sh 2 | 3 | hyprctl keyword windowrule "workspace unset,librewolf" 4 | hyprctl keyword windowrule "workspace unset,wezterm" 5 | hyprctl keyword windowrule "workspace unset,discord" 6 | hyprctl keyword windowrule "workspace unset,.*Spotify.*" 7 | -------------------------------------------------------------------------------- /scripts/new_tmux_session.sh: -------------------------------------------------------------------------------- 1 | 2 | first_tmux_session() { 3 | tmux \ 4 | new-session -d \ 5 | ~/.config/scripts/zsh-forever.sh ';' \ 6 | attach ';' 7 | } 8 | 9 | while true 10 | do 11 | export LANG="en_US.UTF-8" 12 | first_tmux_session 13 | done 14 | -------------------------------------------------------------------------------- /scripts/tmux-new-window: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | IFS=$'\n' arr=($(tmux list-windows -F "#I")) 4 | last_window_index=$arr[-1] 5 | pane_count=$(tmux list-panes -t ":$last_window_index" | wc -l) 6 | 7 | tmux new-window -c "#{pane_current_path}" -t ":$(("$last_window_index" + "$pane_count"))" -a 8 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/formatter/.vale.ini: -------------------------------------------------------------------------------- 1 | StylesPath = styles 2 | 3 | MinAlertLevel = suggestion 4 | Packages = Google, Readability, proselint, write-good 5 | 6 | [*] 7 | BasedOnStyles = Vale, Google 8 | 9 | Vale.Spelling = NO 10 | Google.Acronyms = NO 11 | write-good.E-Prime = NO 12 | -------------------------------------------------------------------------------- /scripts/new_tmux_terminal.sh: -------------------------------------------------------------------------------- 1 | 2 | first_tmux_session() { 3 | tmux \ 4 | new-session -d \ 5 | ~/.config/scripts/zsh-forever.sh ';' \ 6 | attach ';' 7 | } 8 | 9 | while true 10 | do 11 | export LANG="en_US.UTF-8" 12 | tmux attach || first_tmux_session 13 | done 14 | -------------------------------------------------------------------------------- /scripts/open_book: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | books=$(ls ~/Documents/Books) 4 | books_count=$(echo "$books" | wc -l) 5 | book="$(echo "$books" | rofi -dmenu -p "龎 Open Book" -i -l "$books_count" -no-show-icons)" 6 | 7 | if [ $? != 0 ] 8 | then 9 | exit 10 | fi 11 | 12 | zathura "~/Documents/Books/$book" 13 | -------------------------------------------------------------------------------- /scripts/save-full-shot: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | screenshot_name="screenshot-$(date "+%m-%d-%Y_%I-%M-%S-%p").png" 4 | image_output=$(wayshot --stdout) 5 | wayshot --stdout > ~/Pictures/Screenshots/"$screenshot_name" && notify-send "Saved screenshot to $screenshot_name" 6 | wl-copy < ~/Pictures/Screenshots/"$screenshot_name" 7 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/formatter/.markdownlint-cli2.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "default": true, 4 | "MD010": { 5 | "ignore_code_languages": [ 6 | "go" 7 | ] 8 | }, 9 | "MD033": { 10 | "allowed_elements": [ 11 | "img" 12 | ] 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /scripts/unused/bspwm-tmux-workspaces: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | display_workspace_name() { 4 | workspace=$(bspc query -D -d focused --names) 5 | 6 | echo $workspace 7 | } 8 | 9 | display_workspace_name 10 | bspc subscribe desktop node_transfer | while read -r _ ; do 11 | display_workspace_name 12 | done 13 | -------------------------------------------------------------------------------- /zathura/dark/zathurarc: -------------------------------------------------------------------------------- 1 | set font "jetbrains mono 12" 2 | set recolor 3 | set recolor-lightcolor "#282828" 4 | set recolor-darkcolor "#DFBF83" 5 | set default-bg "#212121" 6 | 7 | set inputbar-bg "#282828" 8 | set inputbar-fg "#d4be98" 9 | 10 | set guioptions none 11 | set page-padding 3 12 | set scroll-step 80 13 | -------------------------------------------------------------------------------- /zathura/zathurarc-dark: -------------------------------------------------------------------------------- 1 | set font "jetbrains mono 12" 2 | set recolor 3 | set recolor-lightcolor "#282828" 4 | set recolor-darkcolor "#DFBF83" 5 | set default-bg "#212121" 6 | 7 | set inputbar-bg "#282828" 8 | set inputbar-fg "#d4be98" 9 | 10 | set guioptions none 11 | set page-padding 3 12 | set scroll-step 80 13 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/barbecue.lua: -------------------------------------------------------------------------------- 1 | require("barbecue").setup({ 2 | attach_navic = true, -- prevent barbecue from automatically attaching nvim-navic 3 | theme = "catppuccin", -- catppuccin-latte, catppuccin-frappe, catppuccin-macchiato, catppuccin-mocha 4 | exclude_filetypes = { "netrw", "toggleterm", "gitcommit", "COMMIT_EDITMSG" }, 5 | }) 6 | -------------------------------------------------------------------------------- /scripts/switch_keyboard_layout.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | kb_variant=$(hyprctl getoption input:kb_variant -j | jq .str -r) 4 | echo $kb_variant 5 | 6 | if [[ $kb_variant != "alt-intl" ]]; then 7 | echo foo 8 | hyprctl keyword input:kb_variant alt-intl 9 | else 10 | echo bar 11 | hyprctl keyword input:kb_variant basic 12 | fi; 13 | -------------------------------------------------------------------------------- /nvim/lua/plugins/bootstrap.lua: -------------------------------------------------------------------------------- 1 | local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 2 | if not vim.loop.fs_stat(lazypath) then 3 | vim.fn.system({ 4 | "git", 5 | "clone", 6 | "--filter=blob:none", 7 | "https://github.com/folke/lazy.nvim.git", 8 | "--branch=stable", -- latest stable release 9 | lazypath, 10 | }) 11 | end 12 | vim.opt.rtp:prepend(lazypath) 13 | -------------------------------------------------------------------------------- /hypr/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cd ~ 4 | 5 | export XDG_SESSION_TYPE=wayland 6 | # export XDG_CURRENT_DESKTOP=Unity 7 | export _JAVA_AWT_WM_NONREPARENTING=1 8 | export NO_AT_BRIDGE=1 9 | export MOZ_ENABLE_WAYLAND=1 10 | 11 | export STEAM_FORCE_DESKTOPUI_SCALING=1.33 12 | export GDK_DPI_SCALE=1.33 13 | export QT_SCALE_FACTOR=1.33 14 | 15 | exec dbus-launch Hyprland > ~/hypr.log 16 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/cord.lua: -------------------------------------------------------------------------------- 1 | require("cord").setup({ 2 | editor = { 3 | tooltip = "I use Neovim (btw)", 4 | }, 5 | display = { 6 | theme = "catppuccin", 7 | flavor = "accent", 8 | swap_fields = true, 9 | }, 10 | buttons = { 11 | { 12 | label = "View Repository", 13 | url = function(opts) 14 | return opts.repo_url 15 | end, 16 | }, 17 | }, 18 | idle = { 19 | timeout = 90 * 1000, 20 | show_status = false, 21 | }, 22 | }) 23 | -------------------------------------------------------------------------------- /scripts/dmenu_run_gruv: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | source "$HOME/.config/scripts/launcher_look" 4 | 5 | bemenu-run -i -l 10 -p "Select program:" \ 6 | --fn "$launcher_font" \ 7 | --nb "$launcher_bg[FF]" --nf "${launcher_fg}[FF]" \ 8 | --tb "$launcher_bg[FF]" --tf "${launcher_hifg}[FF]" \ 9 | --fb "$launcher_bg[FF]" --ff "${launcher_fg}[FF]" \ 10 | --hb "$launcher_hibg[FF]" --hf "${launcher_hifg}[FF]" \ 11 | --sb "$launcher_bg[FF]" --sf "${launcher_fg}[FF]" \ 12 | -W "$launcher_width" 13 | -------------------------------------------------------------------------------- /hypr/start.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/sh 2 | 3 | nmcli connection up ZTE_2.4G_7mCk6c & 4 | 5 | start_pipewire () { 6 | /usr/bin/pipewire & 7 | /usr/bin/pipewire-pulse & 8 | /usr/bin/wireplumber & 9 | } 10 | 11 | start_audio () { 12 | start_pipewire 13 | sleep 2 14 | XDG_CURRENT_DESKTOP=Unity waybar & 15 | nm-applet --indicator & 16 | blueman-applet & 17 | sleep 2 18 | bluetoothctl connect 78:2B:64:38:36:17 & 19 | } 20 | 21 | dunst & 22 | 23 | start_audio & 24 | 25 | mkfifo /tmp/wob_audio ; tail -f /tmp/wob_audio | wob & 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | 15 | -------------------------------------------------------------------------------- /scripts/unused/play-song.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | album_prompt="Select Album" 4 | 5 | if [ $1 = "album" ] 6 | then 7 | album_prompt="Play Album" 8 | fi 9 | 10 | folder=$(mpc ls | dmenu_gruv "🎵 $album_prompt") 11 | if [ $? != 0 ] 12 | then 13 | exit 14 | fi 15 | 16 | if [ $1 = "album" ] 17 | then 18 | mpc clear 19 | mpc insert "$folder" 20 | mpc play 21 | exit 0 22 | fi 23 | 24 | song=$(mpc ls "$folder" | dmenu_gruv "🎵 Select Song") 25 | if [ $? != 0 ] 26 | then 27 | exit 28 | fi 29 | 30 | mpc clear 31 | mpc insert "$song" 32 | mpc play 33 | -------------------------------------------------------------------------------- /scripts/fuzzel-themed: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | fuzzel \ 3 | --font "JetBrainsMono Nerd Font:weight=medium:size=13" \ 4 | --icon-theme "Gruvbox-Material-Dark" \ 5 | --horizontal-pad 20 \ 6 | --vertical-pad 12 \ 7 | --inner-pad 10 \ 8 | --lines 12 \ 9 | --line-height "24px" \ 10 | --background "282828ff" \ 11 | --text-color "d4be98ff" \ 12 | --match-color "AB6030ff" \ 13 | --selection-color "d4be98ff" \ 14 | --selection-text-color "282828ff" \ 15 | --border-color "e78a4eff" \ 16 | --border-width 3 \ 17 | --border-radius 7 \ 18 | -------------------------------------------------------------------------------- /scripts/dmenu_gruv: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | bemenu_stdin() { 4 | source "$HOME/.config/scripts/launcher_look" 5 | 6 | bemenu -i -l 10 \ 7 | --fn "$launcher_font" \ 8 | --nb "$launcher_bg[FF]" --nf "${launcher_fg}[FF]" \ 9 | --tb "$launcher_bg[FF]" --tf "${launcher_hifg}[FF]" \ 10 | --fb "$launcher_bg[FF]" --ff "${launcher_fg}[FF]" \ 11 | --hb "$launcher_hibg[FF]" --hf "${launcher_hifg}[FF]" \ 12 | --sb "$launcher_bg[FF]" --sf "${launcher_fg}[FF]" \ 13 | -W "$launcher_width" -p "$1" 14 | } 15 | 16 | bemenu_stdin "$1" 17 | -------------------------------------------------------------------------------- /scripts/takeshot-fast: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | screenshot_name="screenshot-$(date "+%m-%d-%Y_%I-%M-%S-%p").png" 4 | 5 | notify_success () { 6 | notify-send "Saved screenshot to $screenshot_name" 7 | } 8 | 9 | if [[ "$1" == "--full" ]]; then 10 | wayshot --stdout > ~/Pictures/Screenshots/"$screenshot_name" && notify_success 11 | wl-copy < ~/Pictures/Screenshots/"$screenshot_name" 12 | exit 13 | fi 14 | 15 | wayshot --slurp "$(slurp -f '%x %y %w %h')" --stdout > ~/Pictures/Screenshots/"$screenshot_name" && notify_success 16 | wl-copy < ~/Pictures/Screenshots/"$screenshot_name" 17 | -------------------------------------------------------------------------------- /ghostty/themes/catppuccin-mocha: -------------------------------------------------------------------------------- 1 | palette = 0=#45475a 2 | palette = 1=#f38ba8 3 | palette = 2=#a6e3a1 4 | palette = 3=#f9e2af 5 | palette = 4=#89b4fa 6 | palette = 5=#f5c2e7 7 | palette = 6=#94e2d5 8 | palette = 7=#a6adc8 9 | palette = 8=#585b70 10 | palette = 9=#f38ba8 11 | palette = 10=#a6e3a1 12 | palette = 11=#f9e2af 13 | palette = 12=#89b4fa 14 | palette = 13=#f5c2e7 15 | palette = 14=#94e2d5 16 | palette = 15=#bac2de 17 | background = 1e1e2e 18 | foreground = cdd6f4 19 | cursor-color = f5e0dc 20 | cursor-text = 11111b 21 | selection-background = 353749 22 | selection-foreground = cdd6f4 23 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/nvim-lint.lua: -------------------------------------------------------------------------------- 1 | local lint = require("lint") 2 | 3 | local markdownlint = lint.linters.markdownlint 4 | markdownlint.args = { 5 | "--config", 6 | vim.env.HOME .. "/.config/nvim/lua/plugins/config/formatter/.markdownlint-cli2.jsonc", 7 | } 8 | 9 | local vale = lint.linters.vale 10 | 11 | lint.linters_by_ft = { 12 | markdown = { "markdownlint" }, 13 | zsh = { "zsh" }, 14 | } 15 | 16 | vim.api.nvim_create_autocmd({ "BufWritePost", "BufEnter", "InsertLeave" }, { 17 | group = vim.api.nvim_create_augroup("lint", { clear = true }), 18 | callback = function() 19 | lint.try_lint() 20 | end, 21 | }) 22 | -------------------------------------------------------------------------------- /scripts/tmux-reorder-windows: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | if [[ "$1" == "kill" ]]; then 4 | tmux kill-window 5 | fi 6 | 7 | IFS=$'\n' arr=($(tmux list-windows -F "#I")) 8 | 9 | new_index=1 10 | for ((i = 1; i <= $#arr; i++)); do 11 | pane_count=$(tmux list-panes -t ":$arr[i]" | wc -l) 12 | 13 | current_window_index=$(tmux display-message -p '#I') 14 | 15 | if [[ $current_window_index -eq $arr[i] ]]; then 16 | tmux move-window -s ":$arr[i]" -t "$new_index" 17 | else 18 | tmux move-window -d -s ":$arr[i]" -t "$new_index" 19 | fi 20 | 21 | new_index=$(("$new_index" + "$pane_count")) 22 | done 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

⛩️ neovim - catppuccin - hyprland 🍙

2 | 3 |

4 | My desktop setup using Catppuccin with Waybar on top and a Wezterm terminal on the bottom, running Wezterm. 5 |
6 | My dotfiles on Artix Linux, using the Catppuccin Mocha theme. 7 |

8 | 9 | ## 🍵 Desktop 10 | 11 | - **DE** - Hyprland 12 | - **Status bar** - Waybar 13 | - **Launcher** - Rofi 14 | 15 | ## 🍣 Dev Setup 16 | 17 | - **Editor** - Neovim (btw) 18 | - **Terminal** - Wezterm 19 | - **Multiplexer** - tmux 20 | - **Shell** - Zsh 21 | -------------------------------------------------------------------------------- /nvim/lua/core/utils.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | M.map = function(mode, shortcut, command, opts) 4 | vim.keymap.set(mode, shortcut, command, opts) 5 | end 6 | 7 | M.nmap = function(shortcut, command, opts) 8 | M.map("n", shortcut, command, opts) 9 | end 10 | 11 | M.imap = function(shortcut, command, opts) 12 | M.map("i", shortcut, command, opts) 13 | end 14 | 15 | M.vmap = function(shortcut, command, opts) 16 | M.map("v", shortcut, command, opts) 17 | end 18 | 19 | M.tmap = function(shortcut, command, opts) 20 | M.map("t", shortcut, command, opts) 21 | end 22 | 23 | M.create_command = function(name, command) 24 | vim.api.nvim_create_user_command(name, command, { nargs = "*" }) 25 | end 26 | 27 | return M 28 | -------------------------------------------------------------------------------- /scripts/tmux-window-or-pane: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [[ "$1" == "right" ]]; then 4 | direction="right" 5 | elif [[ "$1" == "left" ]]; then 6 | direction="left" 7 | else 8 | exit 1 9 | fi 10 | 11 | if [[ "$direction" == "right" ]]; then 12 | if [[ $(tmux list-panes -f "#{pane_at_right}" | grep "(active)") ]]; then 13 | tmux next-window 14 | else 15 | tmux select-pane -t ".{right}" 16 | fi 17 | 18 | exit 0 19 | fi 20 | 21 | if [[ "$direction" == "left" ]]; then 22 | if [[ $(tmux list-panes -f "#{pane_at_left}" | grep "(active)") ]]; then 23 | tmux previous-window 24 | else 25 | tmux select-pane -t ".{left}" 26 | fi 27 | 28 | exit 0 29 | fi 30 | -------------------------------------------------------------------------------- /hypr/record.sh: -------------------------------------------------------------------------------- 1 | #/usr/bin/env sh 2 | 3 | # pidof wl-screenrec && killall wl-screenrec && notify-send Finished recording || wl-screenrec -g "$(slurp)" -f "video-$(date +%F_%R).mp4" & notify-send Started recording || notify-send wl-screenrec failed 4 | if pidof wl-screenrec ; then 5 | killall -2 wl-screenrec 6 | notify-send "Finished recording" 7 | exit 0 8 | fi 9 | 10 | out="$(slurp)" 11 | 12 | if [ $? != 0 ]; then 13 | exit 14 | fi 15 | 16 | filename="$HOME/Videos/screenrec/video-$(date +%F_%R).mp4" 17 | 18 | wl-screenrec -g "$out" -f "$filename" --audio --audio-device bluez_output.78_2B_64_38_36_17.1.monitor & 19 | 20 | if [ $? != 0 ]; then 21 | notify-send "Error starting recording" 22 | exit 1 23 | fi 24 | 25 | exit 0 26 | -------------------------------------------------------------------------------- /waybar/config: -------------------------------------------------------------------------------- 1 | // Angelo's Waybar config 2 | // https://github.com/angelofallars/dotfiles 3 | [ 4 | { 5 | "layer": "bottom", 6 | "output": "DP-1", 7 | // "margin-right": 80, 8 | "height": 43, 9 | "spacing": 0, 10 | "include": [ 11 | "~/.config/waybar/default-modules.json", 12 | ], 13 | 14 | "reload_style_on_change": true, 15 | 16 | "modules-left": [ 17 | "custom/artix", 18 | "hyprland/workspaces", 19 | "pulseaudio", 20 | "custom/pacman", 21 | "disk", 22 | "group/cpu-memory" 23 | ], 24 | "modules-center": [ 25 | "hyprland/window" 26 | ], 27 | "modules-right": [ 28 | "cava", 29 | "tray", 30 | "clock" 31 | ] 32 | } 33 | ] 34 | -------------------------------------------------------------------------------- /scripts/change_brightness: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | step="5" 4 | 5 | notify () { 6 | brightness="$2" 7 | 8 | if [[ "$brightness" -gt "80" ]]; then 9 | icon="🌕" 10 | elif [[ "$brightness" -gt "60" ]]; then 11 | icon="🌖" 12 | elif [[ "$brightness" -gt "40" ]]; then 13 | icon="🌗" 14 | elif [[ "$brightness" -gt "20" ]]; then 15 | icon="🌘" 16 | else 17 | icon="🌑" 18 | fi 19 | 20 | dunstify -h string:x-dunst-stack-tag:brightness -h int:value:"$brightness" \ 21 | --appname=mediactl "$icon $brightness%" 22 | } 23 | 24 | if [[ "$1" = "--inc" ]]; then 25 | xbacklight -inc "$step" -time 0 26 | notify -inc "$(xbacklight -get)" 27 | 28 | elif [[ "$1" == "--dec" ]]; then 29 | xbacklight -dec "$step" -time 0 30 | notify -dec "$(xbacklight -get)" 31 | 32 | else 33 | echo "usage: change_brightness [--inc]/[--dec]" 34 | exit 1 35 | fi 36 | -------------------------------------------------------------------------------- /scripts/unused/play-from-playlist: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | playlist=$(mpc playlist) 4 | lines=$(mpc playlist | wc -l) 5 | dmenu_in="" 6 | 7 | # Construct a playlist picker with numbers for each song name 8 | for ((i = 1; i < $lines + 1; i++)); do 9 | 10 | # Add extra space to ones-digit numbers for better formatting 11 | if [ $i -lt 10 ] 12 | then 13 | dmenu_in="${dmenu_in}${i} - " 14 | else 15 | dmenu_in="${dmenu_in}${i} - " 16 | fi 17 | 18 | song_name=$(echo $playlist | sed "${i}q;d") 19 | dmenu_in="${dmenu_in}${song_name}" 20 | 21 | # Don't add a newline on the last line 22 | if [ $i -ne $lines ] 23 | then 24 | dmenu_in="${dmenu_in}\n" 25 | fi 26 | done 27 | 28 | song_to_play=$(echo $dmenu_in | dmenu_gruv "⏯ Playlist") 29 | if [ $? != 0 ] 30 | then 31 | exit 32 | fi 33 | 34 | line_number=$(echo $song_to_play | grep -oP '^\d+') 35 | 36 | mpc play $line_number 37 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/indent_blankline.lua: -------------------------------------------------------------------------------- 1 | -- vim.opt.list = true 2 | -- vim.opt.listchars:append("space: ") 3 | -- vim.opt.listchars:append("tab:\\x20\\x20") 4 | -- vim.opt.listchars:append("eol:↴") 5 | 6 | require("ibl").setup({ 7 | scope = { 8 | enabled = true, 9 | show_start = false, 10 | show_end = false, 11 | priority = 512, 12 | }, 13 | indent = { 14 | tab_char = "▏", 15 | char = "▏", 16 | }, 17 | whitespace = { 18 | remove_blankline_trail = true, 19 | }, 20 | exclude = { 21 | buftypes = { 22 | "help", 23 | "terminal", 24 | "packer", 25 | "lspinfo", 26 | "TelescopePrompt", 27 | "TelescopeResults", 28 | "lsp-installer", 29 | "NvimTree", 30 | "gitcommit", 31 | }, 32 | }, 33 | }) 34 | 35 | -- local hooks = require("ibl.hooks") 36 | -- hooks.register(hooks.type.WHITESPACE, hooks.builtin.hide_first_tab_indent_level) 37 | -- hooks.register(hooks.type.WHITESPACE, hooks.builtin.hide_first_space_indent_level) 38 | -------------------------------------------------------------------------------- /scripts/change_audio: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | step="5" 4 | 5 | notify () { 6 | volume="$(pamixer --get-volume)" 7 | muted="$(pamixer --get-mute)" 8 | 9 | if [[ "$volume" -ge "80" ]]; then 10 | icon="🔊" 11 | elif [[ "$volume" -ge "40" ]]; then 12 | icon="🔉" 13 | else 14 | icon="🔈" 15 | fi 16 | 17 | if [[ "$muted" == "false" ]]; then 18 | volume="$(pamixer --get-volume)" 19 | else 20 | icon="🔇" 21 | volume="0" 22 | fi 23 | 24 | dunstify -h string:x-dunst-stack-tag:audio -h int:value:"$volume" \ 25 | --appname=mediactl "$icon $(pamixer --get-volume-human)" 26 | } 27 | 28 | if [[ "$1" = "--inc" ]]; then 29 | pamixer -i "$step" & 30 | pamixer -u & 31 | notify & 32 | 33 | elif [[ "$1" == "--dec" ]]; then 34 | pamixer -d "$step" & 35 | 36 | if [[ "$(expr "$(pamixer --get-volume)" - "10")" -le "0" ]]; then 37 | pamixer -m & 38 | fi 39 | 40 | notify & 41 | 42 | elif [[ "$1" == "--mute" ]]; then 43 | pamixer -t & 44 | notify & 45 | 46 | else 47 | echo "usage: change_audio [--inc]/[--dec]" 48 | exit 1 49 | fi 50 | -------------------------------------------------------------------------------- /scripts/mts-show-project: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | project="$1" 3 | 4 | project=$(\ 5 | echo "$project" |\ 6 | sed --regexp-extended "s/^.{1,2} (\S+)\//projects\/\1\//g" |\ 7 | \ 8 | sed --regexp-extended "s/^🟢 /projects\/personal\//g" |\ 9 | sed --regexp-extended "s/^.{1,2} forks/forks/g" |\ 10 | sed --regexp-extended "s/^.{1,2} study/study/g" |\ 11 | tee \ 12 | ) 13 | 14 | list_files() { 15 | export EXA_COLORS="di=33" 16 | /usr/bin/eza -1 --icons -T -L 3 --git-ignore \ 17 | --group-directories-first -l --no-permissions \ 18 | --no-user --no-filesize --changed --no-time $HOME/"$project" 19 | } 20 | 21 | print_repo_data() { 22 | clear 23 | projectname=$(basename "$project") 24 | commitcount=$(git --git-dir=$gitdir \ 25 | rev-list --all --count) 26 | 27 | printf "\e[0;93m󰆥\e[1;34m $projectname \e[0m\n" 28 | 29 | printf "\e[0;93m\e[0;34m branch\e[0m " 30 | 31 | git --git-dir=$gitdir \ 32 | rev-parse --abbrev-ref HEAD 33 | 34 | printf "\e[0;93m󰆥\e[0;34m commits\e[0m " 35 | echo $commitcount 36 | 37 | echo 38 | 39 | list_files 40 | } 41 | 42 | 43 | gitdir="$(echo "$HOME/")$(echo "$project")$(echo "/.git")" 44 | 45 | if [ -d $gitdir ]; then 46 | onefetch_plain_output=$(\ 47 | onefetch\ 48 | --no-art\ 49 | --no-title\ 50 | ~/"$project"\ 51 | --true-color never\ 52 | ||\ 53 | print_repo_data\ 54 | ) 55 | echo "$onefetch_plain_output" 56 | else 57 | list_files 58 | fi 59 | -------------------------------------------------------------------------------- /waybar/scripts/notify_arch_updates: -------------------------------------------------------------------------------- 1 | #!/bin/python3 2 | """notify_arch_updates: display a notification about packages 3 | to update in Arch Linux 4 | 5 | Requirements: `pacman-contrib` package 6 | > sudo pacman -Syu pacman-contrib 7 | 8 | You also need `arch_update` script running in your bar 9 | or in other programs periodically. 10 | """ 11 | 12 | from os import path 13 | from subprocess import call 14 | 15 | 16 | def main() -> int: 17 | file_name = "/tmp/arch_updates" 18 | 19 | if not path.exists(file_name): 20 | return 1 21 | 22 | file = open(file_name, "r") 23 | lines = file.read().split("\n") 24 | 25 | pkgs = [line for line in lines if line != ""] 26 | pkg_count = len(pkgs) 27 | 28 | pkg_format: list[dict] = [ 29 | { 30 | "name": pkg.split(" ")[0], 31 | "old_version": pkg.split(" ")[1], 32 | "new_version": pkg.split(" ")[3], 33 | } 34 | for pkg in pkgs] 35 | 36 | formatted_str = "" 37 | for pkg in pkg_format: 38 | formatted_str += f"{pkg['name']}\n" 39 | formatted_str += f" {pkg['old_version']} -> {pkg['new_version']}\n" 40 | 41 | if pkg_count != 0: 42 | pkg_str = f"{formatted_str}\n" 43 | else: 44 | pkg_str = "Everything up to date.\nEnjoy your day! 😊" 45 | 46 | call("dunstify --hints string:x-dunst-stack-tag:arch_updates " 47 | f'"packages 📦 ({pkg_count})" ' 48 | f'"{pkg_str}"', shell=True) 49 | 50 | return 0 51 | 52 | 53 | if __name__ == "__main__": 54 | exit(main()) 55 | -------------------------------------------------------------------------------- /dunst/dunstrc: -------------------------------------------------------------------------------- 1 | [global] 2 | monitor = 0 3 | follow = mouse 4 | 5 | width = 360 6 | height = 650 7 | 8 | offset = 18x18 9 | indicate_hidden = yes 10 | 11 | shrink = yes 12 | 13 | separator_height = 2 14 | separator_color = auto 15 | 16 | padding = 12 17 | horizontal_padding = 12 18 | 19 | frame_width = 2 20 | 21 | font = JetBrains Mono Nerd Font Normal 13 22 | 23 | sort = no 24 | idle_threshold = 120 25 | 26 | line_height = 4 27 | markup = full 28 | format = "%s\n%b" 29 | alignment = left 30 | vertical_alignment = top 31 | show_age_threshold = 60 32 | word_wrap = yes 33 | ignore_newline = no 34 | stack_duplicates = false 35 | hide_duplicate_count = yes 36 | show_indicators = yes 37 | ellipsize = middle 38 | icon_position = right 39 | max_icon_size = 80 40 | sticky_history = yes 41 | history_length = 20 42 | browser = x-www-browser -new-tab 43 | always_run_script = true 44 | title = Dunst 45 | class = Dunst 46 | progress_bar = true 47 | progress_bar_height = 10 48 | corner_radius = 3 49 | 50 | [shortcuts] 51 | close = ctrl+shift+space 52 | close_all = ctrl+shift+space 53 | history = ctrl+grave 54 | context = ctrl+shift+period 55 | 56 | [urgency_low] 57 | timeout = 8 58 | background = "#181825" 59 | foreground = "#cdd6f4" 60 | frame_color = "#a6e3a1" 61 | highlight = "#a6e3a1" 62 | 63 | [urgency_normal] 64 | timeout = 8 65 | background = "#181825" 66 | foreground = "#cdd6f4" 67 | frame_color = "#a6e3a1" 68 | highlight = "#a6e3a1" 69 | 70 | [urgency_critical] 71 | timeout = 0 72 | background = "#181825" 73 | foreground = "#f38ba8" 74 | frame_color = "#a6e3a1" 75 | highlight = "#a6e3a1" 76 | 77 | [media_controls] 78 | appname = "mediactl" 79 | timeout = 2 80 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/fidget.lua: -------------------------------------------------------------------------------- 1 | require("fidget").setup({ 2 | text = { 3 | spinner = "bouncing_ball", -- animation shown when tasks are ongoing 4 | done = "✔", -- character shown when all tasks are complete 5 | commenced = "Started", -- message shown when task starts 6 | completed = "Completed", -- message shown when task completes 7 | }, 8 | align = { 9 | bottom = true, -- align fidgets along bottom edge of buffer 10 | right = true, -- align fidgets along right edge of buffer 11 | }, 12 | timer = { 13 | spinner_rate = 125, -- frame rate of spinner animation, in ms 14 | fidget_decay = 2000, -- how long to keep around empty fidget, in ms 15 | task_decay = 1000, -- how long to keep around completed task, in ms 16 | }, 17 | window = { 18 | relative = "editor", -- where to anchor, either "win" or "editor" 19 | zindex = nil, -- the zindex value for the window 20 | }, 21 | fmt = { 22 | leftpad = true, -- right-justify text in fidget box 23 | stack_upwards = true, -- list of tasks grows upwards 24 | max_width = 0, -- maximum width of the fidget box 25 | -- function to format fidget title 26 | fidget = function(fidget_name, spinner) 27 | return string.format("%s %s", spinner, fidget_name) 28 | end, 29 | -- function to format each task line 30 | task = function(task_name, message, percentage) 31 | return string.format( 32 | "%s%s [%s]", 33 | message, 34 | percentage and string.format(" (%s%%)", percentage) or "", 35 | task_name 36 | ) 37 | end, 38 | }, 39 | debug = { 40 | logging = false, -- whether to enable logging, for debugging 41 | strict = false, -- whether to interpret LSP strictly 42 | }, 43 | }) 44 | -------------------------------------------------------------------------------- /waybar/scripts/arch_updates: -------------------------------------------------------------------------------- 1 | #!/bin/python3 2 | """arch_updates: print the number of updates in Arch-based systems 3 | 4 | Requirements: `pacman-contrib` package 5 | > sudo pacman -Syu pacman-contrib 6 | """ 7 | 8 | import subprocess 9 | from os import path 10 | from time import time 11 | 12 | TEMP_FILE = "/tmp/arch_updates" 13 | 14 | 15 | def format_output(pkg_count: int) -> str: 16 | if pkg_count > 1: 17 | word = "updates" 18 | elif pkg_count == 1: 19 | word = "update" 20 | else: 21 | return "up-to-date" 22 | 23 | return f"{pkg_count} {word}" 24 | 25 | 26 | def main() -> int: 27 | # Print cached value first 28 | if path.exists(TEMP_FILE): 29 | with open(TEMP_FILE, "r") as file: 30 | pkg_count = file.read().count("\n") 31 | print(format_output(pkg_count), flush=True) 32 | 33 | modification_date = path.getmtime(TEMP_FILE) 34 | current_time = time() 35 | 36 | # Check if it's still too early to query the servers 37 | if current_time < modification_date + 60: 38 | return 0 39 | 40 | proc = subprocess.run("checkupdates", capture_output=True) 41 | 42 | # 2 is the return code for `checkupdates` if everything is up-to-date 43 | if proc.returncode not in [0, 2]: 44 | return 1 45 | 46 | output = proc.stdout.decode("utf_8") 47 | 48 | # Write output to tmp file 49 | with open(TEMP_FILE, "w") as file: 50 | file.write(output) 51 | 52 | # Packages to update are separated by newlines 53 | pkg_count = output.count("\n") 54 | 55 | print(format_output(pkg_count), flush=True) 56 | 57 | return 0 58 | 59 | 60 | if __name__ == "__main__": 61 | exit(main()) 62 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/gitsigns.lua: -------------------------------------------------------------------------------- 1 | require("gitsigns").setup({ 2 | signcolumn = true, 3 | numhl = false, 4 | 5 | on_attach = function(bufnr) 6 | local gs = package.loaded.gitsigns 7 | 8 | local function map(mode, l, r, opts) 9 | opts = opts or {} 10 | opts.buffer = bufnr 11 | vim.keymap.set(mode, l, r, opts) 12 | end 13 | 14 | -- Navigation 15 | map("n", "]c", function() 16 | if vim.wo.diff then 17 | return "]c" 18 | end 19 | vim.schedule(function() 20 | gs.next_hunk() 21 | end) 22 | return "" 23 | end, { expr = true }) 24 | 25 | map("n", "[c", function() 26 | if vim.wo.diff then 27 | return "[c" 28 | end 29 | vim.schedule(function() 30 | gs.prev_hunk() 31 | end) 32 | return "" 33 | end, { expr = true }) 34 | 35 | -- Actions 36 | map({ "n", "v" }, "hs", ":Gitsigns stage_hunk") 37 | map({ "n", "v" }, "hu", ":Gitsigns reset_hunk") 38 | map("n", "hS", gs.stage_buffer) 39 | map("n", "hr", gs.undo_stage_hunk) 40 | map("n", "hU", gs.reset_buffer) 41 | map("n", "hp", gs.preview_hunk) 42 | map("n", "hb", function() 43 | gs.blame_line({ full = true }) 44 | end) 45 | map("n", "tb", gs.toggle_current_line_blame) 46 | map("n", "hd", gs.diffthis) 47 | map("n", "hD", function() 48 | gs.diffthis("~") 49 | end) 50 | map("n", "td", gs.toggle_deleted) 51 | 52 | -- Text object 53 | map({ "o", "x" }, "ih", ":Gitsigns select_hunk") 54 | end, 55 | preview_config = { 56 | -- Options passed to nvim_open_win 57 | border = "solid", 58 | style = "minimal", 59 | relative = "cursor", 60 | row = 0, 61 | col = 1, 62 | }, 63 | }) 64 | -------------------------------------------------------------------------------- /wezterm/8: -------------------------------------------------------------------------------- 1 | local wezterm = require 'wezterm'; 2 | 3 | return { 4 | 5 | color_scheme = "gruvbox_material_dark_medium", 6 | color_schemes = { 7 | ["gruvbox_material_dark_medium"] = { 8 | foreground = "#dfbf8e", 9 | background = "#282828", 10 | cursor_bg = "#dfbf8e", 11 | cursor_border = "#dfbf8e", 12 | cursor_fg = "#282828", 13 | selection_bg = "#dfbf8e" , 14 | selection_fg = "#45403d", 15 | 16 | ansi = {"#282828","#ea6962","#a9b665","#d8a657", "#7daea3","#d3869b", "#89b482","#dfbf8e"}, 17 | brights = {"#eddeb5","#ea6962","#a9b665","#d8a657", "#7daea3","#d3869b", "#89b482","#dfbf8e"}, 18 | }, 19 | }, 20 | 21 | window_background_opacity = 0.75, 22 | 23 | font = wezterm.font_with_fallback({ 24 | {family="JetBrains Mono", weight="Medium"}, 25 | "Twemoji", 26 | }), 27 | 28 | font_size = 11.9, 29 | 30 | window_padding = { 31 | left = 8, 32 | right = 8, 33 | top = 6, 34 | bottom = 6, 35 | }, 36 | 37 | enable_tab_bar = false, 38 | 39 | warn_about_missing_glyphs = false, 40 | 41 | -- window_background_gradient = { 42 | -- orientation = "Vertical", 43 | -- 44 | -- colors = { 45 | -- "#33302F", 46 | -- "#262626", 47 | -- "#1B1E1F", 48 | -- }, 49 | -- 50 | -- interpolation = "Linear", 51 | -- blend = "Rgb", 52 | -- noise = 56, 53 | -- }, 54 | 55 | keys = { 56 | -- Turn off the default CMD-m Hide action, allowing CMD-m to 57 | -- be potentially recognized and handled by the tab 58 | { key = 'w', mods = 'SUPER', action = 'DisableDefaultAssignment' }, 59 | }, 60 | } 61 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/treesitter.lua: -------------------------------------------------------------------------------- 1 | require("nvim-treesitter.configs").setup({ 2 | -- A list of parser names, or "all" 3 | ensure_installed = { 4 | "c", 5 | "rust", 6 | "javascript", 7 | "typescript", 8 | "css", 9 | "scss", 10 | "python", 11 | "bash", 12 | "lua", 13 | "go", 14 | "gomod", 15 | "gosum", 16 | "gowork", 17 | "vim", 18 | "cpp", 19 | "http", 20 | }, 21 | 22 | compilers = { "clang" }, 23 | 24 | -- Install parsers synchronously (only applied to `ensure_installed`) 25 | sync_install = false, 26 | 27 | highlight = { 28 | -- `false` will disable the whole extension 29 | enable = true, 30 | 31 | -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to 32 | -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is 33 | -- the name of the parser) 34 | -- list of language that will be disabled 35 | 36 | -- Setting this to true will run `:h syntax` and tree-sitter at the same time. 37 | -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). 38 | -- Using this option may slow down your editor, and you may see some duplicate highlights. 39 | -- Instead of true it can also be a list of languages 40 | additional_vim_regex_highlighting = false, 41 | }, 42 | 43 | indent = { 44 | enable = true, 45 | }, 46 | 47 | rainbow = { 48 | enable = true, 49 | -- disable = { "jsx", "cpp" }, list of languages you want to disable the plugin for 50 | extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean 51 | max_file_lines = nil, -- Do not enable for files with more than n lines, int 52 | -- colors = {}, -- table of hex strings 53 | -- termcolors = {} -- table of colour name strings 54 | }, 55 | }) 56 | -------------------------------------------------------------------------------- /waybar/README.md: -------------------------------------------------------------------------------- 1 | ## Waybar 2 | 3 | ![Red waybar](https://user-images.githubusercontent.com/39676098/153702595-1b836a1c-1d31-44c1-bc3f-cf94d4cb28ac.png) 4 | 5 | My personal Waybar config. 6 | 7 | Instead of directly editing the `.css` file, I recommend using Sass and 8 | edit the [`style.scss`](./_style.scss) and `_colors.scss` files instead. This allows you for example, to 9 | change the entire color of the bar with just one variable change. 10 | 11 | [Install the latest version of Sass](https://github.com/sass/dart-sass/releases) 12 | and run this in the `waybar/` directory so that the CSS file will be automatically updated as you edit the Sass files: 13 | 14 | ```sass --watch . --no-source-map``` 15 | 16 | By just editing the `$bg` value in [`_colors.scss`](./_colors.scss), you can get an entirely different color: 17 | 18 | ![Orange waybar](https://user-images.githubusercontent.com/39676098/153702593-fc17a027-25c4-4ba3-989b-f43a71fc2f74.png) 19 | ![Green waybar](https://user-images.githubusercontent.com/39676098/153702590-aa256ff6-7fa3-445e-b1f9-4dc851399659.png) 20 | ![Blue waybar](https://user-images.githubusercontent.com/39676098/153702589-854d4c15-348a-49cb-816c-dc9192f21915.png) 21 | ![Purple waybar](https://user-images.githubusercontent.com/39676098/153702586-c74292d9-0c78-4396-8038-2b7f77bab677.png) 22 | 23 | 24 | ## Fonts 25 | 26 | If the River workspace fonts don't show up, you need to download the specific Japanese font, Han Sans JP. 27 | The command for this on Arch/Arch-based systems should be `sudo pacman -S adobe-source-han-sans-jp-fonts` . 28 | 29 | ## Dependencies 30 | 31 | For the GitHub download stats counter to work, you need to have Python 3 installed and also the Requests library. 32 | Install it with `pip install requests`. You also need mpd installed AND running for the modules at the center. 33 | -------------------------------------------------------------------------------- /zathura/zathurarc: -------------------------------------------------------------------------------- 1 | set font "jetbrains mono 12" 2 | # set recolor 3 | # set recolor-lightcolor "#F9F8EE" 4 | # set recolor-darkcolor "#2F2824" 5 | # # set default-bg "#D7D2C1" 6 | # set default-bg "#CFCFCF" 7 | # 8 | # set inputbar-bg "#282828" 9 | # set inputbar-fg "#d4be98" 10 | 11 | set guioptions none 12 | set page-padding 3 13 | set scroll-step 80 14 | 15 | set selection-clipboard clipboard 16 | 17 | set default-fg "#CDD6F4" 18 | set default-bg "#1E1E2E" 19 | 20 | set completion-bg "#313244" 21 | set completion-fg "#CDD6F4" 22 | set completion-highlight-bg "#575268" 23 | set completion-highlight-fg "#CDD6F4" 24 | set completion-group-bg "#313244" 25 | set completion-group-fg "#89B4FA" 26 | 27 | set statusbar-fg "#CDD6F4" 28 | set statusbar-bg "#313244" 29 | 30 | set notification-bg "#313244" 31 | set notification-fg "#CDD6F4" 32 | set notification-error-bg "#313244" 33 | set notification-error-fg "#F38BA8" 34 | set notification-warning-bg "#313244" 35 | set notification-warning-fg "#FAE3B0" 36 | 37 | set inputbar-fg "#CDD6F4" 38 | set inputbar-bg "#313244" 39 | 40 | set recolor-lightcolor "#1E1E2E" 41 | set recolor-darkcolor "#CDD6F4" 42 | 43 | set index-fg "#CDD6F4" 44 | set index-bg "#1E1E2E" 45 | set index-active-fg "#CDD6F4" 46 | set index-active-bg "#313244" 47 | 48 | set render-loading-bg "#1E1E2E" 49 | set render-loading-fg "#CDD6F4" 50 | 51 | set highlight-color "#575268" 52 | set highlight-fg "#F5C2E7" 53 | set highlight-active-color "#F5C2E7" 54 | 55 | set recolor 56 | 57 | map s scroll down 58 | map t scroll up 59 | map n scroll down 60 | map e scroll up 61 | map i scroll right 62 | map m scroll left 63 | set recolor-keephue 64 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/telescope.lua: -------------------------------------------------------------------------------- 1 | require("telescope").setup({ 2 | defaults = { 3 | -- Default configuration for telescope goes here: 4 | -- config_key = value, 5 | mappings = { 6 | i = { 7 | -- map actions.which_key to (default: ) 8 | -- actions.which_key shows the mappings for your picker, 9 | -- e.g. git_{create, delete, ...}_branch for the git_branches picker 10 | [""] = require("telescope.actions").select_default, 11 | }, 12 | }, 13 | 14 | results_title = "", 15 | prompt_prefix = "  ", 16 | selection_caret = " ", 17 | entry_prefix = " ", 18 | winblend = 4, 19 | 20 | sorting_strategy = "ascending", 21 | layout_config = { 22 | horizontal = { 23 | prompt_position = "top", 24 | preview_width = 0.40, 25 | results_width = 0.60, 26 | }, 27 | width = 0.95, 28 | height = 0.80, 29 | preview_cutoff = 120, 30 | }, 31 | 32 | borderchars = { " ", " ", " ", " ", " ", " ", " ", " " }, 33 | }, 34 | 35 | pickers = { 36 | -- Default configuration for builtin pickers goes here: 37 | -- picker_name = { 38 | -- picker_config_key = value, 39 | -- ... 40 | -- } 41 | -- Now the picker_config_key will be applied every time you call this 42 | -- builtin picker 43 | }, 44 | 45 | extensions = { 46 | -- Your extension configuration goes here: 47 | -- extension_name = { 48 | -- extension_config_key = value, 49 | -- } 50 | -- please take a look at the readme of the extension you want to configure 51 | fzf = { 52 | fuzzy = true, -- false will only do exact matching 53 | override_generic_sorter = true, -- override the generic sorter 54 | override_file_sorter = true, -- override the file sorter 55 | case_mode = "smart_case", -- or "ignore_case" or "respect_case" 56 | -- the default case_mode is "smart_case" 57 | }, 58 | }, 59 | }) 60 | 61 | require("telescope").load_extension("fzf") 62 | -------------------------------------------------------------------------------- /waybar/_colors.scss: -------------------------------------------------------------------------------- 1 | // Gruvbox Material theme 2 | 3 | $rosewater: #f5e0dc; 4 | $flamingo: #f2cdcd; 5 | $pink: #f5c2e7; 6 | $mauve: #cba6f7; 7 | $red: #f38ba8; 8 | $maroon: #eba0ac; 9 | $peach: #fab387; 10 | $yellow: #f9e2af; 11 | $green: #a6e3a1; 12 | $teal: #94e2d5; 13 | $sky: #89dceb; 14 | $sapphire: #74c7ec; 15 | $blue: #89b4fa; 16 | $lavender: #b4befe; 17 | 18 | 19 | $subtext1: #bac2de; 20 | $subtext0: #a6adc8; 21 | $overlay2: #9399b2; 22 | $overlay1: #7f849c; 23 | $overlay0: #6c7086; 24 | $surface2: #585b70; 25 | $surface1: #45475a; 26 | $surface0: #313244; 27 | $base: #1e1e2e; 28 | $mantle: #181825; 29 | $crust: #11111b; 30 | 31 | $bg0: #1e1e2e; 32 | $bg: #1e1e2e; 33 | $bg1: #313244; 34 | $white-text: #cdd6f4; 35 | $fg: $white-text; 36 | 37 | $fg-opposite: scale-color($fg, $lightness: -15%, $saturation: -25%); 38 | 39 | // Box shadow of modules automatically calculated from the background color 40 | $shadow: scale-color($bg, $lightness: -40%, $saturation: -28%); 41 | 42 | $fg-alt: $shadow; 43 | @if lightness($bg) < 50% { 44 | $fg-alt: scale-color($bg, $lightness: 27%); 45 | } 46 | 47 | // Accent color used by the River active tags 48 | $accent-color: $fg; 49 | 50 | // Foreground + accent color for modules w/o backgrounds 51 | $fg-no-bg: $fg; 52 | $accent-color-no-bg: $shadow; 53 | 54 | // Set this to true or false depending if the mpd module is readable 55 | $dark-theme: true; 56 | 57 | @if $dark-theme { 58 | $fg-no-bg: $fg-opposite; 59 | $accent-color-no-bg: $bg; 60 | } 61 | 62 | $gayflag0: #078D70; 63 | $gayflag1: #26CEAA; 64 | $gayflag2: #98E8C1; 65 | $gayflag3: #FFFFFF; 66 | $gayflag4: #7BADE2; 67 | $gayflag5: #5049CC; 68 | $gayflag6: #3D1A78; 69 | $gayflag7: #225474; 70 | -------------------------------------------------------------------------------- /waybar/style.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sourceRoot":"","sources":["style.scss","_colors.scss"],"names":[],"mappings":"AAqEA;AAAA;AAAA;AAAA;AAAA;EArBE,aAzBc;EA0Bd;EACA;EACA;EAEA,YC/Ba;EDgCb,OC9Ba;EDgCb;EAEA;EACA,kBC5Ca;ED6Cb,qBC1Ca;ED2Cb;EAEA;EACA;EACA;EAYA;EACA;;;AAMF;EACE;EACA;EACA;EACA;EACA,OCjEa;EDkEb;EACA;EAEA;EACA;EACA;;;AAGF;EACE;;;AAGF;EAtDE,aAzBc;EA0Bd;EACA;EACA;EAEA,YC/Ba;EDgCb,OC9Ba;EDgCb;EAEA;EACA,kBC5Ca;ED6Cb,qBC1Ca;ED2Cb;EAEA;EACA;EACA;;AAwCA;EACE;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA,OC9Fa;;;ADiGf;EACE;EACA,eAxFkB;EAyFlB;EACA,WAjGU;EAkGV,aAjGY;EAkGZ,YA5GoB;EA6GpB,eA5GuB;;;AA+GzB;EACE,aAnHc;;;AAsHhB;EACE,cAvHc;;;AA0HhB;EACE;EACA;EACA;;;AAGF;EACE,OC5Ha;ED6Hb;EACA,aA7Hc;;;AAgIhB;EACE,OChIa;EDiIb;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;IACA;IACA;IACA;IACA;;EAEF;IACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA,OClLa;EDoLb,YC5Ka;ED6Kb;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;;;AAGF;EACE,YC5La;ED6Lb,cC9La;ED+Lb;EACA;EACA;;;AAOF;EACE;IACE;;EASF;IACE;;EASF;IACE;;EASF;IACE;;EASF;IACE;;EASF;IACE;;EASF;IACE;;;AAWJ;EACE,OC1Qa;ED2Qb;EACA;EASA;EACA;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE,OC1Ta;;;AD6Tf;EACE,OC9Ta;;;ADmUf;EACE;IACE,OCrUW;IDsUX,aACA;;EAIF;IACE,OC3UW;ID4UX,aACA;;EAIF;IACE,OCjVW;IDkVX,aACA;;EAIF;IACE,OCvVW;IDwVX,aACA;;EAIF;IACE,OC3VW;ID4VX,aACA;;EAIF;IACE,OCjWW;IDkWX,aACA;;EAIF;IACE,OC/WW;IDgXX,aACA;;;AAMJ;EACE,OCxXa;EDyXb,aACA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;IACA,OC7XW;;ED+Xb;IACE;IACA,OCjYW;;EDmYb;IACE;;;AAIJ;EAhXE,aAzBc;EA0Bd;EACA;EACA;EAEA,YC/Ba;EDgCb,OC9Ba;EDgCb;EAEA;EACA,kBC5Ca;ED6Cb,qBC1Ca;ED2Cb;EAEA;EACA;EACA;EAmWA,OC/Za;EDgab;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;EACA,OClaa;EDmab,YC1aa;ED4ab;EACA,kBC/aa;EDgbb,qBC7aa;ED8ab;EAEA;EAEA;EAEA;EACA,WA3aU;EA4aV;EACA;EACA;EACA;;;AAGF;EA9ZE,aAzBc;EA0Bd;EACA;EACA;EAEA,YC/Ba;EDgCb,OC9Ba;EDgCb;EAEA;EACA,kBC5Ca;ED6Cb,qBC1Ca;ED2Cb;EAEA;EACA;EACA;EAgZA,cADU;EAEV,eAFU;;;AAKZ;EACE,YChca;EDicb,OC/ba;EDgcb;EACA;EACA;EACA;EAGA;EACA,WAncU;EAocV,aAncY","file":"style.css"} -------------------------------------------------------------------------------- /nvim/lua/plugins/config/lualine.lua: -------------------------------------------------------------------------------- 1 | -- Get Git path of current file 2 | local filename_custom = require("lualine.custom_component.filename") 3 | local custom_catppuccin = require("lualine.themes.catppuccin") 4 | 5 | custom_catppuccin.insert.b.fg = "#a6e3a1" 6 | custom_catppuccin.normal.c.fg = "#9399b2" 7 | 8 | custom_catppuccin.normal.b.bg = "#313244" 9 | custom_catppuccin.insert.b.bg = "#313244" 10 | custom_catppuccin.visual.b.bg = "#313244" 11 | custom_catppuccin.replace.b.bg = "#313244" 12 | custom_catppuccin.terminal.b.bg = "#313244" 13 | custom_catppuccin.command.b.bg = "#313244" 14 | custom_catppuccin.command.b.bg = "#313244" 15 | 16 | custom_catppuccin.normal.c.bg = "" 17 | custom_catppuccin.inactive.a.bg = "" 18 | custom_catppuccin.inactive.b.bg = "" 19 | custom_catppuccin.inactive.c.bg = "" 20 | 21 | vim.g.gitblame_display_virtual_text = 0 -- Disable virtual text 22 | local git_blame = require("gitblame") 23 | 24 | require("lualine").setup({ 25 | options = { 26 | icons_enabled = true, 27 | theme = custom_catppuccin, 28 | component_separators = { left = "", right = "" }, 29 | section_separators = { left = "", right = "" }, 30 | disabled_filetypes = { 31 | "gitcommit", 32 | }, 33 | always_divide_middle = true, 34 | globalstatus = true, 35 | }, 36 | sections = { 37 | lualine_a = { 38 | { "mode", separator = { left = "", right = "" } }, 39 | }, 40 | lualine_b = { filename_custom }, 41 | lualine_c = { 42 | "diagnostics", 43 | "diff", 44 | }, 45 | lualine_x = { 46 | { git_blame.get_current_blame_text, cond = git_blame.is_blame_text_available }, 47 | "filetype", 48 | }, 49 | lualine_y = { "branch", "progress" }, 50 | lualine_z = { 51 | { "location", separator = { left = "", right = "" } }, 52 | }, 53 | }, 54 | inactive_sections = { 55 | lualine_a = {}, 56 | lualine_b = {}, 57 | lualine_c = { "filename" }, 58 | lualine_x = { "location" }, 59 | lualine_y = {}, 60 | lualine_z = {}, 61 | }, 62 | tabline = {}, 63 | -- winbar = { lualine_a = { navic_winbar } }, 64 | extensions = {}, 65 | }) 66 | -------------------------------------------------------------------------------- /ghostty/config: -------------------------------------------------------------------------------- 1 | # This is the configuration file for Ghostty. 2 | # 3 | # This template file has been automatically created at the following 4 | # path since Ghostty couldn't find any existing config files on your system: 5 | # 6 | # /home/angelo-f/.config/ghostty/config 7 | # 8 | # The template does not set any default options, since Ghostty ships 9 | # with sensible defaults for all options. Users should only need to set 10 | # options that they want to change from the default. 11 | # 12 | # Run `ghostty +show-config --default --docs` to view a list of 13 | # all available config options and their default values. 14 | # 15 | # Additionally, each config option is also explained in detail 16 | # on Ghostty's website, at https://ghostty.org/docs/config. 17 | 18 | # Config syntax crash course 19 | # ========================== 20 | # # The config file consists of simple key-value pairs, 21 | # # separated by equals signs. 22 | # font-family = Iosevka 23 | # window-padding-x = 2 24 | # 25 | # # Spacing around the equals sign does not matter. 26 | # # All of these are identical: 27 | # key=value 28 | # key= value 29 | # key =value 30 | # key = value 31 | # 32 | # # Any line beginning with a # is a comment. It's not possible to put 33 | # # a comment after a config option, since it would be interpreted as a 34 | # # part of the value. For example, this will have a value of "#123abc": 35 | # background = #123abc 36 | # 37 | # # Empty values are used to reset config keys to default. 38 | # key = 39 | # 40 | # # Some config options have unique syntaxes for their value, 41 | # # which is explained in the docs for that config option. 42 | # # Just for example: 43 | # resize-overlay-duration = 4s 200ms 44 | theme = catppuccin-mocha 45 | font-family = JetBrains Mono Regular 46 | font-family-bold = JetBrains Mono Bold 47 | font-family-italic = JetBrains Mono Italic 48 | font-family-bold-italic = JetBrains Mono Bold Italic 49 | font-family = Twemoji 50 | font-size = 15.6 51 | window-padding-x = 9 52 | window-padding-y = 9 53 | background-opacity = 0.8 54 | gtk-single-instance = true 55 | confirm-close-surface = false 56 | 57 | keybind = ctrl+enter=unbind 58 | keybind = ctrl+shift+enter=unbind 59 | -------------------------------------------------------------------------------- /nvim/lua/core/keymaps.lua: -------------------------------------------------------------------------------- 1 | local utils = require("core.utils") 2 | local map = utils.map 3 | local nmap = utils.nmap 4 | local imap = utils.imap 5 | local vmap = utils.vmap 6 | local tmap = utils.tmap 7 | 8 | vim.g.mapleader = " " 9 | 10 | -- Search for in the git repository 11 | nmap("", ":lua require'telescope.builtin'.git_files{show_untracked = true}") 12 | 13 | nmap("", function() 14 | local git_root = vim.fn.systemlist("git rev-parse --show-toplevel")[1] 15 | if vim.v.shell_error ~= 0 then 16 | -- fallback: use current dir if not in a git repo 17 | git_root = vim.loop.cwd() 18 | end 19 | 20 | require("telescope.builtin").live_grep({ 21 | cwd = git_root, 22 | }) 23 | end, { desc = "Live grep from git root" }) 24 | 25 | vim.api.nvim_create_autocmd("BufRead", { 26 | pattern = "*/.config/*", 27 | command = 'nnoremap :lua require"telescope.builtin".git_files{show_untracked = false}', 28 | }) 29 | 30 | nmap("ff", "lua require('telescope.builtin').find_files()") 31 | nmap("fg", "lua require('telescope.builtin').live_grep(require('telescope.themes').get_ivy({}))") 32 | nmap("fb", "lua require('telescope.builtin').buffers()") 33 | nmap("fh", "lua require('telescope.builtin').help_tags()") 34 | 35 | nmap("l", "!librewolf %") 36 | 37 | nmap("", ":noh:") 38 | 39 | nmap("u", "q") 40 | 41 | -- System clipboard Mappings 42 | nmap("y", '"+y') 43 | nmap("Y", '"+yg_') 44 | nmap("p", '"+p') 45 | nmap("P", '"+P') 46 | vmap("y", '"+y') 47 | 48 | nmap("J", "Git") 49 | nmap("jj", "Git") 50 | 51 | nmap("ja", "Git add %") 52 | nmap("jm", "Git commit") 53 | nmap("js", "Git status") 54 | nmap("jl", "Git log") 55 | nmap("jd", "Git diff %") 56 | 57 | local function toggle_git_dir() 58 | local is_inside_git_repo = vim.fn.system("git rev-parse --is-inside-work-tree") == "true\n" 59 | 60 | local path 61 | if is_inside_git_repo then 62 | local git_root_dir = vim.fn.system("git rev-parse --show-toplevel") 63 | path = git_root_dir 64 | else 65 | path = "." 66 | end 67 | 68 | require("nvim-tree.api").tree.toggle() 69 | end 70 | 71 | vim.keymap.set("n", "", toggle_git_dir) 72 | -------------------------------------------------------------------------------- /wezterm/wezterm.lua: -------------------------------------------------------------------------------- 1 | local wezterm = require("wezterm") 2 | 3 | local act = wezterm.action 4 | 5 | return { 6 | 7 | color_scheme = "Catppuccin Mocha", 8 | enable_wayland = true, 9 | window_background_opacity = 0.8, 10 | 11 | audible_bell = "SystemBeep", 12 | 13 | font = wezterm.font_with_fallback({ 14 | { family = "JetBrains Mono", weight = "Regular" }, 15 | "Twemoji", 16 | }), 17 | 18 | font_size = 19, 19 | 20 | window_padding = { 21 | left = 9, 22 | right = 9, 23 | top = 9, 24 | bottom = 9, 25 | }, 26 | 27 | enable_tab_bar = false, 28 | 29 | warn_about_missing_glyphs = false, 30 | 31 | animation_fps = 165, 32 | default_cursor_style = "BlinkingBar", 33 | 34 | cursor_blink_ease_in = "EaseOut", 35 | cursor_blink_ease_out = "EaseOut", 36 | cursor_blink_rate = 550, 37 | 38 | window_background_gradient = { 39 | orientation = { 40 | Radial = { 41 | -- Specifies the x coordinate of the center of the circle, 42 | -- in the range 0.0 through 1.0. The default is 0.5 which 43 | -- is centered in the X dimension. 44 | cx = 0.75, 45 | 46 | -- Specifies the y coordinate of the center of the circle, 47 | -- in the range 0.0 through 1.0. The default is 0.5 which 48 | -- is centered in the Y dimension. 49 | cy = 0.20, 50 | 51 | -- Specifies the radius of the notional circle. 52 | -- The default is 0.5, which combined with the default cx 53 | -- and cy values places the circle in the center of the 54 | -- window, with the edges touching the window edges. 55 | -- Values larger than 1 are possible. 56 | radius = 1.5, 57 | }, 58 | }, 59 | 60 | colors = { 61 | -- "#575c7a", 62 | -- "#313244", 63 | -- "#1e1e2e", 64 | "#1e1e2e", 65 | -- "#181825", 66 | -- "#11111b", 67 | }, 68 | 69 | interpolation = "Basis", 70 | blend = "Hsv", 71 | noise = 25, 72 | }, 73 | 74 | keys = { 75 | -- Turn off the default CMD-m Hide action, allowing CMD-m to 76 | -- be potentially recognized and handled by the tab 77 | { key = "w", mods = "SUPER", action = "DisableDefaultAssignment" }, 78 | { key = "UpArrow", mods = "SHIFT", action = act.ScrollByLine(-1) }, 79 | { key = "DownArrow", mods = "SHIFT", action = act.ScrollByLine(1) }, 80 | }, 81 | 82 | mouse_bindings = { 83 | -- Ctrl-click will open the link under the mouse cursor 84 | { 85 | event = { Up = { streak = 1, button = "Left" } }, 86 | action = wezterm.action.OpenLinkAtMouseCursor, 87 | }, 88 | }, 89 | } 90 | -------------------------------------------------------------------------------- /nvim/lua/plugins/config/presence.lua: -------------------------------------------------------------------------------- 1 | -- The setup config table shows all available config options with their default values: 2 | require("presence"):setup({ 3 | -- General options 4 | auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`) 5 | neovim_image_text = "I use Neovim btw", -- Text displayed when hovered over the Neovim image 6 | main_image = "neovim", -- Main image display (either "neovim" or "file") 7 | log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error") 8 | debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(, true)`) 9 | enable_line_number = false, -- Displays the current line number instead of the current project 10 | blacklist = { ".config", "sofsafe/", "private_" }, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches 11 | buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "