From 8cbadb61604667b407b53ee1258433994fa4765a Mon Sep 17 00:00:00 2001 From: coasteen Date: Thu, 9 Jul 2026 10:42:28 +0330 Subject: init --- config/alacritty/alacritty.toml | 16 + config/bspwm/bspwmrc | 82 + config/btop/btop.conf | 254 ++ config/btop/themes/coasteen.theme | 89 + config/btop/themes/dracula.theme | 89 + config/btop/themes/gruvbox.theme | 92 + config/btop/themes/kyli0x.theme | 92 + config/dunst/dunst/dunstrc | 48 + config/dunst/dunstrc | 48 + config/dunst/dunstrc~ | 48 + config/eww/eww.scss | 63 + config/eww/eww.yuck | 58 + config/eww/eww_vars.yuck | 4 + config/eww/eww_widgets.yuck | 21 + config/eww/images/gif1.gif | Bin 0 -> 169253 bytes config/eww/images/gif2.gif | Bin 0 -> 36996 bytes config/eww/scripts/calendar.sh | 2 + config/eww/scripts/day_format.sh | 14 + config/eww/scripts/daytype.sh | 3 + config/eww/scripts/month_format.sh | 3 + config/eww/scripts/start.sh | 9 + config/eww/scripts/year_format.sh | 3 + config/foot/foot.ini | 1 + config/foot/foot.ini.home-backup | 40 + config/home-manager/README.md | 4 + config/home-manager/flake.lock | 47 + config/home-manager/flake.nix | 26 + config/home-manager/home.nix | 195 ++ config/hypr/hypridle.conf | 14 + config/hypr/hyprland.conf | 217 ++ config/hypr/hyprlock.conf | 35 + config/hypr/hyprpaper.conf | 3 + config/kitty/.#kitty.conf | 1 + config/kitty/kitty.conf | 52 + config/mako/.github/issue_template.md | 1 + config/mako/.github/pull_request_template.md | 1 + config/mako/config | 12 + config/micro/bindings.json | 35 + config/micro/buffers/history | Bin 0 -> 52 bytes config/micro/settings.json | 3 + config/mksymlink.conf | 16 + config/mutt/color.muttrc | 68 + config/mutt/muttrc | 18 + config/neofetch/config.conf | 864 ++++++ config/niri-2/config.kdl | 269 ++ config/niri/config.kdl | 265 ++ config/nushell/config.nu | 99 + config/nushell/starship.nu | 35 + config/nvim-1/init.lua | 11 + config/nvim-1/lazy-lock.json | 40 + config/nvim-1/lua/config.lua | 86 + config/nvim-1/lua/plugins/catppuccin/init.lua | 84 + config/nvim-1/lua/plugins/lazy/init.lua | 17 + config/nvim-1/lua/plugins/lazy/plugins.lua | 128 + config/nvim-1/lua/plugins/lsp/init.lua | 120 + config/nvim-1/lua/plugins/lualine/init.lua | 42 + config/nvim-1/lua/plugins/nvim-tree/init.lua | 2 + config/nvim-1/lua/plugins/render-markdown/init.lua | 139 + config/nvim-1/lua/plugins/telescope/init.lua | 3 + config/nvim-1/lua/plugins/treesitter/init.lua | 10 + config/nvim-1/lua/plugins/whichkey/init.lua | 2 + config/nvim-1/lua/status_line/init.lua | 102 + config/nvim-1/undo/%home%coast%.Xdefaults | Bin 0 -> 759 bytes ...home%coast%.config%Element%electron-config.json | Bin 0 -> 1274 bytes .../%home%coast%.config%alacritty%alacritty.toml | Bin 0 -> 16787 bytes .../nvim-1/undo/%home%coast%.config%dunst%dunstrc | Bin 0 -> 5122 bytes .../undo/%home%coast%.config%eww%_colors.scss | Bin 0 -> 673 bytes .../nvim-1/undo/%home%coast%.config%eww%eww.scss | Bin 0 -> 7618 bytes .../nvim-1/undo/%home%coast%.config%eww%eww.yuck | Bin 0 -> 7041 bytes ...ast%.config%eww%scripts%get-active-workspace.sh | Bin 0 -> 4312 bytes ...ome%coast%.config%eww%scripts%get-workspaces.sh | Bin 0 -> 2727 bytes .../undo/%home%coast%.config%fht%compositor.toml | Bin 0 -> 26843 bytes .../nvim-1/undo/%home%coast%.config%foot%foot.ini | Bin 0 -> 4112 bytes .../undo/%home%coast%.config%hypr%hypridle.conf | Bin 0 -> 1643 bytes .../undo/%home%coast%.config%hypr%hyprland.conf | Bin 0 -> 249399 bytes .../undo/%home%coast%.config%hypr%hyprlock.conf | Bin 0 -> 2702 bytes .../nvim-1/undo/%home%coast%.config%kwm%config.zon | Bin 0 -> 62767 bytes config/nvim-1/undo/%home%coast%.config%mako%config | Bin 0 -> 7057 bytes ...%8kysq72s.default-release%chrome%userChrome.css | Bin 0 -> 597 bytes .../undo/%home%coast%.config%neofetch%config.conf | Bin 0 -> 82882 bytes ...st%.config%nvim%lua%plugins%catppuccin%init.lua | Bin 0 -> 83907 bytes ...coast%.config%nvim%lua%plugins%lazy%plugins.lua | Bin 0 -> 1620 bytes ...%home%coast%.config%picom%picom-animations.conf | Bin 0 -> 16678 bytes .../undo/%home%coast%.config%picom%picom.conf | Bin 0 -> 39955 bytes config/nvim-1/undo/%home%coast%.config%piss%pissrc | Bin 0 -> 23848 bytes .../undo/%home%coast%.config%quickshell%clock.qml | Bin 0 -> 597 bytes .../%home%coast%.config%quickshell%currentsong.qml | Bin 0 -> 597 bytes .../%home%coast%.config%quickshell%separator.qml | Bin 0 -> 639 bytes .../undo/%home%coast%.config%quickshell%shell.qml | Bin 0 -> 401330 bytes .../%home%coast%.config%quickshell%workspaces.qml | Bin 0 -> 639 bytes config/nvim-1/undo/%home%coast%.config%river%init | Bin 0 -> 1243 bytes .../undo/%home%coast%.config%rofi%config.rasi | Bin 0 -> 13071 bytes .../undo/%home%coast%.config%scrobbler%config.ini | Bin 0 -> 2630 bytes config/nvim-1/undo/%home%coast%.config%sway%config | Bin 0 -> 36011 bytes .../nvim-1/undo/%home%coast%.config%tym%config.lua | Bin 0 -> 13438 bytes .../nvim-1/undo/%home%coast%.config%tym%theme.lua | Bin 0 -> 1256 bytes .../undo/%home%coast%.config%waybar%config.jsonc | Bin 0 -> 77709 bytes .../undo/%home%coast%.config%waybar%style.css | Bin 0 -> 125219 bytes config/nvim-1/undo/%home%coast%.curlrc | Bin 0 -> 669 bytes ...local%share%American Truck Simulator%config.cfg | Bin 0 -> 17100 bytes ...ocal%share%applications%element-desktop.desktop | Bin 0 -> 1083 bytes ...t%.local%share%applications%firefox-bin.desktop | Bin 0 -> 631 bytes ...%.local%share%applications%im.riot.Riot.desktop | Bin 0 -> 2761 bytes ...%export%share%applications%im.riot.Riot.desktop | Bin 0 -> 825 bytes .../%home%coast%.local%src%.git%COMMIT_EDITMSG | Bin 0 -> 579 bytes ...ome%coast%.local%src%config%nvim%lua%config.lua | Bin 0 -> 75458 bytes .../undo/%home%coast%.local%src%config%sway%config | Bin 0 -> 1065 bytes ...ome%coast%.local%src%config%waybar%config.jsonc | Bin 0 -> 122714 bytes .../%home%coast%.local%src%config%waybar%style.css | Bin 0 -> 203469 bytes .../undo/%home%coast%.local%src%dmenu%config.h | Bin 0 -> 3785 bytes .../undo/%home%coast%.local%src%dmenu%config.mk | Bin 0 -> 3914 bytes .../undo/%home%coast%.local%src%dmenu%dmenu.c | Bin 0 -> 85514 bytes .../nvim-1/undo/%home%coast%.local%src%dmenu%drw.c | Bin 0 -> 19034 bytes .../undo/%home%coast%.local%src%dwm%config.h | Bin 0 -> 45698 bytes .../undo/%home%coast%.local%src%dwm%config.mk | Bin 0 -> 8711 bytes .../undo/%home%coast%.local%src%dwm%patches.h | Bin 0 -> 6749 bytes .../%home%coast%.local%src%local%bin%mpc-shuf.sh | Bin 0 -> 137909 bytes .../%home%coast%.local%src%local%bin%screenie-wlr | Bin 0 -> 4808 bytes .../undo/%home%coast%.local%src%local%bin%sober | Bin 0 -> 2783 bytes .../%home%coast%.local%src%local%bin%swap.start | Bin 0 -> 3996 bytes .../%home%coast%.local%src%local%bin%swap.stop | Bin 0 -> 2435 bytes .../%home%coast%.local%src%local%bin%updateriver | Bin 0 -> 16783 bytes ...%home%coast%.local%src%local%bin%updateriver.sh | Bin 0 -> 11196 bytes .../undo/%home%coast%.local%src%local%bin%upl | Bin 0 -> 12725 bytes .../%home%coast%.local%src%local%bin%uwuify.awk | Bin 0 -> 28108 bytes .../undo/%home%coast%.local%src%slstatus%config.h | Bin 0 -> 15831 bytes .../undo/%home%coast%.local%src%slstatus%config.mk | Bin 0 -> 2230 bytes .../nvim-1/undo/%home%coast%.local%src%st%config.h | Bin 0 -> 3487 bytes .../undo/%home%coast%.local%src%st%config.mk | Bin 0 -> 599 bytes config/nvim-1/undo/%home%coast%.mpdconf | Bin 0 -> 2438 bytes config/nvim-1/undo/%home%coast%.rtorrent.rc | Bin 0 -> 2008 bytes ...pp%org.vinegarhq.Sober%config%sober%config.json | Bin 0 -> 4597 bytes config/nvim-1/undo/%home%coast%.wezterm.lua | Bin 0 -> 14460 bytes config/nvim-1/undo/%home%coast%.xinitrc | Bin 0 -> 45032 bytes config/nvim-1/undo/%home%coast%.zprofile | Bin 0 -> 31474 bytes config/nvim-1/undo/%home%coast%.zshrc | Bin 0 -> 707 bytes ...ome%coast%Games%Red Dead Redemption 2%launch.sh | Bin 0 -> 28213 bytes config/nvim-1/undo/%home%coast%NOTES | Bin 0 -> 2029 bytes .../nvim-1/undo/%home%coast%Projects%X%term%term | Bin 0 -> 5968 bytes .../undo/%home%coast%Projects%X%term%xterm.c | Bin 0 -> 75232 bytes .../nvim-1/undo/%home%coast%Projects%abcl%main.cl | Bin 0 -> 33977 bytes config/nvim-1/undo/%home%coast%Projects%gtk%main.c | Bin 0 -> 8793 bytes .../undo/%home%coast%Projects%py%ashscrobble | Bin 0 -> 52479 bytes ...ast%Projects%py%ashscrobble%.git%COMMIT_EDITMSG | Bin 0 -> 579 bytes .../%home%coast%Projects%py%ashscrobble%LICENSE | Bin 0 -> 3517 bytes ...me%coast%Projects%py%ashscrobble%ashscrobble.py | Bin 0 -> 2182 bytes .../nvim-1/undo/%home%coast%Projects%py%dmenu.lua | Bin 0 -> 32913 bytes .../nvim-1/undo/%home%coast%Projects%py%dmenu.py | Bin 0 -> 23716 bytes .../undo/%home%coast%Projects%pylua%dmenu.lua | Bin 0 -> 10292 bytes .../%home%coast%Projects%river%kwm%config.def.zon | Bin 0 -> 20522 bytes .../%home%coast%Projects%river%river%build.zig.zon | Bin 0 -> 2669 bytes ...home%coast%Projects%rs%guessing_game%.gitignore | Bin 0 -> 1116 bytes .../undo/%home%coast%Projects%wayland%config.h | Bin 0 -> 12548 bytes .../undo/%home%coast%Projects%wayland%main.py | Bin 0 -> 56288 bytes .../undo/%home%coast%Projects%wayland%window.c | Bin 0 -> 145974 bytes .../undo/%home%coast%Projects%wayland%wlbar%main.c | Bin 0 -> 6042 bytes ...st%Projects%wayland%wlclock%.git%COMMIT_EDITMSG | Bin 0 -> 579 bytes ...%home%coast%Projects%wayland%wlclock%.gitignore | Bin 0 -> 2753 bytes .../%home%coast%Projects%wayland%wlclock%config.h | Bin 0 -> 12291 bytes .../%home%coast%Projects%wayland%wlclock%main.c | Bin 0 -> 43975 bytes .../%home%coast%Projects%wayland%wlclock%makefile | Bin 0 -> 10669 bytes .../undo/%home%coast%Projects%wayland%wlclock.c | Bin 0 -> 579319 bytes ...coast%Projects%wayland%wled%.git%COMMIT_EDITMSG | Bin 0 -> 687 bytes .../%home%coast%Projects%wayland%wled%.gitignore | Bin 0 -> 2769 bytes .../undo/%home%coast%Projects%wayland%wled%LICENSE | Bin 0 -> 2735 bytes .../undo/%home%coast%Projects%wayland%wled%README | Bin 0 -> 9610 bytes .../%home%coast%Projects%wayland%wled%build.sh | Bin 0 -> 79779 bytes .../%home%coast%Projects%wayland%wled%client.c | Bin 0 -> 258378 bytes .../%home%coast%Projects%wayland%wled%config.h | Bin 0 -> 26398 bytes .../%home%coast%Projects%wayland%wlindow%client.c | Bin 0 -> 2146 bytes .../undo/%home%coast%Projects%wayland%x11alt.c | Bin 0 -> 25803 bytes config/nvim-1/undo/%home%coast%ashos%linux%.config | Bin 0 -> 1626 bytes config/nvim-1/undo/%home%coast%ashos%syslinux.cfg | Bin 0 -> 6204 bytes config/nvim-1/undo/%home%coast%conduwuit | Bin 0 -> 15428 bytes config/nvim-1/undo/%home%coast%driver%driver.c | Bin 0 -> 6721 bytes .../%home%coast%git%compositor%.git%COMMIT_EDITMSG | Bin 0 -> 579 bytes .../undo/%home%coast%git%compositor%.gitignore | Bin 0 -> 1677 bytes .../undo/%home%coast%git%compositor%Makefile | Bin 0 -> 2410 bytes .../undo/%home%coast%git%compositor%build.sh | Bin 0 -> 1667 bytes .../undo/%home%coast%git%compositor%makefile | Bin 0 -> 14145 bytes .../%home%coast%git%compositor%src%compositor.c | Bin 0 -> 259361 bytes .../undo/%home%coast%git%compositor%src%config.h | Bin 0 -> 27929 bytes ...e%coast%git%compositor%src%include%compositor.h | Bin 0 -> 16690 bytes ...ome%coast%git%compositor%src%include%keybinds.h | Bin 0 -> 1712 bytes ...e%coast%git%compositor%src%include%screenshot.h | Bin 0 -> 5210 bytes .../undo/%home%coast%git%compositor%src%keybinds.c | Bin 0 -> 3599 bytes .../undo/%home%coast%git%compositor%src%keybinds.h | Bin 0 -> 4422 bytes .../%home%coast%git%compositor%src%screenshot.c | Bin 0 -> 17605 bytes .../undo/%home%coast%git%compositor%src%util.c | Bin 0 -> 2861 bytes config/nvim-1/undo/%home%coast%git%hst%config.h | Bin 0 -> 60894 bytes .../nvim-1/undo/%home%coast%git%neuswc%config.mk | Bin 0 -> 2849 bytes .../%home%coast%git%neuswc%libswc%compositor.h | Bin 0 -> 671 bytes .../undo/%home%coast%git%neuswc%libswc%output.h | Bin 0 -> 671 bytes .../undo/%home%coast%git%neuswc%libswc%pointer.h | Bin 0 -> 1736 bytes .../undo/%home%coast%git%neuswc%libswc%util.h | Bin 0 -> 617 bytes .../nvim-1/undo/%home%coast%git%neuwld%config.mk | Bin 0 -> 629 bytes config/nvim-1/undo/%home%coast%git%swc%config.mk | Bin 0 -> 2305 bytes config/nvim-1/undo/%home%coast%git%swcshot%main.c | Bin 0 -> 14583 bytes .../nvim-1/undo/%home%coast%git%terminal%Makefile | Bin 0 -> 1489 bytes config/nvim-1/undo/%home%coast%git%terminal%main.c | Bin 0 -> 60353 bytes config/nvim-1/undo/%home%coast%git%wld%config.mk | Bin 0 -> 649 bytes config/nvim-1/undo/%home%coast%git%wsxwm%Makefile | Bin 0 -> 5006 bytes .../%home%coast%git%wsxwm%source%include%wsxwm.h | Bin 0 -> 1770 bytes .../undo/%home%coast%git%wsxwm%source%test.diff | Bin 0 -> 1223 bytes .../undo/%home%coast%git%wsxwm%source%wsxwm.c | Bin 0 -> 70249 bytes config/nvim-1/undo/%home%coast%hwfetch | Bin 0 -> 27128 bytes config/nvim-1/undo/%home%coast%main.bash | Bin 0 -> 4076 bytes config/nvim-1/undo/%home%coast%main.c | Bin 0 -> 5019 bytes config/nvim-1/undo/%home%coast%main.lua | Bin 0 -> 3328 bytes config/nvim-1/undo/%home%coast%royal | Bin 0 -> 1348 bytes config/nvim-1/undo/%home%coast%shared%loader.c | Bin 0 -> 7191 bytes config/nvim-1/undo/%home%coast%shared%shared.c | Bin 0 -> 7551 bytes config/nvim-1/undo/%home%coast%test.py | Bin 0 -> 597 bytes config/nvim-2/graft | 1 + config/nvim-2/init.vim | 12 + config/nvim-2/nvim/init.vim | 12 + config/nvim-2/nvim/pack-bak/graft/start/LuaSnip | 1 + config/nvim-2/nvim/pack-bak/graft/start/cmp-buffer | 1 + .../nvim-2/nvim/pack-bak/graft/start/cmp-nvim-lsp | 1 + .../nvim/pack-bak/graft/start/nvim-autopairs | 1 + config/nvim-2/nvim/pack-bak/graft/start/nvim-cmp | 1 + .../nvim/pack-bak/graft/start/nvim-lspconfig | 1 + .../nvim-2/nvim/pack-bak/graft/start/vim-closetag | 1 + .../nvim/pack-bak/graft/start/vim-commentary | 1 + .../nvim-2/nvim/pack-bak/graft/start/vim-endwise | 1 + .../nvim-2/nvim/pack-bak/graft/start/vim-fugitive | 1 + .../nvim-2/nvim/pack-bak/graft/start/vim-polyglot | 1 + .../nvim-2/nvim/pack-bak/graft/start/vim-sensible | 1 + .../nvim-2/nvim/pack-bak/graft/start/vim-surround | 1 + .../nvim-2/nvim/pack-bak/graft/start/vim-vinegar | 1 + config/nvim-2/nvim/pack/scion/start/LuaSnip | 1 + config/nvim-2/nvim/pack/scion/start/cmp-buffer | 1 + config/nvim-2/nvim/pack/scion/start/cmp-nvim-lsp | 1 + config/nvim-2/nvim/pack/scion/start/nvim-autopairs | 1 + config/nvim-2/nvim/pack/scion/start/nvim-cmp | 1 + .../nvim/pack/scion/start/nvim-colorizer.lua | 1 + config/nvim-2/nvim/pack/scion/start/nvim-lspconfig | 1 + .../nvim-2/nvim/pack/scion/start/nvim-treesitter | 1 + config/nvim-2/nvim/pack/scion/start/vim-closetag | 1 + config/nvim-2/nvim/pack/scion/start/vim-commentary | 1 + config/nvim-2/nvim/pack/scion/start/vim-endwise | 1 + config/nvim-2/nvim/pack/scion/start/vim-fugitive | 1 + config/nvim-2/nvim/pack/scion/start/vim-polyglot | 1 + config/nvim-2/nvim/pack/scion/start/vim-sensible | 1 + config/nvim-2/nvim/pack/scion/start/vim-surround | 1 + config/nvim-2/nvim/pack/scion/start/vim-vinegar | 1 + config/nvim-2/nvim/scion | 1 + config/nvim-2/nvim/scion_state.json | 21 + .../%home%coast%.config%alacritty%alacritty.toml | Bin 0 -> 44499 bytes .../%home%coast%.config%fastfetch%config.jsonc | Bin 0 -> 20002 bytes .../undodir/%home%coast%.config%niri%config.kdl | Bin 0 -> 16110 bytes .../%home%coast%.config%nvim%graft%config.rb | Bin 0 -> 18913 bytes .../nvim/undodir/%home%coast%.config%nvim%init.vim | Bin 0 -> 103754 bytes .../nvim/undodir/%home%coast%.config%nvim%key.vim | Bin 0 -> 5683 bytes .../%home%coast%.config%nvim%scion%config.rb | Bin 0 -> 4430 bytes .../%home%coast%.config%nvim%scion%scion.rb | Bin 0 -> 58552 bytes .../nvim/undodir/%home%coast%.config%nvim%test.sh | Bin 0 -> 3475 bytes .../%home%coast%.config%nvim%vscript%lsp.vim | Bin 0 -> 5713 bytes .../%home%coast%.config%nvim%vscript%lua.vim | Bin 0 -> 50636 bytes .../%home%coast%.config%nvim%vscript%scp.vim | Bin 0 -> 30059 bytes .../%home%coast%.config%nvim%vscript%theme.vim | Bin 0 -> 22051 bytes .../undodir/%home%coast%.config%rofi%config.rasi | Bin 0 -> 19085 bytes .../nvim/undodir/%home%coast%.config%starship.toml | Bin 0 -> 10728 bytes ...r%.#plasma-polkit-agent.servicec252b1882abfd1a3 | Bin 0 -> 2796 bytes .../%home%coast%.config%waybar%config.jsonc | Bin 0 -> 171458 bytes .../undodir/%home%coast%.config%waybar%style.css | Bin 0 -> 101843 bytes .../undodir/%home%coast%.config%waybar%window.sh | Bin 0 -> 597 bytes ...e%coast%.config%xdg-desktop-portal%portals.conf | Bin 0 -> 2165 bytes ....local%share%applications%prismlauncher.desktop | Bin 0 -> 5079 bytes ...%coast%.local%share%applications%throne.desktop | Bin 0 -> 5299 bytes .../%home%coast%.zsh.d%zsh-syntaxhighlighting.zsh | Bin 0 -> 1309 bytes config/nvim-2/nvim/undodir/%home%coast%.zshrc | Bin 0 -> 5619 bytes config/nvim-2/nvim/undodir/%home%coast%DEVLIST | Bin 0 -> 7935 bytes .../%home%coast%Downloads%snispoof%config.json | Bin 0 -> 1169 bytes ...es%26.1.2%minecraft%config%DistantHorizons.toml | Bin 0 -> 35630 bytes .../nvim/undodir/%home%coast%Xray%config.json | Bin 0 -> 2583 bytes config/nvim-2/nvim/undodir/%home%coast%bash.sh | Bin 0 -> 6749 bytes .../nvim/undodir/%home%coast%copyparty-setup.py | Bin 0 -> 695 bytes .../nvim/undodir/%home%coast%dlhub%goodlinks.txt | Bin 0 -> 1238 bytes .../nvim/undodir/%home%coast%dlhub%script.py | Bin 0 -> 19927 bytes config/nvim-2/nvim/undodir/%home%coast%main.c | Bin 0 -> 17686 bytes .../nvim/undodir/%home%coast%mhr-cfw%config.json | Bin 0 -> 4736 bytes config/nvim-2/nvim/undodir/%home%coast%pertree | Bin 0 -> 5517 bytes .../undodir/%home%coast%piss%.git%COMMIT_EDITMSG | Bin 0 -> 579 bytes .../nvim-2/nvim/undodir/%home%coast%piss%LICENSE | Bin 0 -> 1614 bytes .../nvim-2/nvim/undodir/%home%coast%piss%README.md | Bin 0 -> 6650 bytes .../nvim-2/nvim/undodir/%home%coast%piss%makefile | Bin 0 -> 2156 bytes .../undodir/%home%coast%piss%pissrc.example.lua | Bin 0 -> 1013 bytes .../nvim-2/nvim/undodir/%home%coast%piss%src%chd.1 | Bin 0 -> 1185 bytes .../nvim/undodir/%home%coast%piss%src%daemon.c | Bin 0 -> 9783 bytes .../nvim/undodir/%home%coast%piss%src%piss.1 | Bin 0 -> 3604 bytes ...ome%coast%projects%c%catter%.git%COMMIT_EDITMSG | Bin 0 -> 633 bytes .../%home%coast%projects%c%catter%.gitignore | Bin 0 -> 2099 bytes .../undodir/%home%coast%projects%c%catter%README | Bin 0 -> 2145 bytes .../undodir/%home%coast%projects%c%catter%main.c | Bin 0 -> 733 bytes .../undodir/%home%coast%projects%c%catter%makefile | Bin 0 -> 7122 bytes .../%home%coast%projects%c%catter%src%main.c | Bin 0 -> 10220 bytes ...e%coast%projects%c%compteur%.git%COMMIT_EDITMSG | Bin 0 -> 1333 bytes .../%home%coast%projects%c%compteur%.gitignore | Bin 0 -> 849 bytes .../%home%coast%projects%c%compteur%LICENSE | Bin 0 -> 14067 bytes .../undodir/%home%coast%projects%c%compteur%README | Bin 0 -> 3124 bytes .../%home%coast%projects%c%compteur%src%main.c | Bin 0 -> 104815 bytes .../nvim/undodir/%home%coast%projects%c%ct%main.c | Bin 0 -> 77446 bytes .../undodir/%home%coast%projects%c%ct%makefile | Bin 0 -> 597 bytes .../nvim/undodir/%home%coast%projects%c%ct%rand | Bin 0 -> 7854 bytes .../undodir/%home%coast%projects%c%ct%src%input.c | Bin 0 -> 13032 bytes .../undodir/%home%coast%projects%c%ct%src%main.c | Bin 0 -> 20231 bytes .../undodir/%home%coast%projects%c%cterm%cterm.c | Bin 0 -> 137301 bytes ...oast%projects%c%gl%Valkhaus%.git%COMMIT_EDITMSG | Bin 0 -> 1116 bytes .../%home%coast%projects%c%gl%Valkhaus%.gitignore | Bin 0 -> 1611 bytes .../%home%coast%projects%c%gl%Valkhaus%build.sh | Bin 0 -> 943 bytes .../%home%coast%projects%c%gl%Valkhaus%main.c | Bin 0 -> 100477 bytes .../nvim/undodir/%home%coast%projects%c%makefile | Bin 0 -> 1084 bytes .../undodir/%home%coast%projects%c%makefile-opt | Bin 0 -> 21347 bytes .../undodir/%home%coast%projects%c%template-opt.c | Bin 0 -> 8003 bytes .../undodir/%home%coast%projects%c%vk%Valk%main.c | Bin 0 -> 30066 bytes .../%home%coast%projects%c%vk%Valk%makefile | Bin 0 -> 2525 bytes .../%home%coast%projects%c%vk%Valk%shader.frag | Bin 0 -> 6075 bytes .../%home%coast%projects%c%vk%Valk%shader.vert | Bin 0 -> 4684 bytes .../undodir/%home%coast%projects%eul-license%v1 | Bin 0 -> 2183 bytes ...projects%ruby%vim-asifaiusf%.git%COMMIT_EDITMSG | Bin 0 -> 579 bytes ...ome%coast%projects%ruby%vim-asifaiusf%README.md | Bin 0 -> 2694 bytes ...ast%projects%ruby%vim-scion%.git%COMMIT_EDITMSG | Bin 0 -> 579 bytes .../%home%coast%projects%ruby%vim-scion%README | Bin 0 -> 8145 bytes .../%home%coast%projects%ruby%vim-scion%README.md | Bin 0 -> 19866 bytes .../%home%coast%projects%ruby%vim-scion%Rakefile | Bin 0 -> 2638 bytes .../%home%coast%projects%ruby%vim-scion%config.rb | Bin 0 -> 4470 bytes .../%home%coast%projects%ruby%vim-scion%scion.rb | Bin 0 -> 7612 bytes ...%home%coast%projects%ruby%wayland-rec%config.rb | Bin 0 -> 1796 bytes .../%home%coast%projects%ruby%wayland-rec%main.rb | Bin 0 -> 16216 bytes config/nvim-2/nvim/undodir/%home%coast%shit.sh | Bin 0 -> 1676 bytes .../nvim/undodir/%mnt%Home%dotfiles%.gitignore | Bin 0 -> 921 bytes config/nvim-2/nvim/vscript/key.vim | 2 + config/nvim-2/nvim/vscript/lua.vim | 87 + config/nvim-2/nvim/vscript/scp.vim | 29 + config/nvim-2/nvim/vscript/theme.vim | 61 + config/nvim-2/pack-bak/graft/start/LuaSnip | 1 + config/nvim-2/pack-bak/graft/start/cmp-buffer | 1 + config/nvim-2/pack-bak/graft/start/cmp-nvim-lsp | 1 + config/nvim-2/pack-bak/graft/start/nvim-autopairs | 1 + config/nvim-2/pack-bak/graft/start/nvim-cmp | 1 + config/nvim-2/pack-bak/graft/start/nvim-lspconfig | 1 + config/nvim-2/pack-bak/graft/start/vim-closetag | 1 + config/nvim-2/pack-bak/graft/start/vim-commentary | 1 + config/nvim-2/pack-bak/graft/start/vim-endwise | 1 + config/nvim-2/pack-bak/graft/start/vim-fugitive | 1 + config/nvim-2/pack-bak/graft/start/vim-polyglot | 1 + config/nvim-2/pack-bak/graft/start/vim-sensible | 1 + config/nvim-2/pack-bak/graft/start/vim-surround | 1 + config/nvim-2/pack-bak/graft/start/vim-vinegar | 1 + config/nvim-2/scion | 1 + config/nvim-2/scion_state.json | 19 + .../%home%coast%.config%alacritty%alacritty.toml | Bin 0 -> 6436 bytes .../%home%coast%.config%fastfetch%config.jsonc | Bin 0 -> 7709 bytes .../undodir/%home%coast%.config%niri%config.kdl | Bin 0 -> 1409 bytes .../%home%coast%.config%nvim%graft%config.rb | Bin 0 -> 18913 bytes .../undodir/%home%coast%.config%nvim%init.vim | Bin 0 -> 100132 bytes .../undodir/%home%coast%.config%nvim%key.vim | Bin 0 -> 5683 bytes .../undodir/%home%coast%.config%nvim%test.sh | Bin 0 -> 3475 bytes .../%home%coast%.config%nvim%vscript%lsp.vim | Bin 0 -> 5713 bytes .../%home%coast%.config%nvim%vscript%lua.vim | Bin 0 -> 17917 bytes .../%home%coast%.config%nvim%vscript%scp.vim | Bin 0 -> 30059 bytes .../%home%coast%.config%waybar%config.jsonc | Bin 0 -> 1630 bytes ...e%coast%.config%xdg-desktop-portal%portals.conf | Bin 0 -> 2165 bytes config/nvim-2/undodir/%home%coast%.zshrc | Bin 0 -> 1821 bytes config/nvim-2/undodir/%home%coast%DEVLIST | Bin 0 -> 4767 bytes config/nvim-2/undodir/%home%coast%main.c | Bin 0 -> 42611 bytes config/nvim-2/undodir/%home%coast%pertree | Bin 0 -> 5517 bytes ...ome%coast%projects%c%catter%.git%COMMIT_EDITMSG | Bin 0 -> 633 bytes .../%home%coast%projects%c%catter%.gitignore | Bin 0 -> 2099 bytes .../undodir/%home%coast%projects%c%catter%README | Bin 0 -> 2145 bytes .../undodir/%home%coast%projects%c%catter%main.c | Bin 0 -> 733 bytes .../undodir/%home%coast%projects%c%catter%makefile | Bin 0 -> 7122 bytes .../%home%coast%projects%c%catter%src%main.c | Bin 0 -> 10220 bytes .../undodir/%home%coast%projects%c%makefile-opt | Bin 0 -> 21347 bytes .../undodir/%home%coast%projects%c%template-opt.c | Bin 0 -> 8003 bytes ...ast%projects%ruby%vim-scion%.git%COMMIT_EDITMSG | Bin 0 -> 579 bytes .../%home%coast%projects%ruby%vim-scion%README | Bin 0 -> 8145 bytes .../%home%coast%projects%ruby%vim-scion%README.md | Bin 0 -> 19866 bytes .../%home%coast%projects%ruby%vim-scion%Rakefile | Bin 0 -> 2638 bytes .../%home%coast%projects%ruby%vim-scion%config.rb | Bin 0 -> 4470 bytes .../%home%coast%projects%ruby%vim-scion%scion.rb | Bin 0 -> 7612 bytes ...%home%coast%projects%ruby%wayland-rec%config.rb | Bin 0 -> 1796 bytes .../%home%coast%projects%ruby%wayland-rec%main.rb | Bin 0 -> 16216 bytes config/nvim-2/vscript/key.vim | 2 + config/nvim-2/vscript/lua.vim | 122 + config/nvim-2/vscript/scp.vim | 29 + config/nvim-root/init.lua | 168 ++ config/picom/picom-animations.conf | 310 +++ config/picom/picom.conf | 151 + config/piss/pissrc | 4 + config/plugged/plug.vim | 2877 ++++++++++++++++++++ config/plugin/config.vim | 1 + config/qtile/config.py | 154 ++ config/qutebrowser/autoconfig.yml | 10 + config/qutebrowser/bookmarks/urls | 0 config/qutebrowser/config.py | 47 + config/qutebrowser/greasemonkey/yt-ads.js | 19 + config/qutebrowser/quickmarks | 0 config/rofi/config.rasi | 64 + config/rofi/gruvbox.rasi | 61 + config/rofi/rofi/config.rasi | 61 + config/shell/aliases | 45 + config/shell/exports | 7 + config/shell/shell/aliases | 53 + config/shell/shell/aliases.backup | 27 + config/shell/shell/exports | 8 + config/shell/shell/exports.backup | 4 + config/starship.toml | 36 + config/sway/config | 131 + config/sxhkd/sxhkdrc | 18 + config/systemd/emacsd.service | 11 + config/tmux/tmux.conf | 67 + config/waybar-2/config.jsonc | 27 + config/waybar-2/style.css | 42 + config/waybar-2/waybar/config.jsonc | 154 ++ config/waybar-2/waybar/style.css | 207 ++ config/waybar-2/waybar/window.sh | 77 + config/waybar/config.jsonc | 107 + config/waybar/style.css | 82 + config/wofi/config | 32 + config/wofi/style.css | 59 + config/xmobar/xmobarrc | 13 + config/xmonad/xmonad.hs | 51 + 424 files changed, 9773 insertions(+) create mode 100644 config/alacritty/alacritty.toml create mode 100755 config/bspwm/bspwmrc create mode 100755 config/btop/btop.conf create mode 100755 config/btop/themes/coasteen.theme create mode 100755 config/btop/themes/dracula.theme create mode 100755 config/btop/themes/gruvbox.theme create mode 100755 config/btop/themes/kyli0x.theme create mode 100755 config/dunst/dunst/dunstrc create mode 100755 config/dunst/dunstrc create mode 100755 config/dunst/dunstrc~ create mode 100755 config/eww/eww.scss create mode 100755 config/eww/eww.yuck create mode 100755 config/eww/eww_vars.yuck create mode 100755 config/eww/eww_widgets.yuck create mode 100755 config/eww/images/gif1.gif create mode 100755 config/eww/images/gif2.gif create mode 100755 config/eww/scripts/calendar.sh create mode 100755 config/eww/scripts/day_format.sh create mode 100755 config/eww/scripts/daytype.sh create mode 100755 config/eww/scripts/month_format.sh create mode 100755 config/eww/scripts/start.sh create mode 100755 config/eww/scripts/year_format.sh create mode 120000 config/foot/foot.ini create mode 100755 config/foot/foot.ini.home-backup create mode 100755 config/home-manager/README.md create mode 100755 config/home-manager/flake.lock create mode 100755 config/home-manager/flake.nix create mode 100755 config/home-manager/home.nix create mode 100644 config/hypr/hypridle.conf create mode 100755 config/hypr/hyprland.conf create mode 100644 config/hypr/hyprlock.conf create mode 100755 config/hypr/hyprpaper.conf create mode 120000 config/kitty/.#kitty.conf create mode 100755 config/kitty/kitty.conf create mode 100755 config/mako/.github/issue_template.md create mode 100755 config/mako/.github/pull_request_template.md create mode 100755 config/mako/config create mode 100755 config/micro/bindings.json create mode 100755 config/micro/buffers/history create mode 100755 config/micro/settings.json create mode 100755 config/mksymlink.conf create mode 100755 config/mutt/color.muttrc create mode 100755 config/mutt/muttrc create mode 100755 config/neofetch/config.conf create mode 100644 config/niri-2/config.kdl create mode 100755 config/niri/config.kdl create mode 100755 config/nushell/config.nu create mode 100755 config/nushell/starship.nu create mode 100755 config/nvim-1/init.lua create mode 100755 config/nvim-1/lazy-lock.json create mode 100755 config/nvim-1/lua/config.lua create mode 100755 config/nvim-1/lua/plugins/catppuccin/init.lua create mode 100755 config/nvim-1/lua/plugins/lazy/init.lua create mode 100755 config/nvim-1/lua/plugins/lazy/plugins.lua create mode 100755 config/nvim-1/lua/plugins/lsp/init.lua create mode 100755 config/nvim-1/lua/plugins/lualine/init.lua create mode 100755 config/nvim-1/lua/plugins/nvim-tree/init.lua create mode 100755 config/nvim-1/lua/plugins/render-markdown/init.lua create mode 100755 config/nvim-1/lua/plugins/telescope/init.lua create mode 100755 config/nvim-1/lua/plugins/treesitter/init.lua create mode 100755 config/nvim-1/lua/plugins/whichkey/init.lua create mode 100755 config/nvim-1/lua/status_line/init.lua create mode 100644 config/nvim-1/undo/%home%coast%.Xdefaults create mode 100644 config/nvim-1/undo/%home%coast%.config%Element%electron-config.json create mode 100644 config/nvim-1/undo/%home%coast%.config%alacritty%alacritty.toml create mode 100644 config/nvim-1/undo/%home%coast%.config%dunst%dunstrc create mode 100644 config/nvim-1/undo/%home%coast%.config%eww%_colors.scss create mode 100644 config/nvim-1/undo/%home%coast%.config%eww%eww.scss create mode 100644 config/nvim-1/undo/%home%coast%.config%eww%eww.yuck create mode 100644 config/nvim-1/undo/%home%coast%.config%eww%scripts%get-active-workspace.sh create mode 100644 config/nvim-1/undo/%home%coast%.config%eww%scripts%get-workspaces.sh create mode 100644 config/nvim-1/undo/%home%coast%.config%fht%compositor.toml create mode 100644 config/nvim-1/undo/%home%coast%.config%foot%foot.ini create mode 100644 config/nvim-1/undo/%home%coast%.config%hypr%hypridle.conf create mode 100644 config/nvim-1/undo/%home%coast%.config%hypr%hyprland.conf create mode 100644 config/nvim-1/undo/%home%coast%.config%hypr%hyprlock.conf create mode 100644 config/nvim-1/undo/%home%coast%.config%kwm%config.zon create mode 100644 config/nvim-1/undo/%home%coast%.config%mako%config create mode 100644 config/nvim-1/undo/%home%coast%.config%mozilla%firefox%8kysq72s.default-release%chrome%userChrome.css create mode 100644 config/nvim-1/undo/%home%coast%.config%neofetch%config.conf create mode 100644 config/nvim-1/undo/%home%coast%.config%nvim%lua%plugins%catppuccin%init.lua create mode 100644 config/nvim-1/undo/%home%coast%.config%nvim%lua%plugins%lazy%plugins.lua create mode 100644 config/nvim-1/undo/%home%coast%.config%picom%picom-animations.conf create mode 100644 config/nvim-1/undo/%home%coast%.config%picom%picom.conf create mode 100644 config/nvim-1/undo/%home%coast%.config%piss%pissrc create mode 100644 config/nvim-1/undo/%home%coast%.config%quickshell%clock.qml create mode 100644 config/nvim-1/undo/%home%coast%.config%quickshell%currentsong.qml create mode 100644 config/nvim-1/undo/%home%coast%.config%quickshell%separator.qml create mode 100644 config/nvim-1/undo/%home%coast%.config%quickshell%shell.qml create mode 100644 config/nvim-1/undo/%home%coast%.config%quickshell%workspaces.qml create mode 100644 config/nvim-1/undo/%home%coast%.config%river%init create mode 100644 config/nvim-1/undo/%home%coast%.config%rofi%config.rasi create mode 100644 config/nvim-1/undo/%home%coast%.config%scrobbler%config.ini create mode 100644 config/nvim-1/undo/%home%coast%.config%sway%config create mode 100644 config/nvim-1/undo/%home%coast%.config%tym%config.lua create mode 100644 config/nvim-1/undo/%home%coast%.config%tym%theme.lua create mode 100644 config/nvim-1/undo/%home%coast%.config%waybar%config.jsonc create mode 100644 config/nvim-1/undo/%home%coast%.config%waybar%style.css create mode 100644 config/nvim-1/undo/%home%coast%.curlrc create mode 100644 config/nvim-1/undo/%home%coast%.local%share%American Truck Simulator%config.cfg create mode 100644 config/nvim-1/undo/%home%coast%.local%share%applications%element-desktop.desktop create mode 100644 config/nvim-1/undo/%home%coast%.local%share%applications%firefox-bin.desktop create mode 100644 config/nvim-1/undo/%home%coast%.local%share%applications%im.riot.Riot.desktop create mode 100644 config/nvim-1/undo/%home%coast%.local%share%flatpak%app%im.riot.Riot%x86_64%stable%42f010911a82616b14d9f36a8341652b349552a67ba14b8e67fd432e18c37561%export%share%applications%im.riot.Riot.desktop create mode 100644 config/nvim-1/undo/%home%coast%.local%src%.git%COMMIT_EDITMSG create mode 100755 config/nvim-1/undo/%home%coast%.local%src%config%nvim%lua%config.lua create mode 100644 config/nvim-1/undo/%home%coast%.local%src%config%sway%config create mode 100755 config/nvim-1/undo/%home%coast%.local%src%config%waybar%config.jsonc create mode 100755 config/nvim-1/undo/%home%coast%.local%src%config%waybar%style.css create mode 100644 config/nvim-1/undo/%home%coast%.local%src%dmenu%config.h create mode 100644 config/nvim-1/undo/%home%coast%.local%src%dmenu%config.mk create mode 100644 config/nvim-1/undo/%home%coast%.local%src%dmenu%dmenu.c create mode 100644 config/nvim-1/undo/%home%coast%.local%src%dmenu%drw.c create mode 100644 config/nvim-1/undo/%home%coast%.local%src%dwm%config.h create mode 100644 config/nvim-1/undo/%home%coast%.local%src%dwm%config.mk create mode 100644 config/nvim-1/undo/%home%coast%.local%src%dwm%patches.h create mode 100644 config/nvim-1/undo/%home%coast%.local%src%local%bin%mpc-shuf.sh create mode 100644 config/nvim-1/undo/%home%coast%.local%src%local%bin%screenie-wlr create mode 100644 config/nvim-1/undo/%home%coast%.local%src%local%bin%sober create mode 100644 config/nvim-1/undo/%home%coast%.local%src%local%bin%swap.start create mode 100644 config/nvim-1/undo/%home%coast%.local%src%local%bin%swap.stop create mode 100644 config/nvim-1/undo/%home%coast%.local%src%local%bin%updateriver create mode 100644 config/nvim-1/undo/%home%coast%.local%src%local%bin%updateriver.sh create mode 100644 config/nvim-1/undo/%home%coast%.local%src%local%bin%upl create mode 100755 config/nvim-1/undo/%home%coast%.local%src%local%bin%uwuify.awk create mode 100644 config/nvim-1/undo/%home%coast%.local%src%slstatus%config.h create mode 100644 config/nvim-1/undo/%home%coast%.local%src%slstatus%config.mk create mode 100644 config/nvim-1/undo/%home%coast%.local%src%st%config.h create mode 100644 config/nvim-1/undo/%home%coast%.local%src%st%config.mk create mode 100644 config/nvim-1/undo/%home%coast%.mpdconf create mode 100644 config/nvim-1/undo/%home%coast%.rtorrent.rc create mode 100644 config/nvim-1/undo/%home%coast%.var%app%org.vinegarhq.Sober%config%sober%config.json create mode 100755 config/nvim-1/undo/%home%coast%.wezterm.lua create mode 100644 config/nvim-1/undo/%home%coast%.xinitrc create mode 100644 config/nvim-1/undo/%home%coast%.zprofile create mode 100644 config/nvim-1/undo/%home%coast%.zshrc create mode 100644 config/nvim-1/undo/%home%coast%Games%Red Dead Redemption 2%launch.sh create mode 100644 config/nvim-1/undo/%home%coast%NOTES create mode 100644 config/nvim-1/undo/%home%coast%Projects%X%term%term create mode 100644 config/nvim-1/undo/%home%coast%Projects%X%term%xterm.c create mode 100644 config/nvim-1/undo/%home%coast%Projects%abcl%main.cl create mode 100644 config/nvim-1/undo/%home%coast%Projects%gtk%main.c create mode 100644 config/nvim-1/undo/%home%coast%Projects%py%ashscrobble create mode 100644 config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%.git%COMMIT_EDITMSG create mode 100644 config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%LICENSE create mode 100644 config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%ashscrobble.py create mode 100644 config/nvim-1/undo/%home%coast%Projects%py%dmenu.lua create mode 100644 config/nvim-1/undo/%home%coast%Projects%py%dmenu.py create mode 100644 config/nvim-1/undo/%home%coast%Projects%pylua%dmenu.lua create mode 100644 config/nvim-1/undo/%home%coast%Projects%river%kwm%config.def.zon create mode 100644 config/nvim-1/undo/%home%coast%Projects%river%river%build.zig.zon create mode 100755 config/nvim-1/undo/%home%coast%Projects%rs%guessing_game%.gitignore create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%config.h create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%main.py create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%window.c create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wlbar%main.c create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%.git%COMMIT_EDITMSG create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%.gitignore create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%config.h create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%main.c create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%makefile create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wlclock.c create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wled%.git%COMMIT_EDITMSG create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wled%.gitignore create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wled%LICENSE create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wled%README create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wled%build.sh create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wled%client.c create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wled%config.h create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%wlindow%client.c create mode 100644 config/nvim-1/undo/%home%coast%Projects%wayland%x11alt.c create mode 100644 config/nvim-1/undo/%home%coast%ashos%linux%.config create mode 100644 config/nvim-1/undo/%home%coast%ashos%syslinux.cfg create mode 100644 config/nvim-1/undo/%home%coast%conduwuit create mode 100644 config/nvim-1/undo/%home%coast%driver%driver.c create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%.git%COMMIT_EDITMSG create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%.gitignore create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%Makefile create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%build.sh create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%makefile create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%src%compositor.c create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%src%config.h create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%src%include%compositor.h create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%src%include%keybinds.h create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%src%include%screenshot.h create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%src%keybinds.c create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%src%keybinds.h create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%src%screenshot.c create mode 100644 config/nvim-1/undo/%home%coast%git%compositor%src%util.c create mode 100644 config/nvim-1/undo/%home%coast%git%hst%config.h create mode 100644 config/nvim-1/undo/%home%coast%git%neuswc%config.mk create mode 100644 config/nvim-1/undo/%home%coast%git%neuswc%libswc%compositor.h create mode 100644 config/nvim-1/undo/%home%coast%git%neuswc%libswc%output.h create mode 100644 config/nvim-1/undo/%home%coast%git%neuswc%libswc%pointer.h create mode 100644 config/nvim-1/undo/%home%coast%git%neuswc%libswc%util.h create mode 100644 config/nvim-1/undo/%home%coast%git%neuwld%config.mk create mode 100644 config/nvim-1/undo/%home%coast%git%swc%config.mk create mode 100644 config/nvim-1/undo/%home%coast%git%swcshot%main.c create mode 100644 config/nvim-1/undo/%home%coast%git%terminal%Makefile create mode 100644 config/nvim-1/undo/%home%coast%git%terminal%main.c create mode 100644 config/nvim-1/undo/%home%coast%git%wld%config.mk create mode 100644 config/nvim-1/undo/%home%coast%git%wsxwm%Makefile create mode 100644 config/nvim-1/undo/%home%coast%git%wsxwm%source%include%wsxwm.h create mode 100644 config/nvim-1/undo/%home%coast%git%wsxwm%source%test.diff create mode 100644 config/nvim-1/undo/%home%coast%git%wsxwm%source%wsxwm.c create mode 100644 config/nvim-1/undo/%home%coast%hwfetch create mode 100644 config/nvim-1/undo/%home%coast%main.bash create mode 100644 config/nvim-1/undo/%home%coast%main.c create mode 100644 config/nvim-1/undo/%home%coast%main.lua create mode 100644 config/nvim-1/undo/%home%coast%royal create mode 100644 config/nvim-1/undo/%home%coast%shared%loader.c create mode 100644 config/nvim-1/undo/%home%coast%shared%shared.c create mode 100644 config/nvim-1/undo/%home%coast%test.py create mode 160000 config/nvim-2/graft create mode 100644 config/nvim-2/init.vim create mode 100644 config/nvim-2/nvim/init.vim create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/LuaSnip create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/cmp-buffer create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/cmp-nvim-lsp create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/nvim-autopairs create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/nvim-cmp create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/nvim-lspconfig create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/vim-closetag create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/vim-commentary create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/vim-endwise create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/vim-fugitive create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/vim-polyglot create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/vim-sensible create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/vim-surround create mode 160000 config/nvim-2/nvim/pack-bak/graft/start/vim-vinegar create mode 160000 config/nvim-2/nvim/pack/scion/start/LuaSnip create mode 160000 config/nvim-2/nvim/pack/scion/start/cmp-buffer create mode 160000 config/nvim-2/nvim/pack/scion/start/cmp-nvim-lsp create mode 160000 config/nvim-2/nvim/pack/scion/start/nvim-autopairs create mode 160000 config/nvim-2/nvim/pack/scion/start/nvim-cmp create mode 160000 config/nvim-2/nvim/pack/scion/start/nvim-colorizer.lua create mode 160000 config/nvim-2/nvim/pack/scion/start/nvim-lspconfig create mode 160000 config/nvim-2/nvim/pack/scion/start/nvim-treesitter create mode 160000 config/nvim-2/nvim/pack/scion/start/vim-closetag create mode 160000 config/nvim-2/nvim/pack/scion/start/vim-commentary create mode 160000 config/nvim-2/nvim/pack/scion/start/vim-endwise create mode 160000 config/nvim-2/nvim/pack/scion/start/vim-fugitive create mode 160000 config/nvim-2/nvim/pack/scion/start/vim-polyglot create mode 160000 config/nvim-2/nvim/pack/scion/start/vim-sensible create mode 160000 config/nvim-2/nvim/pack/scion/start/vim-surround create mode 160000 config/nvim-2/nvim/pack/scion/start/vim-vinegar create mode 160000 config/nvim-2/nvim/scion create mode 100644 config/nvim-2/nvim/scion_state.json create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%alacritty%alacritty.toml create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%fastfetch%config.jsonc create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%niri%config.kdl create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%nvim%graft%config.rb create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%nvim%init.vim create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%nvim%key.vim create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%nvim%scion%config.rb create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%nvim%scion%scion.rb create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%nvim%test.sh create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%lsp.vim create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%lua.vim create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%scp.vim create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%theme.vim create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%rofi%config.rasi create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%starship.toml create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%systemd%user%.#plasma-polkit-agent.servicec252b1882abfd1a3 create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%waybar%config.jsonc create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%waybar%style.css create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%waybar%window.sh create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.config%xdg-desktop-portal%portals.conf create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.local%share%applications%prismlauncher.desktop create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.local%share%applications%throne.desktop create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.zsh.d%zsh-syntaxhighlighting.zsh create mode 100644 config/nvim-2/nvim/undodir/%home%coast%.zshrc create mode 100644 config/nvim-2/nvim/undodir/%home%coast%DEVLIST create mode 100644 config/nvim-2/nvim/undodir/%home%coast%Downloads%snispoof%config.json create mode 100644 config/nvim-2/nvim/undodir/%home%coast%PRISMLAUNCHER%instances%26.1.2%minecraft%config%DistantHorizons.toml create mode 100644 config/nvim-2/nvim/undodir/%home%coast%Xray%config.json create mode 100644 config/nvim-2/nvim/undodir/%home%coast%bash.sh create mode 100644 config/nvim-2/nvim/undodir/%home%coast%copyparty-setup.py create mode 100644 config/nvim-2/nvim/undodir/%home%coast%dlhub%goodlinks.txt create mode 100644 config/nvim-2/nvim/undodir/%home%coast%dlhub%script.py create mode 100644 config/nvim-2/nvim/undodir/%home%coast%main.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%mhr-cfw%config.json create mode 100644 config/nvim-2/nvim/undodir/%home%coast%pertree create mode 100644 config/nvim-2/nvim/undodir/%home%coast%piss%.git%COMMIT_EDITMSG create mode 100644 config/nvim-2/nvim/undodir/%home%coast%piss%LICENSE create mode 100644 config/nvim-2/nvim/undodir/%home%coast%piss%README.md create mode 100644 config/nvim-2/nvim/undodir/%home%coast%piss%makefile create mode 100644 config/nvim-2/nvim/undodir/%home%coast%piss%pissrc.example.lua create mode 100644 config/nvim-2/nvim/undodir/%home%coast%piss%src%chd.1 create mode 100644 config/nvim-2/nvim/undodir/%home%coast%piss%src%daemon.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%piss%src%piss.1 create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%.git%COMMIT_EDITMSG create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%.gitignore create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%README create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%main.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%makefile create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%src%main.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%.git%COMMIT_EDITMSG create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%.gitignore create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%LICENSE create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%README create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%src%main.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%main.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%makefile create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%rand create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%src%input.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%src%main.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%cterm%cterm.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%.git%COMMIT_EDITMSG create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%.gitignore create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%build.sh create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%main.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%makefile create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%makefile-opt create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%template-opt.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%main.c create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%makefile create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%shader.frag create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%shader.vert create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%eul-license%v1 create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-asifaiusf%.git%COMMIT_EDITMSG create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-asifaiusf%README.md create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%.git%COMMIT_EDITMSG create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%README create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%README.md create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%Rakefile create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%config.rb create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%scion.rb create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%ruby%wayland-rec%config.rb create mode 100644 config/nvim-2/nvim/undodir/%home%coast%projects%ruby%wayland-rec%main.rb create mode 100644 config/nvim-2/nvim/undodir/%home%coast%shit.sh create mode 100644 config/nvim-2/nvim/undodir/%mnt%Home%dotfiles%.gitignore create mode 100644 config/nvim-2/nvim/vscript/key.vim create mode 100644 config/nvim-2/nvim/vscript/lua.vim create mode 100644 config/nvim-2/nvim/vscript/scp.vim create mode 100644 config/nvim-2/nvim/vscript/theme.vim create mode 160000 config/nvim-2/pack-bak/graft/start/LuaSnip create mode 160000 config/nvim-2/pack-bak/graft/start/cmp-buffer create mode 160000 config/nvim-2/pack-bak/graft/start/cmp-nvim-lsp create mode 160000 config/nvim-2/pack-bak/graft/start/nvim-autopairs create mode 160000 config/nvim-2/pack-bak/graft/start/nvim-cmp create mode 160000 config/nvim-2/pack-bak/graft/start/nvim-lspconfig create mode 160000 config/nvim-2/pack-bak/graft/start/vim-closetag create mode 160000 config/nvim-2/pack-bak/graft/start/vim-commentary create mode 160000 config/nvim-2/pack-bak/graft/start/vim-endwise create mode 160000 config/nvim-2/pack-bak/graft/start/vim-fugitive create mode 160000 config/nvim-2/pack-bak/graft/start/vim-polyglot create mode 160000 config/nvim-2/pack-bak/graft/start/vim-sensible create mode 160000 config/nvim-2/pack-bak/graft/start/vim-surround create mode 160000 config/nvim-2/pack-bak/graft/start/vim-vinegar create mode 160000 config/nvim-2/scion create mode 100644 config/nvim-2/scion_state.json create mode 100644 config/nvim-2/undodir/%home%coast%.config%alacritty%alacritty.toml create mode 100644 config/nvim-2/undodir/%home%coast%.config%fastfetch%config.jsonc create mode 100644 config/nvim-2/undodir/%home%coast%.config%niri%config.kdl create mode 100644 config/nvim-2/undodir/%home%coast%.config%nvim%graft%config.rb create mode 100644 config/nvim-2/undodir/%home%coast%.config%nvim%init.vim create mode 100644 config/nvim-2/undodir/%home%coast%.config%nvim%key.vim create mode 100644 config/nvim-2/undodir/%home%coast%.config%nvim%test.sh create mode 100644 config/nvim-2/undodir/%home%coast%.config%nvim%vscript%lsp.vim create mode 100644 config/nvim-2/undodir/%home%coast%.config%nvim%vscript%lua.vim create mode 100644 config/nvim-2/undodir/%home%coast%.config%nvim%vscript%scp.vim create mode 100644 config/nvim-2/undodir/%home%coast%.config%waybar%config.jsonc create mode 100644 config/nvim-2/undodir/%home%coast%.config%xdg-desktop-portal%portals.conf create mode 100644 config/nvim-2/undodir/%home%coast%.zshrc create mode 100644 config/nvim-2/undodir/%home%coast%DEVLIST create mode 100644 config/nvim-2/undodir/%home%coast%main.c create mode 100644 config/nvim-2/undodir/%home%coast%pertree create mode 100644 config/nvim-2/undodir/%home%coast%projects%c%catter%.git%COMMIT_EDITMSG create mode 100644 config/nvim-2/undodir/%home%coast%projects%c%catter%.gitignore create mode 100644 config/nvim-2/undodir/%home%coast%projects%c%catter%README create mode 100644 config/nvim-2/undodir/%home%coast%projects%c%catter%main.c create mode 100644 config/nvim-2/undodir/%home%coast%projects%c%catter%makefile create mode 100644 config/nvim-2/undodir/%home%coast%projects%c%catter%src%main.c create mode 100644 config/nvim-2/undodir/%home%coast%projects%c%makefile-opt create mode 100644 config/nvim-2/undodir/%home%coast%projects%c%template-opt.c create mode 100644 config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%.git%COMMIT_EDITMSG create mode 100644 config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%README create mode 100644 config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%README.md create mode 100644 config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%Rakefile create mode 100644 config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%config.rb create mode 100644 config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%scion.rb create mode 100644 config/nvim-2/undodir/%home%coast%projects%ruby%wayland-rec%config.rb create mode 100644 config/nvim-2/undodir/%home%coast%projects%ruby%wayland-rec%main.rb create mode 100644 config/nvim-2/vscript/key.vim create mode 100644 config/nvim-2/vscript/lua.vim create mode 100644 config/nvim-2/vscript/scp.vim create mode 100755 config/nvim-root/init.lua create mode 100755 config/picom/picom-animations.conf create mode 100755 config/picom/picom.conf create mode 100755 config/piss/pissrc create mode 100755 config/plugged/plug.vim create mode 100755 config/plugin/config.vim create mode 100755 config/qtile/config.py create mode 100755 config/qutebrowser/autoconfig.yml create mode 100755 config/qutebrowser/bookmarks/urls create mode 100755 config/qutebrowser/config.py create mode 100755 config/qutebrowser/greasemonkey/yt-ads.js create mode 100755 config/qutebrowser/quickmarks create mode 100755 config/rofi/config.rasi create mode 100755 config/rofi/gruvbox.rasi create mode 100755 config/rofi/rofi/config.rasi create mode 100755 config/shell/aliases create mode 100755 config/shell/exports create mode 100755 config/shell/shell/aliases create mode 100755 config/shell/shell/aliases.backup create mode 100755 config/shell/shell/exports create mode 100755 config/shell/shell/exports.backup create mode 100755 config/starship.toml create mode 100755 config/sway/config create mode 100755 config/sxhkd/sxhkdrc create mode 100755 config/systemd/emacsd.service create mode 100755 config/tmux/tmux.conf create mode 100644 config/waybar-2/config.jsonc create mode 100644 config/waybar-2/style.css create mode 100755 config/waybar-2/waybar/config.jsonc create mode 100755 config/waybar-2/waybar/style.css create mode 100755 config/waybar-2/waybar/window.sh create mode 100755 config/waybar/config.jsonc create mode 100755 config/waybar/style.css create mode 100755 config/wofi/config create mode 100755 config/wofi/style.css create mode 100755 config/xmobar/xmobarrc create mode 100755 config/xmonad/xmonad.hs (limited to 'config') diff --git a/config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml new file mode 100644 index 0000000..41959d2 --- /dev/null +++ b/config/alacritty/alacritty.toml @@ -0,0 +1,16 @@ +[window] +dimensions = { columns = 100, lines = 25 } +dynamic_title = true +[terminal.shell] +program = "/usr/bin/zsh" +[font] +normal = { family = "JetBrains Mono Nerd Font", style = "Regular" } +size = 13.0 +[cursor] +style = { shape = "Underline", blinking = "Off" } +[colors] +primary = { background = "#121212", foreground = "#e0e0e0" } +cursor = { cursor = "#e0e0e0", text = "#121212" } +selection = { background = "#e0e0e0", text = "#121212" } +normal = { black = "#121212", red = "#d32f2f", green = "#4caf50", yellow = "#ffeb3b", blue = "#2196f3", magenta = "#9c27b0", cyan = "#00bcd4", white = "#e0e0e0" } +bright = { black = "#757575", red = "#f44336", green = "#8bc34a", yellow = "#ffc107", blue = "#3f51b5", magenta = "#673ab7", cyan = "#009688", white = "#ffffff" } diff --git a/config/bspwm/bspwmrc b/config/bspwm/bspwmrc new file mode 100755 index 0000000..e4a1ca9 --- /dev/null +++ b/config/bspwm/bspwmrc @@ -0,0 +1,82 @@ +#!/bin/sh +# my bspwmrc + +# desktops +bspc monitor -d I II III IV V VI VII VIII IX X + +# borders +bspc config focused_border_color "#383838" +bspc config normal_border_color "#282828" +bspc config border_width 2 + +# layout +bspc config window_gap 10 +bspc config split_ratio 0.5 +bspc config smart_gap true + +# focus behavior +bspc config focus_follows_pointer true +bspc config click_to_focus false +bspc config pointer_follows_monitor true + +# monitor / window behavior +bspc config remove_disabled_monitors true +bspc config auto_cancel true +bspc config auto_alternate true + +# padding +bspc config bottom_padding 0 + + +### {{{ find and stop processes + +pidb() { + pgrep -x "$1" >/dev/null 2>&1 +} + +run() { + proc="$1" + cmd="$2" + + if ! pidb "$proc"; then + sh -c "$cmd" & + fi +} + +### }}} + + +### {{{ rerun/start processes + +# piss +run "piss" "piss" + +# picom +run "picom" "picom --backend glx" + +# dunst +run "dunst" "dunst" + +# bspbar +run "bspbar" "bspbar" + +# polkit gnome +run "polkit-gnome-authentication-agent-1" \ + "/usr/libexec/polkit-gnome-authentication-agent-1" + +# xsettingsd +run "xsettingsd" "xsettingsd" + +# pulseaudio +run "pulseaudio" "pulseaudio --start" + +# pipewire +run "pipewire" "pipewire" + +# xtkhd +run "xtkhd" "xtkhd" + +xrandr --output eDP-1 --off +hsetroot -center "$HOME/Downloads/wall4.png" + +### }}} diff --git a/config/btop/btop.conf b/config/btop/btop.conf new file mode 100755 index 0000000..43cd05d --- /dev/null +++ b/config/btop/btop.conf @@ -0,0 +1,254 @@ +#? Config file for btop v. 1.4.3 + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "dracula" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = False + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = True + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = False + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = True + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = False + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. +shown_boxes = "cpu mem net proc" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "cpu lazy" + +#* Reverse sorting order, True or False. +proc_reversed = False + +#* Show processes as a tree. +proc_tree = False + +#* Use the cpu graph colors in the process list. +proc_colors = True + +#* Use a darkening gradient in the process list. +proc_gradient = True + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = False + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = True + +#* Show cpu graph for each process. +proc_cpu_graphs = True + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = False + +#* Show proc box on left side of screen instead of right. +proc_left = False + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = False + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = False + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "Auto" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "Auto" + +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = True + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = False + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = False + +#* Shows the system uptime in the CPU box. +show_uptime = True + +#* Show cpu temperature. +check_temp = True + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = True + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = False + +#* Show CPU frequency. +show_cpu_freq = True + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = True + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = True + +#* Show mem box below net box instead of above. +mem_below_net = False + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = True + +#* If swap memory should be shown in memory box. +show_swap = True + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = True + +#* If mem box should be split to also show disks info. +show_disks = True + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = True + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = True + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = False + +#* Set to true to show available disk space for privileged users. +disk_free_priv = False + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = True + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = False + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = False + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = True + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = True + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes. +base_10_bitrate = "Auto" + +#* Show battery stats in top right if battery is present. +show_battery = True + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Show power stats of battery next to charge indicator. +show_battery_watts = True + +#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = True + +#* Measure PCIe throughput on AMD cards, may impact performance on certain cards. +rsmi_measure_pcie_speeds = True + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = True + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" diff --git a/config/btop/themes/coasteen.theme b/config/btop/themes/coasteen.theme new file mode 100755 index 0000000..52e4152 --- /dev/null +++ b/config/btop/themes/coasteen.theme @@ -0,0 +1,89 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="" + +# Main text color +theme[main_fg]="#f8e8ec" + +# Title color for boxes +theme[title]="#f8e8ec" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#ff8aa0" + +# Background color of selected item in processes box +theme[selected_bg]="#7b3949" + +# Foreground color of selected item in processes box +theme[selected_fg]="#f8e8ec" + +# Color of inactive/disabled text +theme[inactive_fg]="#a56a79" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#c67090" + +# Background color of the percentage meters +theme[meter_bg]="#a65c6c" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#ff8aa0" + +# Cpu box outline color +theme[cpu_box]="#d77189" + +# Memory/disks box outline color +theme[mem_box]="#d77189" + +# Net up/down box outline color +theme[net_box]="#d77189" + +# Processes box outline color +theme[proc_box]="#d77189" + +# Box divider line and small boxes line color +theme[div_line]="#6f3b4a" + +# Temperature graph colors +theme[temp_start]="#ff8aa0" +theme[temp_mid]="#d77189" +theme[temp_end]="#a65c6c" + +# CPU graph colors +theme[cpu_start]="#ff8aa0" +theme[cpu_mid]="#d77189" +theme[cpu_end]="#a65c6c" + +# Mem/Disk free meter +theme[free_start]="#ff8aa0" +theme[free_mid]="#d77189" +theme[free_end]="#a65c6c" + +# Mem/Disk cached meter +theme[cached_start]="#ff8aa0" +theme[cached_mid]="#d77189" +theme[cached_end]="#a65c6c" + +# Mem/Disk available meter +theme[available_start]="#ff8aa0" +theme[available_mid]="#d77189" +theme[available_end]="#a65c6c" + +# Mem/Disk used meter +theme[used_start]="#ff8aa0" +theme[used_mid]="#d77189" +theme[used_end]="#a65c6c" + +# Download graph colors +theme[download_start]="#ff8aa0" +theme[download_mid]="#d77189" +theme[download_end]="#a65c6c" + +# Upload graph colors +theme[upload_start]="#f19bb4" +theme[upload_mid]="#d77189" +theme[upload_end]="#a65c6c" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#ff8aa0" +theme[process_mid]="#d77189" +theme[process_end]="#c67090" diff --git a/config/btop/themes/dracula.theme b/config/btop/themes/dracula.theme new file mode 100755 index 0000000..5768e5f --- /dev/null +++ b/config/btop/themes/dracula.theme @@ -0,0 +1,89 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#282a36" + +# Main text color +theme[main_fg]="#f8f8f2" + +# Title color for boxes +theme[title]="#f8f8f2" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#6272a4" + +# Background color of selected item in processes box +theme[selected_bg]="#ff79c6" + +# Foreground color of selected item in processes box +theme[selected_fg]="#f8f8f2" + +# Color of inactive/disabled text +theme[inactive_fg]="#44475a" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#f8f8f2" + +# Background color of the percentage meters +theme[meter_bg]="#44475a" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#bd93f9" + +# Cpu box outline color +theme[cpu_box]="#bd93f9" + +# Memory/disks box outline color +theme[mem_box]="#50fa7b" + +# Net up/down box outline color +theme[net_box]="#ff5555" + +# Processes box outline color +theme[proc_box]="#8be9fd" + +# Box divider line and small boxes line color +theme[div_line]="#44475a" + +# Temperature graph colors +theme[temp_start]="#bd93f9" +theme[temp_mid]="#ff79c6" +theme[temp_end]="#ff33a8" + +# CPU graph colors +theme[cpu_start]="#bd93f9" +theme[cpu_mid]="#8be9fd" +theme[cpu_end]="#50fa7b" + +# Mem/Disk free meter +theme[free_start]="#ffa6d9" +theme[free_mid]="#ff79c6" +theme[free_end]="#ff33a8" + +# Mem/Disk cached meter +theme[cached_start]="#b1f0fd" +theme[cached_mid]="#8be9fd" +theme[cached_end]="#26d7fd" + +# Mem/Disk available meter +theme[available_start]="#ffd4a6" +theme[available_mid]="#ffb86c" +theme[available_end]="#ff9c33" + +# Mem/Disk used meter +theme[used_start]="#96faaf" +theme[used_mid]="#50fa7b" +theme[used_end]="#0dfa49" + +# Download graph colors +theme[download_start]="#bd93f9" +theme[download_mid]="#50fa7b" +theme[download_end]="#8be9fd" + +# Upload graph colors +theme[upload_start]="#8c42ab" +theme[upload_mid]="#ff79c6" +theme[upload_end]="#ff33a8" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#50fa7b" +theme[process_mid]="#59b690" +theme[process_end]="#6272a4" diff --git a/config/btop/themes/gruvbox.theme b/config/btop/themes/gruvbox.theme new file mode 100755 index 0000000..8cd9d37 --- /dev/null +++ b/config/btop/themes/gruvbox.theme @@ -0,0 +1,92 @@ +#Bashtop gruvbox (https://github.com/morhetz/gruvbox) theme +#by BachoSeven + +# Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255" +# example for white: "#FFFFFF", "#ff" or "255 255 255". + +# All graphs and meters can be gradients +# For single color graphs leave "mid" and "end" variable empty. +# Use "start" and "end" variables for two color gradient +# Use "start", "mid" and "end" for three color gradient + +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#1d2021" + +# Main text color +theme[main_fg]="#a89984" + +# Title color for boxes +theme[title]="#ebdbb2" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#d79921" + +# Background color of selected items +theme[selected_bg]="#282828" + +# Foreground color of selected items +theme[selected_fg]="#fabd2f" + +# Color of inactive/disabled text +theme[inactive_fg]="#282828" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#585858" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#98971a" + +# Cpu box outline color +theme[cpu_box]="#a89984" + +# Memory/disks box outline color +theme[mem_box]="#a89984" + +# Net up/down box outline color +theme[net_box]="#a89984" + +# Processes box outline color +theme[proc_box]="#a89984" + +# Box divider line and small boxes line color +theme[div_line]="#a89984" + +# Temperature graph colors +theme[temp_start]="#458588" +theme[temp_mid]="#d3869b" +theme[temp_end]="#fb4394" + +# CPU graph colors +theme[cpu_start]="#b8bb26" +theme[cpu_mid]="#d79921" +theme[cpu_end]="#fb4934" + +# Mem/Disk free meter +theme[free_start]="#4e5900" +theme[free_mid]="" +theme[free_end]="#98971a" + +# Mem/Disk cached meter +theme[cached_start]="#458588" +theme[cached_mid]="" +theme[cached_end]="#83a598" + +# Mem/Disk available meter +theme[available_start]="#d79921" +theme[available_mid]="" +theme[available_end]="#fabd2f" + +# Mem/Disk used meter +theme[used_start]="#cc241d" +theme[used_mid]="" +theme[used_end]="#fb4934" + +# Download graph colors +theme[download_start]="#3d4070" +theme[download_mid]="#6c71c4" +theme[download_end]="#a3a8f7" + +# Upload graph colors +theme[upload_start]="#701c45" +theme[upload_mid]="#b16286" +theme[upload_end]="#d3869b" diff --git a/config/btop/themes/kyli0x.theme b/config/btop/themes/kyli0x.theme new file mode 100755 index 0000000..c955287 --- /dev/null +++ b/config/btop/themes/kyli0x.theme @@ -0,0 +1,92 @@ +#Bashtop Kyli0x Theme +#by Kyli0x + +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#222222" + +# Main text color +theme[main_fg]="#e8f6f5" + +# Title color for boxes +theme[title]="#e8f6f5" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#21d6c9" + +# Background color of selected item in processes box +theme[selected_bg]="#1aaba0" + +# Foreground color of selected item in processes box +theme[selected_fg]="#e8f6f5" + +# Color of inactive/disabled text +theme[inactive_fg]="#5ec4bc" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#ba1a84" + +# Background color of the percentage meters +theme[meter_bg]="#5ec4bc" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#21d6c9" + +# Cpu box outline color +theme[cpu_box]="#d486d4" + +# Memory/disks box outline color +theme[mem_box]="#d486d4" + +# Net up/down box outline color +theme[net_box]="#d486d4" + +# Processes box outline color +theme[proc_box]="#d486d4" + +# Box divider line and small boxes line color +theme[div_line]="#80638e" + +# Temperature graph colors +theme[temp_start]="#21d6c9" +theme[temp_mid]="#1aaba0" +theme[temp_end]="#5ec4bc" + +# CPU graph colors +theme[cpu_start]="#21d6c9" +theme[cpu_mid]="#1aaba0" +theme[cpu_end]="#5ec4bc" + +# Mem/Disk free meter +theme[free_start]="#21d6c9" +theme[free_mid]="#1aaba0" +theme[free_end]="#5ec4bc" + +# Mem/Disk cached meter +theme[cached_start]="#21d6c9" +theme[cached_mid]="#1aaba0" +theme[cached_end]="#5ec4bc" + +# Mem/Disk available meter +theme[available_start]="#21d6c9" +theme[available_mid]="#1aaba0" +theme[available_end]="#5ec4bc" + +# Mem/Disk used meter +theme[used_start]="#21d6c9" +theme[used_mid]="#1aaba0" +theme[used_end]="#5ec4bc" + +# Download graph colors +theme[download_start]="#21d6c9" +theme[download_mid]="#1aaba0" +theme[download_end]="#5ec4bc" + +# Upload graph colors +theme[upload_start]="#ec95ec" +theme[upload_mid]="#1aaba0" +theme[upload_end]="#5ec4bc" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#21d6c9" +theme[process_mid]="#1aaba0" +theme[process_end]="#ba1a84" diff --git a/config/dunst/dunst/dunstrc b/config/dunst/dunst/dunstrc new file mode 100755 index 0000000..768ba77 --- /dev/null +++ b/config/dunst/dunst/dunstrc @@ -0,0 +1,48 @@ +[global] +# Basic settings +font = Fira Code 10 +geometry = "300x100-10+55" # 10px from right edge, 55px from top +separator_height = 2 +frame_width = 4 +#corner_radius = 8 +grow_direction = up + +[urgency_low] +background = "#222222" # normbgcolor +foreground = "#bbbbbb" # normfgcolor +frame_color = "#444444" # normbordercolor +timeout = 5 +icon_position = left + +[urgency_normal] +background = "#722F37" # selbgcolor wine red yay! +foreground = "#eeeeee" # selfgcolor bright text +frame_color = "#722F37" # selbordercolor same wine red frame +timeout = 8 +icon_position = left + +[urgency_critical] +background = "#7B2D33" # slightly brighter wine red for critical +foreground = "#eeeeee" +frame_color = "#7B2D33" +timeout = 0 # stays until dismissed +icon_position = left + +[frame] +# subtle shadow for modern look +shadow = false +shadow_offset_x = -5 +shadow_offset_y = -5 +#shadow_radius = 12 +shadow_opacity = 0.7 +shadow_color = "#000000" + +[format] +# tweak layout to be modern and clean +title = "%s" +body = "%s" + +[mouse] +# allow click to close +close_on_click = true + diff --git a/config/dunst/dunstrc b/config/dunst/dunstrc new file mode 100755 index 0000000..84722cc --- /dev/null +++ b/config/dunst/dunstrc @@ -0,0 +1,48 @@ +[global] +# Basic settings +font = Fira Code 10 +geometry = "300x100-10+55" # 10px from right edge, 55px from top +separator_height = 2 +frame_width = 4 +#corner_radius = 8 +grow_direction = up + +[urgency_low] +background = "#222222" # normbgcolor +foreground = "#bbbbbb" # normfgcolor +frame_color = "#444444" # normbordercolor +timeout = 5 +icon_position = left + +[urgency_normal] +background = "#DB940A" # selbgcolor wine red yay! +foreground = "#222222" # selfgcolor bright text +frame_color = "#DB940A" # selbordercolor same wine red frame +timeout = 8 +icon_position = left + +[urgency_critical] +background = "#DB940A" # slightly brighter wine red for critical +foreground = "#eeeeee" +frame_color = "#DB940A" +timeout = 0 # stays until dismissed +icon_position = left + +[frame] +# subtle shadow for modern look +shadow = false +shadow_offset_x = -5 +shadow_offset_y = -5 +#shadow_radius = 12 +shadow_opacity = 0.7 +shadow_color = "#000000" + +[format] +# tweak layout to be modern and clean +title = "%s" +body = "%s" + +[mouse] +# allow click to close +close_on_click = true + diff --git a/config/dunst/dunstrc~ b/config/dunst/dunstrc~ new file mode 100755 index 0000000..3c92181 --- /dev/null +++ b/config/dunst/dunstrc~ @@ -0,0 +1,48 @@ +[global] +# Basic settings +font = Fira Code 10 +geometry = "300x100-10+55" # 10px from right edge, 55px from top +separator_height = 2 +frame_width = 4 +#corner_radius = 8 +grow_direction = up + +[urgency_low] +background = "#222222" # normbgcolor +foreground = "#bbbbbb" # normfgcolor +frame_color = "#444444" # normbordercolor +timeout = 5 +icon_position = left + +[urgency_normal] +background = "#DB940A" # selbgcolor wine red yay! +foreground = "#eeeeee" # selfgcolor bright text +frame_color = "#DB940A" # selbordercolor same wine red frame +timeout = 8 +icon_position = left + +[urgency_critical] +background = "#DB940A" # slightly brighter wine red for critical +foreground = "#eeeeee" +frame_color = "#DB940A" +timeout = 0 # stays until dismissed +icon_position = left + +[frame] +# subtle shadow for modern look +shadow = false +shadow_offset_x = -5 +shadow_offset_y = -5 +#shadow_radius = 12 +shadow_opacity = 0.7 +shadow_color = "#000000" + +[format] +# tweak layout to be modern and clean +title = "%s" +body = "%s" + +[mouse] +# allow click to close +close_on_click = true + diff --git a/config/eww/eww.scss b/config/eww/eww.scss new file mode 100755 index 0000000..3975a93 --- /dev/null +++ b/config/eww/eww.scss @@ -0,0 +1,63 @@ +* { + all: unset; + background: transparent; + font-family: "JetBrainsMono Nerd Font"; + border-radius: 10px; +} + +$bg: #111111; +$bg1: #111111; +$bg2: #26233a; +$fg: #ebbcba; +$fgdim: #6e6a86; +$accent: #9ccfd8; +$border: #ebbcba; + +.container { + background-color: $bg1; + border: 1px solid $border; + color: $fg; + border-radius: 10px; + padding: 6px; + opacity: 0.9; +} + +.button-label, .label { + font-size: 24px; + font-weight: bold; + color: $fg; +} + +.completelytrans { + background: none; +} + +.calendar-label { + font-size: 16px; + font-weight: bold; + color: $fg; +} + +window { + all: unset; + background: transparent; +} + +calendar, calendar.view, calendar.header { + all: unset; + background-color: $bg; + color: $fgdim; + font-size: 18px; + border-radius: 10px; +} + +calendar:indeterminate { + color: #665c54; +} + +calendar:selected { + background-color: $bg2; + border: 1px solid $accent; + color: $fg; + border-radius: 4px; +} diff --git a/config/eww/eww.yuck b/config/eww/eww.yuck new file mode 100755 index 0000000..1ab7c4e --- /dev/null +++ b/config/eww/eww.yuck @@ -0,0 +1,58 @@ +(include "eww_widgets.yuck") + +(defwindow calendar + :monitor 'HDMI-A-1' + :stacking "fg" + :geometry (geometry :x "1600" :y "810" :width "320" :height "250" :anchor "top right") + (calendar)) + +(defwindow year + :monitor 'HDMI-A-1' + :stacking "bg" + :geometry (geometry :x "15" :y "15" :width "100" :height "100" :anchor "top right") + (year)) + +(defwindow month + :monitor 'HDMI-A-1' + :stacking "bg" + :geometry (geometry :x "15" :y "125" :width "100" :height "100" :anchor "top right") + (month)) + +(defwindow day + :monitor 'HDMI-A-1' + :stacking "bg" + :geometry (geometry :x "15" :y "235" :width "100" :height "100" :anchor "top right") + (day)) + +(defwindow daytype + :monitor 'HDMI-A-1' + :stacking "bg" + :geometry (geometry :x "1805" :y "345" :width "100" :height "100" :achor "top right") + (daytype)) + +(defwindow gif1 + :monitor 'HDMI-A-1' + :windowtype "dock" + :stacking "bg" + :namespace "eww" + :geometry (geometry + :x "30px" + :y "30px" + :width "70px" + :height "70px" + :anchor "bottom right") + (gif1)) + +(defwindow gif2 + :monitor 'HDMI-A-1' + :windowtype "dock" + :stacking "bg" + :namespace "eww" + :geometry (geometry + :x "30px" + :y "250px" + :width "70px" + :height "70px" + :anchor "bottom right") + (gif2)) + diff --git a/config/eww/eww_vars.yuck b/config/eww/eww_vars.yuck new file mode 100755 index 0000000..35d807b --- /dev/null +++ b/config/eww/eww_vars.yuck @@ -0,0 +1,4 @@ +(defpoll DAY :interval "1s" '~/.config/eww/scripts/day_format.sh') +(defpoll MONTH :interval "1s" '~/.config/eww/scripts/month_format.sh') +(defpoll YEAR :interval "1s" '~/.config/eww/scripts/year_format.sh') +(defpoll DAYTYPE :interval "1s" '~/.config/eww/scripts/daytype.sh') diff --git a/config/eww/eww_widgets.yuck b/config/eww/eww_widgets.yuck new file mode 100755 index 0000000..d3fb0a0 --- /dev/null +++ b/config/eww/eww_widgets.yuck @@ -0,0 +1,21 @@ +(include "eww_vars.yuck") + +(defwidget day [] + (box :height "100" :width "100" :halign "center" :valign "center" :class "container" + (label :class "label" :text DAY))) +(defwidget month [] + (box :height "100" :width "100" :halign "center" :valign "center" :class "container" + (label :class "label" :text MONTH))) +(defwidget year [] + (box :height "100" :width "100" :halign "center" :valign "center" :class "container" + (label :class "label" :text YEAR))) +(defwidget daytype [] + (box :height "100" :width "100" :halign "center" :valign "center" :class "container" + (label :class "label" :text DAYTYPE))) +(defwidget gif1 [] + (box :halign "center" :valign "center" :class "container" + (image :path 'images/gif1.gif'))) + +(defwidget gif2 [] + (box :halign "center" :valign "center" :class "container" + (image :path 'images/gif2.gif'))) diff --git a/config/eww/images/gif1.gif b/config/eww/images/gif1.gif new file mode 100755 index 0000000..013df71 Binary files /dev/null and b/config/eww/images/gif1.gif differ diff --git a/config/eww/images/gif2.gif b/config/eww/images/gif2.gif new file mode 100755 index 0000000..f728b4f Binary files /dev/null and b/config/eww/images/gif2.gif differ diff --git a/config/eww/scripts/calendar.sh b/config/eww/scripts/calendar.sh new file mode 100755 index 0000000..ada469a --- /dev/null +++ b/config/eww/scripts/calendar.sh @@ -0,0 +1,2 @@ +#!bash +cal -m diff --git a/config/eww/scripts/day_format.sh b/config/eww/scripts/day_format.sh new file mode 100755 index 0000000..a3e715a --- /dev/null +++ b/config/eww/scripts/day_format.sh @@ -0,0 +1,14 @@ +#!/bin/sh +day_of_month=$(date +"%d") +day_of_month=$(echo $day_of_month | sed 's/^0*//') +if [[ $day_of_month -ge 11 && $day_of_month -le 13 ]]; then + suffix="th" +else + case $((day_of_month % 10)) in + 1) suffix="st" ;; + 2) suffix="nd" ;; + 3) suffix="rd" ;; + *) suffix="th" ;; + esac +fi +echo "${day_of_month}${suffix}" diff --git a/config/eww/scripts/daytype.sh b/config/eww/scripts/daytype.sh new file mode 100755 index 0000000..aad1cdc --- /dev/null +++ b/config/eww/scripts/daytype.sh @@ -0,0 +1,3 @@ +#!/bin/sh +day_type=$(date +"%a") +echo "$day_type" diff --git a/config/eww/scripts/month_format.sh b/config/eww/scripts/month_format.sh new file mode 100755 index 0000000..2eecb3f --- /dev/null +++ b/config/eww/scripts/month_format.sh @@ -0,0 +1,3 @@ +#!/bin/sh +month=$(date +"%b") +echo "$month" diff --git a/config/eww/scripts/start.sh b/config/eww/scripts/start.sh new file mode 100755 index 0000000..e032918 --- /dev/null +++ b/config/eww/scripts/start.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# Reload/Open eww +eww kill +eww daemon + +eww open year +eww open month +eww open day diff --git a/config/eww/scripts/year_format.sh b/config/eww/scripts/year_format.sh new file mode 100755 index 0000000..d8016be --- /dev/null +++ b/config/eww/scripts/year_format.sh @@ -0,0 +1,3 @@ +#!/bin/sh +year=$(date +"%Y") +echo "$year" diff --git a/config/foot/foot.ini b/config/foot/foot.ini new file mode 120000 index 0000000..875ed93 --- /dev/null +++ b/config/foot/foot.ini @@ -0,0 +1 @@ +/nix/store/ya9248ng717qf0ncbn6sbs9bai66g5xn-home-manager-files/.config/foot/foot.ini \ No newline at end of file diff --git a/config/foot/foot.ini.home-backup b/config/foot/foot.ini.home-backup new file mode 100755 index 0000000..351c040 --- /dev/null +++ b/config/foot/foot.ini.home-backup @@ -0,0 +1,40 @@ +font=Maple Mono:size=14 +pad=4x4 + +[colors] +alpha=1.0 +background=111111 + +[colors] +foreground=cdd6f4 +background=1e1e2e + +regular0=45475a +regular1=f38ba8 +regular2=a6e3a1 +regular3=f9e2af +regular4=89b4fa +regular5=f5c2e7 +regular6=94e2d5 +regular7=bac2de + +bright0=585b70 +bright1=f38ba8 +bright2=a6e3a1 +bright3=f9e2af +bright4=89b4fa +bright5=f5c2e7 +bright6=94e2d5 +bright7=a6adc8 + +16=fab387 +17=f5e0dc + +selection-foreground=cdd6f4 +selection-background=414356 + +search-box-no-match=11111b f38ba8 +search-box-match=cdd6f4 313244 + +jump-labels=11111b fab387 +urls=89b4fa diff --git a/config/home-manager/README.md b/config/home-manager/README.md new file mode 100755 index 0000000..edd92b3 --- /dev/null +++ b/config/home-manager/README.md @@ -0,0 +1,4 @@ +flakes are auto-generated by nix + + +by the way; these are for my machine :3 they're poorly written i just wanted to save them somewhere diff --git a/config/home-manager/flake.lock b/config/home-manager/flake.lock new file mode 100755 index 0000000..0935d23 --- /dev/null +++ b/config/home-manager/flake.lock @@ -0,0 +1,47 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1748227609, + "narHash": "sha256-SaSdslyo6UGDpPUlmrPA4dWOEuxCy2ihRN9K6BnqYsA=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "d23d20f55d49d8818ac1f1b2783671e8a6725022", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1748190013, + "narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "62b852f6c6742134ade1abdd2a21685fd617a291", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/config/home-manager/flake.nix b/config/home-manager/flake.nix new file mode 100755 index 0000000..2030861 --- /dev/null +++ b/config/home-manager/flake.nix @@ -0,0 +1,26 @@ +{ + description = "Home Manager configuration of avery"; + + inputs = { + nixpkgs.url = "nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = + { nixpkgs, home-manager, ... }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in + { + homeConfigurations."avery" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + + modules = [ ./home.nix ]; + + }; + }; +} diff --git a/config/home-manager/home.nix b/config/home-manager/home.nix new file mode 100755 index 0000000..08a103c --- /dev/null +++ b/config/home-manager/home.nix @@ -0,0 +1,195 @@ +# _ _ +#| |__ ___ _ __ ___ ___ _ __ (_)_ __ +#| '_ \ / _ \| '_ ` _ \ / _ \ | '_ \| \ \/ / +#| | | | (_) | | | | | | __/_| | | | |> < +#|_| |_|\___/|_| |_| |_|\___(_)_| |_|_/_/\_\ +#Coast's ~/.config/home-manager/home.nix +{ config, pkgs, ... }: +{ + home.username = "avery"; + home.homeDirectory = "/home/avery"; + home.stateVersion = "25.05"; + home.packages = with pkgs; [ + bat cowsay bat cmatrix bat cava cbonsai bat ksh bat tree hyfetch qutebrowser xonsh elvish openjdk btop htop cpufetch lm_sensors dysk dogdns ]; + home.file = { + }; + home.sessionVariables = { + EDITOR = "emacs"; + BROWSER = "brave"; + }; + programs.eza = { + enable = true; +}; + programs.bash = { + enable = true; + initExtra = '' + if [ "$(id -u)" = 0 ]; then PS1ICON='#'; else PS1ICON='$'; fi +PS1='\[\e[38;2;254;128;25m\][\[\e[38;2;235;219;178m\]\u\[\e[38;2;200;200;200m\]@\[\e[38;2;131;165;152m\]coast \[\e[38;2;235;219;178m\]\w\[\e[38;2;254;128;25m\]]'"$PS1ICON"'\[\e[0m\] ' + source "$HOME/.config/shell/aliases" + source "$HOME/.config/shell/exports" + ''; +}; + home.file.".config/bat/config".text = '' + --theme="Nord" + --style="numbers,changes,grid" + --paging=auto + ''; +#vim conf + home.file.".vimrc".text = '' + set number + set shiftwidth=4 + set tabstop=4 + set wrap + set cursorline + set linebreak + set termguicolors + syntax on + filetype plugin indent on + set ignorecase + set smartcase + set hlsearch + set incsearch + set autoindent + set expandtab + map :setlocal spell! spelllang=en_us + nnoremap :NERDTreeToggle + call plug#begin('~/.vim/plugged') + Plug 'tpope/vim-sensible' + Plug 'preservim/nerdtree' + Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } + Plug 'junegunn/fzf.vim' + Plug 'vim-airline/vim-airline' + Plug 'vim-airline/vim-airline-themes' + call plug#end() + set background=dark + ''; + home.file.".config/shell/exports".text = '' + export PATH=$HOME/.local/bin:$PATH + export PATH=$HOME/.luarocks/bin:$PATH + if [ -n "$ZSH_VERSION" ]; then + export ZSH="/home/avery/.oh-my-zsh" + fi + export NIXPKGS_ALLOW_UNFREE=1 + export EDITOR="emacs" + ''; + home.file.".config/shell/aliases".text = '' + #!/bin/sh + #general aliases + alias xi="doas xbps-install -S $1" + alias nf="clear && fastfetch" + alias ascdis="fastfetch --logo $1" + alias forge="su forgejo" + alias emoji="cat ~/.local/share/emoji | grep $1" + alias cst="emacs ~/.suckless/st/config.h" + alias las="ls" + alias lasa="ls -a" + alias lasal="ls -al" + alias anal="ls -ahl" + alias resmacs="systemctl --user restart emacsd" + alias smi="nvidia-smi" + alias src="source ~/.zshrc" + alias bat="sb-battery" + alias battery="sb-battery" + alias vimrc="vim .vimrc" + alias ri="ranger" + alias rim="ranger" + alias quit="exit" + alias :q="exit" + alias :q!="exit" + alias :Q="exit" + alias :Q!="exit" + alias :quit="exit" + alias :quit!="exit" + alias :QUIT="exit" + alias :QUIT!="exit" + alias q="exit" + alias fnl="fennel" + alias "push"="git push -u origin main" + alias irc="irssi" + alias hsw="home-manager switch --flake ~/.config/home-manager" + alias hsc="emacs ~/.config/home-manager/home.nix" + alias yell="echo" + alias chm="ecop cat ~/.config/home-manager/home.nix" + if [ -n "$ZSH_VERSION" ]; then + alias ed="ed -p '%: '" + else + alias ed="ed -p '$: '" + fi + alias weather="curl wttr.in/masjedsoleyman" + #typo/shortcut + alias c="clear" + alias cear="clear" + alias "cd.."="cd .." + alias claer="clear" + alias claer="clear" + alias clare="clear" + alias cleae="clear" + alias clera="clear" + alias hotp="htop" + ''; + home.file.".zshrc".text = '' + #!/usr/bin/zsh + HISTFILE=$HOME/.cache/zsh/history + SAVEHIST=100000000 + HISTSIZE=$SAVEHIST + setopt appendhistory + #tab completion + autoload -U compinit + zstyle ':completion:*' menu select + zmodload zsh/complist + compinit + _comp_options+=(globdots) + #oh my zsh + ZSH_THEME="gentoo" + plugins=(git) + export ZSH="$HOME/.oh-my-zsh" + source $ZSH/oh-my-zsh.sh + #eval + eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" + #source + source "$HOME/.config/shell/aliases" + source "$HOME/.config/shell/exports" + source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh + fpath=(/usr/share/zsh/site-functions $fpath) + source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh + #colors + autoload -U colors && colors + setopt prompt_subst + #prompt + [ "$(id -u)" = 0 ] && PS1ICON="#" || PS1ICON='%' + PROMPT='%{$(echo -e "\e[38;2;254;128;25m")%}[%{$(echo -e "\e[38;2;235;219;178m")%}%n%{$(echo -e "\e[38;2;200;200;200m")%}@%{$(echo -e "\e[38;2;131;165;152m")%}coast %{$(echo -e "\e[38;2;235;219;178m")%}%~%{$(echo -e "\e[38;2;254;128;25m")%}]%$PS1ICON%{$(echo -e "\e[0m")%} ' + ''; + + programs.alacritty = { + enable = true; + settings = { + window = { + padding = { + x = 4; + y = 4; + }; + decorations = "transparent"; + blur = true; + opacity = 0.9; + }; + font = { + normal = { + family = "monospace"; + }; + size = 9; + }; + colors = { +# primary = { +# background = "0x1e1e2e"; +# foreground = "0xcdd6f4"; +# }; + cursor = { + text = "0x1e1e2e"; + cursor = "0xcdd6f4"; + }; + }; + }; + }; + + programs.home-manager.enable = true; +} diff --git a/config/hypr/hypridle.conf b/config/hypr/hypridle.conf new file mode 100644 index 0000000..8874a43 --- /dev/null +++ b/config/hypr/hypridle.conf @@ -0,0 +1,14 @@ +general { + lock_cmd = pidof hyprlock || hyprlock +} + +listener { + timeout = 300 + on-timeout = hyprlock +} + +listener { + timeout = 600 + on-timeout = hyprctl dispatch dpms off + on-resume = hyprctl dispatch dpms on +} diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf new file mode 100755 index 0000000..8efd6ad --- /dev/null +++ b/config/hypr/hyprland.conf @@ -0,0 +1,217 @@ +#monitor=DP-1,1920x1080@75,auto,1 +monitor=HDMI-A-1,1920x1080@100.00,auto,1 + +hide_on_fullscreen = true + +$terminal = footclient +$menu = rofi -show drun -config /home/coast/.config/rofi/config.rasi +$webBrowser = firefox-bin +$discordApp = vesktop-bin --proxy-server="socks5://127.0.0.1:65000" +$restartWaybar = pkill waybar; waybar&disown +$fileManager = pcmanfm + +exec-once = hyprctl setcursor Adwaita 24 & +exec-once = wbg /home/coast/Pictures/walls/wallhaven-yq5dmg_1920x1080.png & +exec-once = hypridle & +exec-once = hyprpm reload -n; +exec-once = dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=Hyprland +exec-once = gnome-keyring-daemon --start --components=secrets +exec-once = waybar & +exec-once = mpd ~/.mpdconf & +exec-once = mpc add /; + +exec-once = foot --server; + +exec-once = flatpak override --env=GTK_THEME=Catppuccin-B-MB-Dark --user; + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + +general { + gaps_in = 5 + gaps_out = 15 + border_size = 2 + col.active_border = rgba(6c6c9dee) rgba(1e1e2eee) 45deg + col.inactive_border = rgba(1e1e2eaa) + resize_on_border = false + allow_tearing = false + layout = master +} + +decoration { + rounding = 10 + active_opacity = 1.0 + inactive_opacity = 1.0 + shadow { + enabled = true + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } + blur { + enabled = true + size = 3 + passes = 1 + vibrancy = 0.1696 + new_optimizations = true + } +} + +animations { + enabled = yes + bezier = shot, 0.2, 1, 0.3, 1 + bezier = swipe, 0.6, 0, 0.4, 1 + bezier = bounce, 0.1, 1.1, 0.3, 1 + animation = windows, 1, 3, bounce, popin 80% + animation = windowsIn, 1, 3, bounce, popin 80% + animation = windowsOut, 1, 2, shot, popin 80% + animation = border, 1, 2, default + animation = fade, 1, 2, default + animation = layers, 1, 4, swipe, slide top + animation = layersIn, 1, 4, swipe, slide top + animation = layersOut, 1, 2, swipe, slide top + animation = workspaces, 1, 3, swipe, slide +} + +master { + new_status = slave +} + +misc { + force_default_wallpaper = 0 + disable_hyprland_logo = true +} + +input { + kb_layout = us + follow_mouse = 1 + sensitivity = 0 +} + +$mainMod = SUPER + +bind = $mainMod, Return, exec, $terminal +bind = $mainMod, S, killactive, +bind = $mainMod, M, exec, killall eww; eww daemon && eww open bar +bind = $mainMod SHIFT, Q, exit +bind = $mainMod, Space, togglefloating +bind = $mainMod, Space, resizeactive, exact 1000 800 +bind = $mainMod, Space, centerwindow +bind = $mainMod, R, exec, $menu + +bind = $mainMod, H, movefocus, l +bind = $mainMod, L, movefocus, r +bind = $mainMod, K, movefocus, u +bind = $mainMod, J, movefocus, d + +bind = $mainMod SHIFT, H, movewindow, l +bind = $mainMod SHIFT, L, movewindow, r +bind = $mainMod SHIFT, K, movewindow, u +bind = $mainMod SHIFT, J, movewindow, d + +binde = $mainMod ALT, H, resizeactive, -30 0 +binde = $mainMod ALT, L, resizeactive, 30 0 +binde = $mainMod ALT, K, resizeactive, 0 -30 +binde = $mainMod ALT, J, resizeactive, 0 30 + +binde = $mainMod, left, moveactive, -40 0 +binde = $mainMod, right, moveactive, 40 0 +binde = $mainMod, up, moveactive, 0 -40 +binde = $mainMod, down, moveactive, 0 40 + +binde = $mainMod SHIFT, left, resizeactive, -40 0 +binde = $mainMod SHIFT, right, resizeactive, 40 0 +binde = $mainMod SHIFT, up, resizeactive, 0 -40 +binde = $mainMod SHIFT, down, resizeactive, 0 40 + +bind = $mainMod, Backslash, centerwindow, + +workspace = 2, monitor:HDMI-A-1 + +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 + +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 + +bind = $mainMod, C, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, exec, grim -g "$(slurp)" - | wl-copy + +bind = $mainMod CONTROL, L, exec, hyprlock + +bind = $mainMod SHIFT, B, exec, $webBrowser +bind = $mainMod SHIFT, V, exec, $discordApp +bind = $mainMod, F, exec, $fileManager + +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +bind = $mainMod SHIFT, P, exec, $restartWaybar + +plugin { + hyprbars { + enabled = true + + bar_height = 25 + bar_color = rgba(1e1e2eaa) + bar_blur = true + + bar_title_enabled = true + bar_text_font = "JetBrainsMono Nerd Font" + bar_text_size = 12 + bar_text_align = center + col.text = rgba(ffffffdd) + + bar_buttons_alignment = left + bar_padding = 10 + bar_button_padding = 6 + icon_on_hover = false + + hyprbars-button = rgb(ff5f57), 14, , hyprctl dispatch killactive + hyprbars-button = rgb(febb2e), 14, , hyprctl dispatch togglefloating + hyprbars-button = rgb(28c840), 14, , hyprctl dispatch fullscreen 1 + + on_double_click = hyprctl dispatch fullscreen 1 + } + + hyprexpo { + columns = 3 + gap_size = 5 + bg_col = rgba(1e1e2eaa) + workspace_method = center current + gesture_distance = 300 + } +} + +bind = $mainMod, e, hyprexpo:expo, toggle + +bind = $mainMod ALT, up, exec, /home/coast/.local/bin/mpc-shuf.sh shuf +bind = $mainMod ALT, down, exec, /home/coast/.local/bin/mpc-shuf.sh shufno +bind = $mainMod ALT, right, exec, /home/coast/.local/bin/mpc-shuf.sh next +bind = $mainMod ALT, left, exec, /home/coast/.local/bin/mpc-shuf.sh prev +bind = $mainMod SHIFT, R, exec, /home/coast/.local/bin/mpc-shuf.sh search +bind = $mainMod CONTROL, R, exec, /home/coast/.local/bin/mpc-shuf.sh album +bind = $mainMod ALT, R, exec, /home/coast/.local/bin/mpc-shuf.sh artist +bind = $mainMod, slash, exec, /home/coast/.local/bin/mpc-shuf.sh info +bind = $mainMod, comma, exec, mpc volume -5 +bind = $mainMod, period, exec, mpc volume +5 +bind = $mainMod, bracketright, exec, /home/coast/.local/bin/mpc-shuf.sh toggle +bind = $mainMod CONTROL, up, exec, mpc stop; mpc add /; notify-send "Reset MPC!" + +xwayland { + enabled = true +} diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf new file mode 100644 index 0000000..43216c4 --- /dev/null +++ b/config/hypr/hyprlock.conf @@ -0,0 +1,35 @@ +background { + monitor = + path = screenshot + blur_passes = 3 + blur_size = 12 + dim = 0.4 +} + +input-field { + monitor = + size = 350, 60 + position = 0, -100 + rounding = 0 + border_width = 2 + + font = "JetBrainsMono Nerd Font" + font_size = 22 + font_color = rgb(245, 224, 220) + + inner_color = rgb(30, 24, 36) + outer_color = rgb(58, 52, 70) + border_color = rgb(252, 205, 205) + placeholder_text = "Password..." + fade_on_empty = true +} + +label { + monitor = + text = $TIME + font = "JetBrainsMono Nerd Font" + font_size = 64 + position = 0, 100 + color = rgb(245, 224, 220) +} + diff --git a/config/hypr/hyprpaper.conf b/config/hypr/hyprpaper.conf new file mode 100755 index 0000000..9018554 --- /dev/null +++ b/config/hypr/hyprpaper.conf @@ -0,0 +1,3 @@ +preload = ~/Pictures/Wallpapers/flowers.png +wallpaper = HDMI-A-1,~/Pictures/Wallpapers/flowers.png +wallpaper = eDP-1,~/Pictures/Wallpapers/flowers.png diff --git a/config/kitty/.#kitty.conf b/config/kitty/.#kitty.conf new file mode 120000 index 0000000..7f737a3 --- /dev/null +++ b/config/kitty/.#kitty.conf @@ -0,0 +1 @@ +coast@core.1143:1751344825 \ No newline at end of file diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf new file mode 100755 index 0000000..a147494 --- /dev/null +++ b/config/kitty/kitty.conf @@ -0,0 +1,52 @@ +font_family family="Ubuntu Mono" +font_size 15 +bold_font auto +italic_font auto +bold_italic_font auto +background_opacity 0.9 +window_padding_width 8 +confirm_os_window_close 0 + +background #1d1d1d +foreground #deddda + +selection_background #303030 +selection_foreground #c0bfbc + +url_color #1a5fb4 + +wayland_titlebar_color system +macos_titlebar_color system + +cursor #deddda +cursor_text_color #1d1d1d + +active_border_color #4f4f4f +inactive_border_color #282828 +bell_border_color #ed333b +visual_bell_color none + +active_tab_background #242424 +active_tab_foreground #fcfcfc +inactive_tab_background #303030 +inactive_tab_foreground #b0afac +tab_bar_background none +tab_bar_margin_color none + +color0 #1d1d1d +color1 #ed333b +color2 #57e389 +color3 #ff7800 +color4 #62a0ea +color5 #9141ac +color6 #5bc8af +color7 #deddda + +color8 #9a9996 +color9 #f66151 +color10 #8ff0a4 +color11 #ffa348 +color12 #99c1f1 +color13 #dc8add +color14 #93ddc2 +color15 #f6f5f4 diff --git a/config/mako/.github/issue_template.md b/config/mako/.github/issue_template.md new file mode 100755 index 0000000..45a7be3 --- /dev/null +++ b/config/mako/.github/issue_template.md @@ -0,0 +1 @@ +> If you're reporting an UI issue, make sure you take a screenshot that shows the actual bug. \ No newline at end of file diff --git a/config/mako/.github/pull_request_template.md b/config/mako/.github/pull_request_template.md new file mode 100755 index 0000000..622089f --- /dev/null +++ b/config/mako/.github/pull_request_template.md @@ -0,0 +1 @@ +> If you're fixing a UI issue, make sure you take two screenshots. One that shows the actual bug and another that shows how you fixed it. \ No newline at end of file diff --git a/config/mako/config b/config/mako/config new file mode 100755 index 0000000..8fd99fd --- /dev/null +++ b/config/mako/config @@ -0,0 +1,12 @@ +default-timeout=5000 +ignore-timeout=1 +background-color=#1e1e2e +text-color=#cdd6f4 +border-color=#cdd6f4 +progress-color=over #313244 +border-radius=0 + +[urgency=low] +border-color=#a6e3a1 +[urgency=high] +border-color=#f38ba8 diff --git a/config/micro/bindings.json b/config/micro/bindings.json new file mode 100755 index 0000000..58313ff --- /dev/null +++ b/config/micro/bindings.json @@ -0,0 +1,35 @@ +{ + "\u001b\u003c": "CursorStart", + "\u001b\u003e": "CursorEnd", + "\u003cCtrl-x\u003e\u003c0\u003e": "Unsplit", + "\u003cCtrl-x\u003e\u003c2\u003e": "HSplit", + "\u003cCtrl-x\u003e\u003c3\u003e": "VSplit", + "\u003cCtrl-x\u003e\u003cCtrl-c\u003e": "Quit", + "\u003cCtrl-x\u003e\u003cCtrl-f\u003e": "OpenFile", + "\u003cCtrl-x\u003e\u003cCtrl-s\u003e": "Save", + "\u003cCtrl-x\u003e\u003ch\u003e": "SelectAll", + "Alt-/": "lua:comment.comment", + "Alt-[": "PreviousTab", + "Alt-]": "NextTab", + "Alt-b": "WordLeft", + "Alt-f": "WordRight", + "Alt-k": "command:hover", + "Alt-r": "command:references", + "Alt-v": "CursorPageUp", + "Alt-w": "Copy", + "Alt-x": "CommandMode", + "Ctrl-a": "StartOfLine", + "Ctrl-e": "EndOfLine", + "Ctrl-g": "Escape", + "Ctrl-k": "CutLine", + "Ctrl-r": "FindPrevious", + "Ctrl-s": "Find", + "Ctrl-v": "CursorPageDown", + "Ctrl-y": "Paste", + "Ctrl-z": "Undo", + "Ctrl-b": "CursorLeft", + "Ctrl-f": "CursorRight", + "Ctrl-p": "CursorUp", + "Ctrl-n": "CursorDown", + "CtrlUnderscore": "Undo" +} diff --git a/config/micro/buffers/history b/config/micro/buffers/history new file mode 100755 index 0000000..449014c Binary files /dev/null and b/config/micro/buffers/history differ diff --git a/config/micro/settings.json b/config/micro/settings.json new file mode 100755 index 0000000..2b6fe8a --- /dev/null +++ b/config/micro/settings.json @@ -0,0 +1,3 @@ +{ + "colorscheme": "geany" +} diff --git a/config/mksymlink.conf b/config/mksymlink.conf new file mode 100755 index 0000000..f3b5f56 --- /dev/null +++ b/config/mksymlink.conf @@ -0,0 +1,16 @@ +MAIN="$HOME/.local/src/config" + +list="\ +nvim=nvim +qtile=qtile +sway=sway +mutt=mutt +qutebrowser=qutebrowser +wofi=wofi +fastfetch=fastfetch +btop=btop +foot=foot +mako=mako +neofetch=neofetch +mksymlink.conf=mksymlink.conf +" diff --git a/config/mutt/color.muttrc b/config/mutt/color.muttrc new file mode 100755 index 0000000..c964d03 --- /dev/null +++ b/config/mutt/color.muttrc @@ -0,0 +1,68 @@ +# vim: filetype=neomuttrc +# Default index colors: +color index yellow default '.*' +color index_author red default '.*' +color index_number blue default +color index_subject cyan default '.*' + +# For new mail: +color index brightyellow black "~N" +color index_author brightred black "~N" +color index_subject brightcyan black "~N" + +# Header colors: +color header blue default ".*" +color header brightmagenta default "^(From)" +color header brightcyan default "^(Subject)" +color header brightwhite default "^(CC|BCC)" + +mono bold bold +mono underline underline +mono indicator reverse +mono error bold +color normal default default +color indicator brightblack white +color sidebar_highlight red default +color sidebar_divider brightblack black +color sidebar_flagged red black +color sidebar_new green black +color normal brightyellow default +color error red default +color tilde black default +color message cyan default +color markers red white +color attachment white default +color search brightmagenta default +color status brightyellow black +color hdrdefault brightgreen default +color quoted green default +color quoted1 blue default +color quoted2 cyan default +color quoted3 yellow default +color quoted4 red default +color quoted5 brightred default +color signature brightgreen default +color bold black default +color underline black default +color normal default default + +color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses +color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL +color body green default "\`[^\`]*\`" # Green text between ` and ` +color body brightblue default "^# \.*" # Headings as bold blue +color body brightcyan default "^## \.*" # Subheadings as bold cyan +color body brightgreen default "^### \.*" # Subsubheadings as bold green +color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow +color body brightcyan default "[;:][-o][)/(|]" # emoticons +color body brightcyan default "[;:][)(|]" # emoticons +color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon? +color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon? +color body red default "(BAD signature)" +color body cyan default "(Good signature)" +color body brightblack default "^gpg: Good signature .*" +color body brightyellow default "^gpg: " +color body brightyellow red "^gpg: BAD signature from.*" +mono body bold "^gpg: Good signature" +mono body bold "^gpg: BAD signature from.*" +color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" + diff --git a/config/mutt/muttrc b/config/mutt/muttrc new file mode 100755 index 0000000..9ef2c54 --- /dev/null +++ b/config/mutt/muttrc @@ -0,0 +1,18 @@ +set folder = "imaps://coast@cock.email@mail.cock.li:993" +set smtp_url = "smtps://coast@cock.email@mail.cock.li:587" + +set imap_pass = `cat /home/coast/.local/keys/imap.muttrc` +set smtp_pass = `cat /home/coast/.local/keys/smtp.muttrc` + +set from = "coast@cock.email" +set realname = "Coasteen" + +set spoolfile = "+INBOX" + +set editor = "nvim" +set edit_headers = yes +set include = yes +set indent_str = "> " +set reply_regexp = "^([rR][eE]:[ \t]*)*" + +source color.muttrc diff --git a/config/neofetch/config.conf b/config/neofetch/config.conf new file mode 100755 index 0000000..cdba4c6 --- /dev/null +++ b/config/neofetch/config.conf @@ -0,0 +1,864 @@ +# See this wiki page for more info: +# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info +print_info() { + info title + info underline + + info "OS" distro + info "Host" model + info "Kernel" kernel + info "Uptime" uptime + info "Packages" packages + info "Shell" shell + info "Resolution" resolution + info "DE" de + info "WM" wm + info "WM Theme" wm_theme + info "Theme" theme + info "Icons" icons + info "Terminal" term + info "Terminal Font" term_font + info "CPU" cpu + info "GPU" gpu + info "Memory" memory + + # info "GPU Driver" gpu_driver # Linux/macOS only + # info "CPU Usage" cpu_usage + # info "Disk" disk + # info "Battery" battery + # info "Font" font + # info "Song" song + # [[ "$player" ]] && prin "Music Player" "$player" + # info "Local IP" local_ip + # info "Public IP" public_ip + # info "Users" users + # info "Locale" locale # This only works on glibc systems. + + info cols +} + +# Title + + +# Hide/Show Fully qualified domain name. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --title_fqdn +title_fqdn="off" + + +# Kernel + + +# Shorten the output of the kernel function. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --kernel_shorthand +# Supports: Everything except *BSDs (except PacBSD and PC-BSD) +# +# Example: +# on: '4.8.9-1-ARCH' +# off: 'Linux 4.8.9-1-ARCH' +kernel_shorthand="on" + + +# Distro + + +# Shorten the output of the distro function +# +# Default: 'off' +# Values: 'on', 'tiny', 'off' +# Flag: --distro_shorthand +# Supports: Everything except Windows and Haiku +distro_shorthand="off" + +# Show/Hide OS Architecture. +# Show 'x86_64', 'x86' and etc in 'Distro:' output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --os_arch +# +# Example: +# on: 'Arch Linux x86_64' +# off: 'Arch Linux' +os_arch="on" + + +# Uptime + + +# Shorten the output of the uptime function +# +# Default: 'on' +# Values: 'on', 'tiny', 'off' +# Flag: --uptime_shorthand +# +# Example: +# on: '2 days, 10 hours, 3 mins' +# tiny: '2d 10h 3m' +# off: '2 days, 10 hours, 3 minutes' +uptime_shorthand="on" + + +# Memory + + +# Show memory pecentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="off" + +# Change memory output unit. +# +# Default: 'mib' +# Values: 'kib', 'mib', 'gib' +# Flag: --memory_unit +# +# Example: +# kib '1020928KiB / 7117824KiB' +# mib '1042MiB / 6951MiB' +# gib: ' 0.98GiB / 6.79GiB' +memory_unit="mib" + + +# Packages + + +# Show/Hide Package Manager names. +# +# Default: 'tiny' +# Values: 'on', 'tiny' 'off' +# Flag: --package_managers +# +# Example: +# on: '998 (pacman), 8 (flatpak), 4 (snap)' +# tiny: '908 (pacman, flatpak, snap)' +# off: '908' +package_managers="on" + + +# Shell + + +# Show the path to $SHELL +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --shell_path +# +# Example: +# on: '/bin/bash' +# off: 'bash' +shell_path="off" + +# Show $SHELL version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --shell_version +# +# Example: +# on: 'bash 4.4.5' +# off: 'bash' +shell_version="on" + + +# CPU + + +# CPU speed type +# +# Default: 'bios_limit' +# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. +# Flag: --speed_type +# Supports: Linux with 'cpufreq' +# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. +speed_type="bios_limit" + +# CPU speed shorthand +# +# Default: 'off' +# Values: 'on', 'off'. +# Flag: --speed_shorthand +# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz +# +# Example: +# on: 'i7-6500U (4) @ 3.1GHz' +# off: 'i7-6500U (4) @ 3.100GHz' +speed_shorthand="off" + +# Enable/Disable CPU brand in output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_brand +# +# Example: +# on: 'Intel i7-6500U' +# off: 'i7-6500U (4)' +cpu_brand="on" + +# CPU Speed +# Hide/Show CPU speed. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_speed +# +# Example: +# on: 'Intel i7-6500U (4) @ 3.1GHz' +# off: 'Intel i7-6500U (4)' +cpu_speed="on" + +# CPU Cores +# Display CPU cores in output +# +# Default: 'logical' +# Values: 'logical', 'physical', 'off' +# Flag: --cpu_cores +# Support: 'physical' doesn't work on BSD. +# +# Example: +# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) +# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) +# off: 'Intel i7-6500U @ 3.1GHz' +cpu_cores="logical" + +# CPU Temperature +# Hide/Show CPU temperature. +# Note the temperature is added to the regular CPU function. +# +# Default: 'off' +# Values: 'C', 'F', 'off' +# Flag: --cpu_temp +# Supports: Linux, BSD +# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable +# coretemp kernel module. This only supports newer Intel processors. +# +# Example: +# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' +# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' +# off: 'Intel i7-6500U (4) @ 3.1GHz' +cpu_temp="off" + + +# GPU + + +# Enable/Disable GPU Brand +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gpu_brand +# +# Example: +# on: 'AMD HD 7950' +# off: 'HD 7950' +gpu_brand="on" + +# Which GPU to display +# +# Default: 'all' +# Values: 'all', 'dedicated', 'integrated' +# Flag: --gpu_type +# Supports: Linux +# +# Example: +# all: +# GPU1: AMD HD 7950 +# GPU2: Intel Integrated Graphics +# +# dedicated: +# GPU1: AMD HD 7950 +# +# integrated: +# GPU1: Intel Integrated Graphics +gpu_type="all" + + +# Resolution + + +# Display refresh rate next to each monitor +# Default: 'off' +# Values: 'on', 'off' +# Flag: --refresh_rate +# Supports: Doesn't work on Windows. +# +# Example: +# on: '1920x1080 @ 60Hz' +# off: '1920x1080' +refresh_rate="off" + + +# Gtk Theme / Icons / Font + + +# Shorten output of GTK Theme / Icons / Font +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --gtk_shorthand +# +# Example: +# on: 'Numix, Adwaita' +# off: 'Numix [GTK2], Adwaita [GTK3]' +gtk_shorthand="off" + + +# Enable/Disable gtk2 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk2 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Adwaita [GTK3]' +gtk2="on" + +# Enable/Disable gtk3 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk3 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Numix [GTK2]' +gtk3="on" + + +# IP Address + + +# Website to ping for the public IP +# +# Default: 'http://ident.me' +# Values: 'url' +# Flag: --ip_host +public_ip_host="http://ident.me" + +# Public IP timeout. +# +# Default: '2' +# Values: 'int' +# Flag: --ip_timeout +public_ip_timeout=2 + + +# Desktop Environment + + +# Show Desktop Environment version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --de_version +de_version="on" + + +# Disk + + +# Which disks to display. +# The values can be any /dev/sdXX, mount point or directory. +# NOTE: By default we only show the disk info for '/'. +# +# Default: '/' +# Values: '/', '/dev/sdXX', '/path/to/drive'. +# Flag: --disk_show +# +# Example: +# disk_show=('/' '/dev/sdb1'): +# 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 823G / 893G (93%)' +# +# disk_show=('/'): +# 'Disk (/): 74G / 118G (66%)' +# +disk_show=('/') + +# Disk subtitle. +# What to append to the Disk subtitle. +# +# Default: 'mount' +# Values: 'mount', 'name', 'dir', 'none' +# Flag: --disk_subtitle +# +# Example: +# name: 'Disk (/dev/sda1): 74G / 118G (66%)' +# 'Disk (/dev/sdb2): 74G / 118G (66%)' +# +# mount: 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Local Disk): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 74G / 118G (66%)' +# +# dir: 'Disk (/): 74G / 118G (66%)' +# 'Disk (Local Disk): 74G / 118G (66%)' +# 'Disk (Videos): 74G / 118G (66%)' +# +# none: 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +disk_subtitle="mount" + +# Disk percent. +# Show/Hide disk percent. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --disk_percent +# +# Example: +# on: 'Disk (/): 74G / 118G (66%)' +# off: 'Disk (/): 74G / 118G' +disk_percent="on" + + +# Song + + +# Manually specify a music player. +# +# Default: 'auto' +# Values: 'auto', 'player-name' +# Flag: --music_player +# +# Available values for 'player-name': +# +# amarok +# audacious +# banshee +# bluemindo +# clementine +# cmus +# deadbeef +# deepin-music +# dragon +# elisa +# exaile +# gnome-music +# gmusicbrowser +# gogglesmm +# guayadeque +# io.elementary.music +# iTunes +# juk +# lollypop +# mocp +# mopidy +# mpd +# muine +# netease-cloud-music +# olivia +# playerctl +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# strawberry +# tauonmb +# tomahawk +# vlc +# xmms2d +# xnoise +# yarock +music_player="auto" + +# Format to display song information. +# +# Default: '%artist% - %album% - %title%' +# Values: '%artist%', '%album%', '%title%' +# Flag: --song_format +# +# Example: +# default: 'Song: Jet - Get Born - Sgt Major' +song_format="%artist% - %album% - %title%" + +# Print the Artist, Album and Title on separate lines +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --song_shorthand +# +# Example: +# on: 'Artist: The Fratellis' +# 'Album: Costello Music' +# 'Song: Chelsea Dagger' +# +# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' +song_shorthand="off" + +# 'mpc' arguments (specify a host, password etc). +# +# Default: '' +# Example: mpc_args=(-h HOST -P PASSWORD) +mpc_args=() + + +# Text Colors + + +# Text Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --colors +# +# Each number represents a different part of the text in +# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' +# +# Example: +# colors=(distro) - Text is colored based on Distro colors. +# colors=(4 6 1 8 8 6) - Text is colored in the order above. +colors=(distro) + + +# Text Options + + +# Toggle bold text +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bold +bold="on" + +# Enable/Disable Underline +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --underline +underline_enabled="on" + +# Underline character +# +# Default: '-' +# Values: 'string' +# Flag: --underline_char +underline_char="-" + + +# Info Separator +# Replace the default separator with the specified string. +# +# Default: ':' +# Flag: --separator +# +# Example: +# separator="->": 'Shell-> bash' +# separator=" =": 'WM = dwm' +separator=":" + + +# Color Blocks + + +# Color block range +# The range of colors to print. +# +# Default: '0', '15' +# Values: 'num' +# Flag: --block_range +# +# Example: +# +# Display colors 0-7 in the blocks. (8 colors) +# neofetch --block_range 0 7 +# +# Display colors 0-15 in the blocks. (16 colors) +# neofetch --block_range 0 15 +block_range=(0 15) + +# Toggle color blocks +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --color_blocks +color_blocks="on" + +# Color block width in spaces +# +# Default: '3' +# Values: 'num' +# Flag: --block_width +block_width=3 + +# Color block height in lines +# +# Default: '1' +# Values: 'num' +# Flag: --block_height +block_height=1 + +# Color Alignment +# +# Default: 'auto' +# Values: 'auto', 'num' +# Flag: --col_offset +# +# Number specifies how far from the left side of the terminal (in spaces) to +# begin printing the columns, in case you want to e.g. center them under your +# text. +# Example: +# col_offset="auto" - Default behavior of neofetch +# col_offset=7 - Leave 7 spaces then print the colors +col_offset="auto" + +# Progress Bars + + +# Bar characters +# +# Default: '-', '=' +# Values: 'string', 'string' +# Flag: --bar_char +# +# Example: +# neofetch --bar_char 'elapsed' 'total' +# neofetch --bar_char '-' '=' +bar_char_elapsed="-" +bar_char_total="=" + +# Toggle Bar border +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bar_border +bar_border="on" + +# Progress bar length in spaces +# Number of chars long to make the progress bars. +# +# Default: '15' +# Values: 'num' +# Flag: --bar_length +bar_length=15 + +# Progress bar colors +# When set to distro, uses your distro's logo colors. +# +# Default: 'distro', 'distro' +# Values: 'distro', 'num' +# Flag: --bar_colors +# +# Example: +# neofetch --bar_colors 3 4 +# neofetch --bar_colors distro 5 +bar_color_elapsed="distro" +bar_color_total="distro" + + +# Info display +# Display a bar with the info. +# +# Default: 'off' +# Values: 'bar', 'infobar', 'barinfo', 'off' +# Flags: --cpu_display +# --memory_display +# --battery_display +# --disk_display +# +# Example: +# bar: '[---=======]' +# infobar: 'info [---=======]' +# barinfo: '[---=======] info' +# off: 'info' +cpu_display="off" +memory_display="off" +battery_display="off" +disk_display="off" + + +# Backend Settings + + +# Image backend. +# +# Default: 'ascii' +# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', +# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' +# Flag: --backend +image_backend="ascii" + +# Image Source +# +# Which image or ascii file to display. +# +# Default: 'auto' +# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' +# Flag: --source +# +# NOTE: 'auto' will pick the best image source for whatever image backend is used. +# In ascii mode, distro ascii art will be used and in an image mode, your +# wallpaper will be used. +image_source="auto" + + +# Ascii Options + + +# Ascii distro +# Which distro's ascii art to display. +# +# Default: 'auto' +# Values: 'auto', 'distro_name' +# Flag: --ascii_distro +# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS", +# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs, +# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, +# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD, +# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, +# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, +# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin, +# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary, +# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, +# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, +# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, +# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, +# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite, +# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, +# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib, +# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, +# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba, +# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD, +# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint, +# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, +# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, +# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, +# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, +# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, +# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, +# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, +# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin, +# and IRIX have ascii logos +# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants. +# Use '{distro name}_old' to use the old logos. +# NOTE: Ubuntu has flavor variants. +# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME, +# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors. +# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu, +# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android, +# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola, +# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS, +# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian, +# postmarketOS, and Void have a smaller logo variant. +# Use '{distro name}_small' to use the small variants. +ascii_distro="auto" + +# Ascii Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --ascii_colors +# +# Example: +# ascii_colors=(distro) - Ascii is colored based on Distro colors. +# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. +ascii_colors=(distro) + +# Bold ascii logo +# Whether or not to bold the ascii logo. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --ascii_bold +ascii_bold="on" + + +# Image Options + + +# Image loop +# Setting this to on will make neofetch redraw the image constantly until +# Ctrl+C is pressed. This fixes display issues in some terminal emulators. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --loop +image_loop="off" + +# Thumbnail directory +# +# Default: '~/.cache/thumbnails/neofetch' +# Values: 'dir' +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" + +# Crop mode +# +# Default: 'normal' +# Values: 'normal', 'fit', 'fill' +# Flag: --crop_mode +# +# See this wiki page to learn about the fit and fill options. +# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F +crop_mode="normal" + +# Crop offset +# Note: Only affects 'normal' crop mode. +# +# Default: 'center' +# Values: 'northwest', 'north', 'northeast', 'west', 'center' +# 'east', 'southwest', 'south', 'southeast' +# Flag: --crop_offset +crop_offset="center" + +# Image size +# The image is half the terminal width by default. +# +# Default: 'auto' +# Values: 'auto', '00px', '00%', 'none' +# Flags: --image_size +# --size +image_size="auto" + +# Gap between image and text +# +# Default: '3' +# Values: 'num', '-num' +# Flag: --gap +gap=3 + +# Image offsets +# Only works with the w3m backend. +# +# Default: '0' +# Values: 'px' +# Flags: --xoffset +# --yoffset +yoffset=0 +xoffset=0 + +# Image background color +# Only works with the w3m backend. +# +# Default: '' +# Values: 'color', 'blue' +# Flag: --bg_color +background_color= + + +# Misc Options + +# Stdout mode +# Turn off all colors and disables image backend (ASCII/Image). +# Useful for piping into another command. +# Default: 'off' +# Values: 'on', 'off' +stdout="off" diff --git a/config/niri-2/config.kdl b/config/niri-2/config.kdl new file mode 100644 index 0000000..b536336 --- /dev/null +++ b/config/niri-2/config.kdl @@ -0,0 +1,269 @@ +spawn-at-startup "waybar" +spawn-at-startup "awww-daemon" +spawn-at-startup "awww" "img" "/home/coast/Downloads/wallhaven-3qrol9_1920x1080.png" +input { + mod-key "Super" + keyboard { + xkb { + options "altwin:swap_alt_win" + } + numlock + repeat-delay 600 + repeat-rate 25 + } + + touchpad { + tap + natural-scroll + } + + trackpoint { + } +} + +gestures { + hot-corners { + off + } +} + +cursor { + xcursor-theme "Adwaita" + xcursor-size 24 +} + +output "HDMI-A-1" { + mode "1920x1080@74.973" + scale 1 + transform "normal" +} + +output "eDP-1" { + off + scale 1 + transform "normal" + position x=1280 y=0 +} + +layout { + gaps 10 + center-focused-column "never" + + preset-column-widths { + proportion 0.33333 + proportion 0.5 + proportion 0.66667 + } + + default-column-width { + proportion 0.5; + } + + focus-ring { + width 2.5 + active-color "#0E0F12" + inactive-color "#191724" + } + + border { + off + width 4 + active-color "#0E0F12" + inactive-color "#0E0F12" + urgent-color "#9b0000" + } + + shadow { + on + softness 30 + spread 5 + offset x=0 y=5 + color "#0007" + } + + struts { + } +} + +prefer-no-csd + +screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" + +spawn-at-startup "waybar &" +spawn-at-startup "swww-daemon &" +spawn-at-startup "swww img --outputs HDMI-A-1 ~/Wallpapers/bay.png &" +spawn-at-startup "eww daemon &" +spawn-at-startup "eww open-many year month day daytype &" +spawn-at-startup "foot --server &" + + +window-rule { + match title="Waydroid" + open-fullscreen true +} +window-rule { + match app-id=r#"firefox$"# title="^Picture-in-Picture$" + open-floating true +} + +window-rule { + match app-id=r#"waydroid$"# + open-fullscreen true +} + +window-rule { + geometry-corner-radius 7 + clip-to-geometry true +} + +binds { + Mod+Shift+Slash { show-hotkey-overlay; } + Mod+Return hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; } + Mod+R hotkey-overlay-title="Run an Application: rofi" { spawn-sh "rofi -show drun -config ~/.config/rofi/config.rasi"; } + Mod+Shift+Return hotkey-overlay-title="Run an application: rofi (run)" { spawn-sh "rofi -show run -config ~/.config/rofi/config.rasi"; } + Super+Alt+L hotkey-overlay-title="Lock the screen" { spawn "hyprlock"; } + Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; } + + XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; } + XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } + XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } + + XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; } + XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; } + + Mod+O repeat=false { toggle-overview; } + Mod+S repeat=false { close-window; } + + Mod+Left { focus-column-left; } + Mod+Down { focus-window-down; } + Mod+Up { focus-window-up; } + Mod+Right { focus-column-right; } + Mod+H { focus-column-left; } + Mod+J { focus-window-down; } + Mod+K { focus-window-up; } + Mod+L { focus-column-right; } + + Mod+Ctrl+Left { move-column-left; } + Mod+Ctrl+Down { move-window-down; } + Mod+Ctrl+Up { move-window-up; } + Mod+Ctrl+Right { move-column-right; } + Mod+Shift+H { move-column-left; } + Mod+Shift+J { move-window-down; } + Mod+Shift+K { move-window-up; } + Mod+Shift+L { move-column-right; } + + Mod+Home { focus-column-first; } + Mod+End { focus-column-last; } + Mod+Ctrl+Home { move-column-to-first; } + Mod+Ctrl+End { move-column-to-last; } + + Mod+Shift+Left { focus-monitor-left; } + Mod+Shift+Down { focus-monitor-down; } + Mod+Shift+Up { focus-monitor-up; } + Mod+Shift+Right { focus-monitor-right; } + Mod+Ctrl+H { focus-monitor-left; } + Mod+Ctrl+J { focus-monitor-down; } + Mod+Ctrl+K { focus-monitor-up; } + Mod+Ctrl+L { focus-monitor-right; } + + Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } + Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } + Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } + Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } + Mod+Shift+Ctrl+H { move-column-to-monitor-left; } + Mod+Shift+Ctrl+J { move-column-to-monitor-down; } + Mod+Shift+Ctrl+K { move-column-to-monitor-up; } + Mod+Shift+Ctrl+L { move-column-to-monitor-right; } + + Mod+Page_Down { focus-workspace-down; } + Mod+Page_Up { focus-workspace-up; } + Mod+N { focus-workspace-down; } + Mod+M { focus-workspace-up; } + Mod+Ctrl+Page_Down { move-column-to-workspace-down; } + Mod+Ctrl+Page_Up { move-column-to-workspace-up; } + Mod+Ctrl+M { move-column-to-workspace-down; } + Mod+Ctrl+N { move-column-to-workspace-up; } + + Mod+Shift+P hotkey-overlay-title="Restart waybar and eww" { spawn-sh "pkill waybar && waybar & disown && eww kill && eww daemon && eww open-many year month day daytype"; } + + Mod+Shift+Page_Down { move-workspace-down; } + Mod+Shift+Page_Up { move-workspace-up; } + Mod+Shift+M { move-workspace-down; } + Mod+Shift+N { move-workspace-up; } + + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + Mod+Shift+1 { move-column-to-workspace 1; } + Mod+Shift+2 { move-column-to-workspace 2; } + Mod+Shift+3 { move-column-to-workspace 3; } + Mod+Shift+4 { move-column-to-workspace 4; } + Mod+Shift+5 { move-column-to-workspace 5; } + Mod+Shift+6 { move-column-to-workspace 6; } + Mod+Shift+7 { move-column-to-workspace 7; } + Mod+Shift+8 { move-column-to-workspace 8; } + Mod+Shift+9 { move-column-to-workspace 9; } + + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + + Mod+Comma { consume-window-into-column; } + Mod+Period { expel-window-from-column; } + + Mod+D { switch-preset-column-width; } + Mod+Shift+R { switch-preset-window-height; } + Mod+Ctrl+R { reset-window-height; } + Mod+W { maximize-column; } + Mod+Shift+W { fullscreen-window; } + + Mod+Ctrl+F { expand-column-to-available-width; } + Mod+C { center-column; } + Mod+Ctrl+C { center-visible-columns; } + + Mod+Minus { set-column-width "-10%"; } + Mod+Equal { set-column-width "+10%"; } + + Mod+Shift+Minus { set-window-height "-10%"; } + Mod+Shift+Equal { set-window-height "+10%"; } + + Mod+Space { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + + Mod+Shift+F { toggle-column-tabbed-display; } + Mod+F hotkey-overlay-title="Spawn file manager (nautilus)" { spawn "nautilus"; } + + Print { screenshot; } + Super+Shift+S { screenshot; } + Control+Alt+S { screenshot-window; } + Ctrl+Print { screenshot-screen; } + Alt+Print { screenshot-window; } + + Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + + Mod+Shift+E { quit; } + Ctrl+Alt+Delete { quit; } + + Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } + + Mod+WheelScrollRight { focus-column-right; } + Mod+WheelScrollLeft { focus-column-left; } + Mod+Ctrl+WheelScrollRight { move-column-right; } + Mod+Ctrl+WheelScrollLeft { move-column-left; } + + Mod+Shift+WheelScrollDown { focus-column-right; } + Mod+Shift+WheelScrollUp { focus-column-left; } + Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } + Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } +} + + diff --git a/config/niri/config.kdl b/config/niri/config.kdl new file mode 100755 index 0000000..56782dd --- /dev/null +++ b/config/niri/config.kdl @@ -0,0 +1,265 @@ +input { + mod-key "Super" + keyboard { + xkb { + } + numlock + repeat-delay 600 + repeat-rate 25 + } + + touchpad { + tap + natural-scroll + } + + trackpoint { + } +} + +gestures { + hot-corners { + off + } +} + +cursor { + xcursor-theme "Adwaita" + xcursor-size 24 +} + +output "HDMI-A-1" { + mode "1920x1080@74.973" + scale 1 + transform "normal" +} + +output "eDP-1" { + off + scale 1 + transform "normal" + position x=1280 y=0 +} + +layout { + gaps 5 + center-focused-column "never" + + preset-column-widths { + proportion 0.33333 + proportion 0.5 + proportion 0.66667 + } + + default-column-width { + proportion 0.5; + } + + focus-ring { + width 2.5 + active-color "#211e1e" + inactive-color "#191724" + } + + border { + off + width 4 + active-color "#191724" + inactive-color "#191724" + urgent-color "#9b0000" + } + + shadow { + on + softness 30 + spread 5 + offset x=0 y=5 + color "#0007" + } + + struts { + } +} + +prefer-no-csd + +screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" + +spawn-at-startup "waybar &" +spawn-at-startup "swww-daemon &" +spawn-at-startup "swww img --outputs HDMI-A-1 ~/Wallpapers/bay.png &" +spawn-at-startup "eww daemon &" +spawn-at-startup "eww open-many year month day daytype &" +spawn-at-startup "foot --server &" + + +window-rule { + match title="Waydroid" + open-fullscreen true +} +window-rule { + match app-id=r#"firefox$"# title="^Picture-in-Picture$" + open-floating true +} + +window-rule { + match app-id=r#"waydroid$"# + open-fullscreen true +} + +window-rule { + geometry-corner-radius 7 + clip-to-geometry true +} + +binds { + Mod+Shift+Slash { show-hotkey-overlay; } + Mod+Return hotkey-overlay-title="Open a Terminal: footclient" { spawn "footclient"; } + Mod+R hotkey-overlay-title="Run an Application: rofi" { spawn-sh "rofi -show drun -config ~/.config/rofi/gruvbox.rasi"; } + Mod+Shift+Return hotkey-overlay-title="Run an application: rofi (run)" { spawn-sh "rofi -show run -config ~/.config/rofi/gruvbox.rasi"; } + Super+Alt+L hotkey-overlay-title="Lock the screen" { spawn "swaylock"; } + Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; } + + XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; } + XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } + XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } + + XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; } + XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; } + + Mod+O repeat=false { toggle-overview; } + Mod+S repeat=false { close-window; } + + Mod+Left { focus-column-left; } + Mod+Down { focus-window-down; } + Mod+Up { focus-window-up; } + Mod+Right { focus-column-right; } + Mod+H { focus-column-left; } + Mod+J { focus-window-down; } + Mod+K { focus-window-up; } + Mod+L { focus-column-right; } + + Mod+Ctrl+Left { move-column-left; } + Mod+Ctrl+Down { move-window-down; } + Mod+Ctrl+Up { move-window-up; } + Mod+Ctrl+Right { move-column-right; } + Mod+Shift+H { move-column-left; } + Mod+Shift+J { move-window-down; } + Mod+Shift+K { move-window-up; } + Mod+Shift+L { move-column-right; } + + Mod+Home { focus-column-first; } + Mod+End { focus-column-last; } + Mod+Ctrl+Home { move-column-to-first; } + Mod+Ctrl+End { move-column-to-last; } + + Mod+Shift+Left { focus-monitor-left; } + Mod+Shift+Down { focus-monitor-down; } + Mod+Shift+Up { focus-monitor-up; } + Mod+Shift+Right { focus-monitor-right; } + Mod+Ctrl+H { focus-monitor-left; } + Mod+Ctrl+J { focus-monitor-down; } + Mod+Ctrl+K { focus-monitor-up; } + Mod+Ctrl+L { focus-monitor-right; } + + Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } + Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } + Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } + Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } + Mod+Shift+Ctrl+H { move-column-to-monitor-left; } + Mod+Shift+Ctrl+J { move-column-to-monitor-down; } + Mod+Shift+Ctrl+K { move-column-to-monitor-up; } + Mod+Shift+Ctrl+L { move-column-to-monitor-right; } + + Mod+Page_Down { focus-workspace-down; } + Mod+Page_Up { focus-workspace-up; } + Mod+N { focus-workspace-down; } + Mod+M { focus-workspace-up; } + Mod+Ctrl+Page_Down { move-column-to-workspace-down; } + Mod+Ctrl+Page_Up { move-column-to-workspace-up; } + Mod+Ctrl+M { move-column-to-workspace-down; } + Mod+Ctrl+N { move-column-to-workspace-up; } + + Mod+Shift+P hotkey-overlay-title="Restart waybar and eww" { spawn-sh "pkill waybar && waybar & disown && eww kill && eww daemon && eww open-many year month day daytype"; } + + Mod+Shift+Page_Down { move-workspace-down; } + Mod+Shift+Page_Up { move-workspace-up; } + Mod+Shift+M { move-workspace-down; } + Mod+Shift+N { move-workspace-up; } + + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + Mod+Shift+1 { move-column-to-workspace 1; } + Mod+Shift+2 { move-column-to-workspace 2; } + Mod+Shift+3 { move-column-to-workspace 3; } + Mod+Shift+4 { move-column-to-workspace 4; } + Mod+Shift+5 { move-column-to-workspace 5; } + Mod+Shift+6 { move-column-to-workspace 6; } + Mod+Shift+7 { move-column-to-workspace 7; } + Mod+Shift+8 { move-column-to-workspace 8; } + Mod+Shift+9 { move-column-to-workspace 9; } + + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + + Mod+Comma { consume-window-into-column; } + Mod+Period { expel-window-from-column; } + + Mod+D { switch-preset-column-width; } + Mod+Shift+R { switch-preset-window-height; } + Mod+Ctrl+R { reset-window-height; } + Mod+W { maximize-column; } + Mod+Shift+W { fullscreen-window; } + + Mod+Ctrl+F { expand-column-to-available-width; } + Mod+C { center-column; } + Mod+Ctrl+C { center-visible-columns; } + + Mod+Minus { set-column-width "-10%"; } + Mod+Equal { set-column-width "+10%"; } + + Mod+Shift+Minus { set-window-height "-10%"; } + Mod+Shift+Equal { set-window-height "+10%"; } + + Mod+Space { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + + Mod+Shift+F { toggle-column-tabbed-display; } + Mod+F hotkey-overlay-title="Spawn file manager (nautilus)" { spawn "nautilus"; } + + Print { screenshot; } + Super+Shift+S { screenshot; } + Control+Alt+S { screenshot-window; } + Ctrl+Print { screenshot-screen; } + Alt+Print { screenshot-window; } + + Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + + Mod+Shift+E { quit; } + Ctrl+Alt+Delete { quit; } + + Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } + + Mod+WheelScrollRight { focus-column-right; } + Mod+WheelScrollLeft { focus-column-left; } + Mod+Ctrl+WheelScrollRight { move-column-right; } + Mod+Ctrl+WheelScrollLeft { move-column-left; } + + Mod+Shift+WheelScrollDown { focus-column-right; } + Mod+Shift+WheelScrollUp { focus-column-left; } + Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } + Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } +} + + diff --git a/config/nushell/config.nu b/config/nushell/config.nu new file mode 100755 index 0000000..1658d14 --- /dev/null +++ b/config/nushell/config.nu @@ -0,0 +1,99 @@ +$env.config.buffer_editor = "vim" +$env.PROMPT_COMMAND_RIGHT = "" +$env.path ++= ["~/.local/bin"] +$env.config.show_banner = false +$env.config.table.mode = 'none' +$env.TERM = "xterm" +$env.USER = "coast" + +$env.PROMPT_COMMAND = { + let dir = (pwd | path basename) + let home_dir = ($dir | str replace "coast" "home") + $"(ansi reset)0 ($env.USER) ($home_dir) " +} + +$env.PROMPT_INDICATOR = "" + +let carapace_completer = {|spans| + carapace $spans.0 nushell ...$spans | from json +} + +$env.config = { + show_banner: false + completions: { + case_sensitive: false + quick: true + partial: true + algorithm: "fuzzy" + external: { + enable: true + max_results: 100 + completer: $carapace_completer + } + } +} + +alias sd = sudo +alias nano = vim +alias suod = sudo +alias sduo = sudo +alias hotp = htop +alias c = clear +alias dir = tree -idA + +let bg0 = "#0f0f0f" +let bg1 = "#1a1a1a" +let bg2 = "#2a2a2a" +let bg3 = "#3a3a3a" +let fg0 = "#e0def4" +let fg1 = "#ebbcba" +let red = "#eb6f92" +let green = "#eb6f92" +let yellow = "#ea9a97" +let blue = "#d7827e" +let purple = "#ea9a97" +let aqua = "#ebbcba" +let orange = "#ea9a97" +let gray = "#6e6a86" + +let dark = { + separator: $gray, + leading_trailing_space_bg: $bg1, + header: $yellow, + datetime: $blue, + filesize: $green, + row_index: $gray, + + bool: $green, + int: $orange, + float: $yellow, + string: $fg1, + nothing: $gray, + binary: $red, + cell-path: $blue, + hints: $gray, + + shape_garbage: { fg: $fg0 bg: $red attr: b }, + shape_bool: $green, + shape_int: { fg: $orange attr: b }, + shape_float: { fg: $yellow attr: b }, + shape_range: { fg: $yellow attr: b }, + shape_internalcall: { fg: $aqua attr: b }, + shape_external: $blue, + shape_externalarg: { fg: $green attr: b }, + shape_literal: $fg1, + shape_operator: $orange, + shape_signature: { fg: $yellow attr: b }, + shape_string: $purple, + shape_filepath: $blue, + shape_globpattern: { fg: $blue attr: b }, + shape_variable: $aqua, + shape_flag: { fg: $yellow attr: b }, + shape_custom: { attr: b } +} + +$env.config.color_config = $dark +$env.config.use_ansi_coloring = true + +source ~/.config/nushell/starship.nu + diff --git a/config/nushell/starship.nu b/config/nushell/starship.nu new file mode 100755 index 0000000..8bef494 --- /dev/null +++ b/config/nushell/starship.nu @@ -0,0 +1,35 @@ +export-env { $env.STARSHIP_SHELL = "nu"; load-env { + STARSHIP_SESSION_KEY: (random chars -l 16) + PROMPT_MULTILINE_INDICATOR: ( + ^/etc/profiles/per-user/coast/bin/starship prompt --continuation + ) + + # Does not play well with default character module. + # TODO: Also Use starship vi mode indicators? + PROMPT_INDICATOR: "" + + PROMPT_COMMAND: {|| + # jobs are not supported + ( + ^/etc/profiles/per-user/coast/bin/starship prompt + --cmd-duration $env.CMD_DURATION_MS + $"--status=($env.LAST_EXIT_CODE)" + --terminal-width (term size).columns + ) + } + + config: ($env.config? | default {} | merge { + render_right_prompt_on_last_line: true + }) + + PROMPT_COMMAND_RIGHT: {|| + ( + ^/etc/profiles/per-user/coast/bin/starship prompt + --right + --cmd-duration $env.CMD_DURATION_MS + $"--status=($env.LAST_EXIT_CODE)" + --terminal-width (term size).columns + ) + } +}} + diff --git a/config/nvim-1/init.lua b/config/nvim-1/init.lua new file mode 100755 index 0000000..d9da61e --- /dev/null +++ b/config/nvim-1/init.lua @@ -0,0 +1,11 @@ +require("plugins/lazy") +require("plugins/lsp") +require("plugins/nvim-tree") +require("plugins/telescope") +require("plugins/treesitter") +require("config") +require("plugins/render-markdown") +--require("status_line").setup() +require("plugins/lualine") +require("plugins/catppuccin") +require("colorizer").setup() -- #ffffff #edb511 diff --git a/config/nvim-1/lazy-lock.json b/config/nvim-1/lazy-lock.json new file mode 100755 index 0000000..27e4c91 --- /dev/null +++ b/config/nvim-1/lazy-lock.json @@ -0,0 +1,40 @@ +{ + "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, + "cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, + "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, + "cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" }, + "cmp-spell": { "branch": "master", "commit": "694a4e50809d6d645c1ea29015dad0c293f019d6" }, + "cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" }, + "comfy-line-numbers.nvim": { "branch": "main", "commit": "31e2f9287b4491ad72defb9e0185eb2739983799" }, + "fterm.nvim": { "branch": "master", "commit": "d1320892cc2ebab472935242d9d992a2c9570180" }, + "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, + "lsp_signature.nvim": { "branch": "master", "commit": "d50e40b3bf9324128e71b0b7e589765ce89466d2" }, + "lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" }, + "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, + "mini.nvim": { "branch": "main", "commit": "429e5f9dc9cd59bf76cd98b687300f0a384a7f52" }, + "moonfly": { "branch": "master", "commit": "ef85b89739bee184e204c89bc06280d62bd84039" }, + "none-ls-extras.nvim": { "branch": "main", "commit": "924fe88a9983c7d90dbb31fc4e3129a583ea0a90" }, + "none-ls.nvim": { "branch": "main", "commit": "db2a48b79cfcdab8baa5d3f37f21c78b6705c62e" }, + "nvim": { "branch": "main", "commit": "0a5de4da015a175f416d6ef1eda84661623e0500" }, + "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, + "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, + "nvim-lspconfig": { "branch": "master", "commit": "77d3fdfb3554632c7a3b101ded643d422de7626f" }, + "nvim-numbertoggle": { "branch": "main", "commit": "923f9709989605fe2bc4b9de8a3625fa808f5cd6" }, + "nvim-toggler": { "branch": "main", "commit": "467808600882fd6c9e33b9dbc4889b1b80cfd917" }, + "nvim-tree.lua": { "branch": "master", "commit": "1c733e8c1957dc67f47580fe9c458a13b5612d5b" }, + "nvim-treesitter": { "branch": "main", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, + "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" }, + "render-markdown.nvim": { "branch": "main", "commit": "10126effbafb74541b69219711dfb2c631e7ebf8" }, + "telescope-undo.nvim": { "branch": "main", "commit": "928d0c2dc9606e01e2cc547196f48d2eaecf58e5" }, + "telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }, + "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, + "twilight.nvim": { "branch": "main", "commit": "664e752f4a219801265cc3fc18782b457b58c1e1" }, + "typst-preview.nvim": { "branch": "master", "commit": "e544812bba84b4f7976590f2b6c0dfbd099e1893" }, + "vim-closetag": { "branch": "master", "commit": "d0a562f8bdb107a50595aefe53b1a690460c3822" }, + "vim-vsnip": { "branch": "master", "commit": "0a4b8419e44f47c57eec4c90df17567ad4b1b36e" }, + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } +} diff --git a/config/nvim-1/lua/config.lua b/config/nvim-1/lua/config.lua new file mode 100755 index 0000000..f37534b --- /dev/null +++ b/config/nvim-1/lua/config.lua @@ -0,0 +1,86 @@ +local opt = vim.opt +local map = vim.keymap.set +local g = vim.g + +--filetypes +vim.cmd("autocmd BufRead,BufNewFile *.m set filetype=objc") + +g.mapleader = " " + +opt.shiftwidth = 4 +opt.tabstop = 4 +opt.softtabstop = 4 +opt.smarttab = true +opt.smartindent = true + +opt.undofile = true +opt.undodir = vim.fn.stdpath("config") .. "/undo" + +opt.number = true +opt.relativenumber = true + +opt.fillchars = "eob: " + +g.loaded_netrw = 1 +g.loaded_netrwPlugin = 1 + +opt.termguicolors = true + +opt.spell = false +opt.spelllang = { "en_us" } + +opt.shell = "/usr/bin/zsh" + +vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { + border = "single", +}) +vim.diagnostic.config({ float = { border = "single" } }) + +map("n", "u", ":Telescope") +map("n", "t", ":tabnew") +map("n", "", ":tabn") +map("n", "", ":tabp") +map("n", "", ":bw") + +map("n", ".", vim.diagnostic.open_float) + +map("n", "=", "=") + +map("n", "x", "!chmod +x %") + +vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("UserLspConfig", {}), + callback = function(ev) + vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" + + local opts = { buffer = ev.buf } + map("n", "K", function() + vim.lsp.buf.hover({ border = "single" }) + end, opts) + map("n", "gi", vim.lsp.buf.implementation, opts) + map("n", "", vim.lsp.buf.signature_help, opts) + map("n", "wa", vim.lsp.buf.add_workspace_folder, opts) + map("n", "wr", vim.lsp.buf.remove_workspace_folder, opts) + map("n", "wl", function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, opts) + map("n", "D", vim.lsp.buf.type_definition, opts) + map("n", "rn", vim.lsp.buf.rename, opts) + map({ "n", "v" }, "ca", vim.lsp.buf.code_action, opts) + map("n", "gr", vim.lsp.buf.references, opts) + map("n", "f", function() + vim.lsp.buf.format({ async = true }) + end, opts) + end, +}) + +local builtin = require("telescope.builtin") +map("n", "ff", builtin.find_files, {}) +map("n", "fg", builtin.live_grep, {}) +map("n", "fb", builtin.buffers, {}) +map("n", "fh", builtin.help_tags, {}) +local treeapi = require("nvim-tree.api") +map("n", "e", treeapi.tree.toggle, {}) + +map("n", "", 'lua require("FTerm").toggle()') +map("t", "", 'lua require("FTerm").toggle()') diff --git a/config/nvim-1/lua/plugins/catppuccin/init.lua b/config/nvim-1/lua/plugins/catppuccin/init.lua new file mode 100755 index 0000000..29afa04 --- /dev/null +++ b/config/nvim-1/lua/plugins/catppuccin/init.lua @@ -0,0 +1,84 @@ +local colors = { + black = "#121212", + white = "#ffffff", + gray = "#7e7e7e", + light_gray = "#d0d0d0", + dark_gray = "#505050", + red = "#ff5c57", + green = "#5af78e", + yellow = "#f3f99d", + blue = "#57c7ff", + purple = "#d183e8", + cyan = "#9aedfe", +} + +local highlights = { + Normal = { fg = colors.light_gray, bg = colors.black }, + Comment = { fg = colors.gray, italic = true }, + Constant = { fg = colors.blue }, + String = { fg = colors.green }, + Identifier = { fg = colors.blue }, + Function = { fg = colors.purple }, + Statement = { fg = colors.yellow }, + PreProc = { fg = colors.cyan }, + Type = { fg = colors.blue }, + Special = { fg = colors.red }, + Underlined = { fg = colors.white, underline = true }, + Todo = { fg = colors.black, bg = colors.yellow, bold = true }, + + StatusLine = { fg = colors.white, bg = colors.dark_gray }, + StatusLineNC = { fg = colors.light_gray, bg = colors.black }, + NvimTreeNormal = { fg = colors.light_gray, bg = colors.black }, + NvimTreeFolderName = { fg = colors.blue, bold = true }, + NvimTreeOpenedFolderName = { fg = colors.green, bold = true }, + NvimTreeRootFolder = { fg = colors.yellow, bold = true, underline = true }, + NvimTreeFileIcon = { fg = colors.light_gray }, + NvimTreeGitDirty = { fg = colors.red }, + NvimTreeGitStaged = { fg = colors.green }, + NvimTreeGitNew = { fg = colors.blue }, + NvimTreeGitRenamed = { fg = colors.purple }, + NvimTreeGitDeleted = { fg = colors.red }, + CursorLine = { bg = colors.dark_gray }, +} + +for group, opts in pairs(highlights) do + vim.api.nvim_set_hl(0, group, opts) +end + +require("lualine").setup({ + options = { + theme = { + normal = { + a = { fg = colors.black, bg = colors.white, gui = "bold" }, + b = { fg = colors.white, bg = colors.dark_gray }, + c = { fg = colors.white, bg = colors.black }, + }, + inactive = { + a = { fg = colors.dark_gray, bg = colors.black, gui = "bold" }, + b = { fg = colors.dark_gray, bg = colors.black }, + c = { fg = colors.dark_gray, bg = colors.black }, + }, + }, + }, +}) + +require("nvim-tree").setup({ + view = { + width = 30, + side = "left", + }, + renderer = { + highlight_git = true, + root_folder_modifier = ":~", + icons = { + show = { + file = true, + folder = true, + git = true, + }, + }, + }, + filters = { + dotfiles = false, + }, +}) diff --git a/config/nvim-1/lua/plugins/lazy/init.lua b/config/nvim-1/lua/plugins/lazy/init.lua new file mode 100755 index 0000000..497cf69 --- /dev/null +++ b/config/nvim-1/lua/plugins/lazy/init.lua @@ -0,0 +1,17 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +local lazy_plugins = require("plugins/lazy/plugins") + +require("lazy").setup(lazy_plugins) +require("mason").setup() diff --git a/config/nvim-1/lua/plugins/lazy/plugins.lua b/config/nvim-1/lua/plugins/lazy/plugins.lua new file mode 100755 index 0000000..10da3ea --- /dev/null +++ b/config/nvim-1/lua/plugins/lazy/plugins.lua @@ -0,0 +1,128 @@ +return { + { + "andweeb/presence.nvim", + "catppuccin/nvim", + --"morhetz/gruvbox", + "neovim/nvim-lspconfig", + "williamboman/mason.nvim", + { + "nvim-telescope/telescope.nvim", + tag = "0.1.5", + dependencies = { "nvim-lua/plenary.nvim" }, + }, + { + "nvim-tree/nvim-tree.lua", + dependencies = { "nvim-tree/nvim-web-devicons" }, + }, + { + "folke/todo-comments.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + opts = {}, + }, + { + "nvim-lualine/lualine.nvim", + dependencies = { "nvim-tree/nvim-web-devicons" }, + }, + { + "nvimtools/none-ls.nvim", + dependencies = { + "nvimtools/none-ls-extras.nvim", + }, + }, + { + "windwp/nvim-autopairs", + event = "InsertEnter", + }, + { + "hrsh7th/nvim-cmp", + dependencies = { + "neovim/nvim-lspconfig", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-nvim-lua", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + "hrsh7th/cmp-cmdline", + "hrsh7th/cmp-vsnip", + "hrsh7th/vim-vsnip", + }, + }, + { + "ray-x/lsp_signature.nvim", + event = "VeryLazy", + }, + "nvim-treesitter/nvim-treesitter", + "f3fora/cmp-spell", + { + "debugloop/telescope-undo.nvim", + dependencies = { + { + "nvim-telescope/telescope.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + }, + }, + }, + { + "chomosuke/typst-preview.nvim", + lazy = false, + version = "1.*", + opts = {}, + }, + { + "MeanderingProgrammer/render-markdown.nvim", + dependencies = { + "nvim-treesitter/nvim-treesitter", + "nvim-mini/mini.nvim", + }, + opts = {}, + }, + "sitiom/nvim-numbertoggle", + "mluders/comfy-line-numbers.nvim", + { + "folke/which-key.nvim", + event = "VeryLazy", + init = function() + vim.o.timeout = true + vim.o.timeoutlen = 300 + end, + }, + { + "folke/twilight.nvim", + opts = { + dimming = { + alpha = 0.35, + color = { "Normal" }, + term_bg = "#282828", + inactive = false, + }, + context = 15, + treesitter = true, + expand = { + "function", + "method", + "table", + "if_statement", + }, + exclude = { + "md", + }, + }, + }, + "nguyenvukhang/nvim-toggler", + "alvan/vim-closetag", + "norcalli/nvim-colorizer.lua", + { + "numtostr/fterm.nvim", + border = "double", + dimensions = { + height = 0.9, + width = 0.9, + }, + }, + { + "bluz71/vim-moonfly-colors", + name = "moonfly", + lazy = false, + priority = 1000, + }, + }, +} diff --git a/config/nvim-1/lua/plugins/lsp/init.lua b/config/nvim-1/lua/plugins/lsp/init.lua new file mode 100755 index 0000000..1785d51 --- /dev/null +++ b/config/nvim-1/lua/plugins/lsp/init.lua @@ -0,0 +1,120 @@ +local lsp = require("lspconfig") +local fmt = require("null-ls") +local cmp = require("cmp") + +require("nvim-autopairs").setup({}) +require("lsp_signature").setup({ hint_enable = false }) + +local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) +fmt.setup({ + sources = { + fmt.builtins.formatting.clang_format, + require("none-ls.formatting.rustfmt"), + fmt.builtins.formatting.stylua, + fmt.builtins.formatting.gofmt, + }, + on_attach = function(client, bufnr) + if client.supports_method("textDocument/formatting") then + vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + vim.lsp.buf.format({ async = false }) + end, + }) + end + end, +}) + +cmp.setup({ + snippet = { + expand = function(args) + vim.fn["vsnip#anonymous"](args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm({ select = true }), + }), + window = { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered() }, + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "vsnip" }, + { name = "spell" }, + }, { + { name = "buffer" }, + { name = "nvim_lua" }, + }), +}) + +local capabilities = require("cmp_nvim_lsp").default_capabilities() + +lsp.html.setup({ + cmd = { "vscode-html-language-server", "--stdio" }, + capabilities = capabilities, + init_options = { + configurationSection = { "html", "css", "javascript" }, + embeddedLanguages = { css = true, javascript = true }, + provideFormatter = true, + }, + settings = { + html = { + format = { + wrapLineLength = 120, + wrapAttributes = "auto", + contentUnformatted = "pre,code,textarea", + }, + hover = { documentation = true, references = true }, + }, + }, +}) + +lsp.cssls.setup({ + capabilities = capabilities, + settings = { css = { validate = true }, scss = { validate = true }, less = { validate = true } }, +}) + +lsp.ts_ls.setup({ + capabilities = capabilities, + on_attach = function(client) + client.server_capabilities.documentFormattingProvider = false + end, +}) + +lsp.rust_analyzer.setup({ capabilities = capabilities }) + +local clangd_capabilities = vim.deepcopy(capabilities) +clangd_capabilities["offsetEncoding"] = "utf-8" +lsp.clangd.setup({ + cmd = { "clangd", "--background-index", "--function-arg-placeholders=0", "-j=12", "--clang-tidy" }, + capabilities = clangd_capabilities, + init_options = { documentFormatting = true }, +}) + +lsp.pyright.setup({ capabilities = capabilities }) +lsp.gopls.setup({ capabilities = capabilities }) +lsp.asm_lsp.setup({ capabilities = capabilities }) +lsp.zls.setup({ capabilities = capabilities }) +lsp.jdtls.setup({ capabilities = capabilities }) +lsp.tinymist.setup({ capabilities = capabilities }) + +lsp.lua_ls.setup({ + on_init = function(client) + local path = client.workspace_folders[1].name + if not vim.loop.fs_stat(path .. "/.luarc.json") and not vim.loop.fs_stat(path .. "/.luarc.jsonc") then + client.config.settings = vim.tbl_deep_extend("force", client.config.settings, { + Lua = { + runtime = { version = "LuaJIT" }, + workspace = { checkThirdParty = false, library = { vim.env.VIMRUNTIME } }, + }, + }) + client.notify("workspace/didChangeConfiguration", { settings = client.config.settings }) + end + return true + end, + capabilities = capabilities, +}) diff --git a/config/nvim-1/lua/plugins/lualine/init.lua b/config/nvim-1/lua/plugins/lualine/init.lua new file mode 100755 index 0000000..8de1ba9 --- /dev/null +++ b/config/nvim-1/lua/plugins/lualine/init.lua @@ -0,0 +1,42 @@ +local lualine = require("lualine") + +lualine.setup({ + options = { + icons_enabled = true, + theme = "auto", + component_separators = { left = "|", right = "|" }, + section_separators = { left = "", right = "" }, + disabled_filetypes = { + statusline = {}, + winbar = {}, + }, + ignore_focus = {}, + always_divide_middle = true, + globalstatus = false, + refresh = { + statusline = 1000, + tabline = 1000, + winbar = 1000, + }, + }, + sections = { + lualine_a = { "mode" }, + lualine_b = { "branch", "diff", "diagnostics" }, + lualine_c = { "filename" }, + lualine_x = { "encoding", "fileformat", "filetype" }, + lualine_y = {}, + lualine_z = { "location" }, + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = { "filename" }, + lualine_x = { "location" }, + lualine_y = {}, + lualine_z = {}, + }, + tabline = {}, + winbar = {}, + inactive_winbar = {}, + extensions = {}, +}) diff --git a/config/nvim-1/lua/plugins/nvim-tree/init.lua b/config/nvim-1/lua/plugins/nvim-tree/init.lua new file mode 100755 index 0000000..c7174f7 --- /dev/null +++ b/config/nvim-1/lua/plugins/nvim-tree/init.lua @@ -0,0 +1,2 @@ +local tree = require("nvim-tree") +tree.setup() \ No newline at end of file diff --git a/config/nvim-1/lua/plugins/render-markdown/init.lua b/config/nvim-1/lua/plugins/render-markdown/init.lua new file mode 100755 index 0000000..ab078ce --- /dev/null +++ b/config/nvim-1/lua/plugins/render-markdown/init.lua @@ -0,0 +1,139 @@ +require("render-markdown").setup({ + link = { + -- Turn on / off inline link icon rendering. + enabled = true, + -- Additional modes to render links. + render_modes = false, + -- How to handle footnote links, start with a '^'. + footnote = { + -- Turn on / off footnote rendering. + enabled = true, + -- Replace value with superscript equivalent. + superscript = true, + -- Added before link content. + prefix = "", + -- Added after link content. + suffix = "", + }, + -- Inlined with 'image' elements. + image = "󰥶 ", + -- Inlined with 'email_autolink' elements. + email = "󰀓 ", + -- Fallback icon for 'inline_link' and 'uri_autolink' elements. + hyperlink = "󰌹 ", + -- Applies to the inlined icon as a fallback. + highlight = "RenderMarkdownLink", + -- Applies to WikiLink elements. + wiki = { + icon = "󱗖 ", + body = function() + return nil + end, + highlight = "RenderMarkdownWikiLink", + }, + -- Define custom destination patterns so icons can quickly inform you of what a link + -- contains. Applies to 'inline_link', 'uri_autolink', and wikilink nodes. When multiple + -- patterns match a link the one with the longer pattern is used. + -- The key is for healthcheck and to allow users to change its values, value type below. + -- | pattern | matched against the destination text | + -- | icon | gets inlined before the link text | + -- | kind | optional determines how pattern is checked | + -- | | pattern | @see :h lua-patterns, is the default if not set | + -- | | suffix | @see :h vim.endswith() | + -- | priority | optional used when multiple match, uses pattern length if empty | + -- | highlight | optional highlight for 'icon', uses fallback highlight if empty | + custom = { + web = { pattern = "^http", icon = "󰖟 " }, + github = { pattern = "github%.com", icon = "󰊤 " }, + gitlab = { pattern = "gitlab%.com", icon = "󰮠 " }, + stackoverflow = { pattern = "stackoverflow%.com", icon = "󰓌 " }, + wikipedia = { pattern = "wikipedia%.org", icon = "󰖬 " }, + youtube = { pattern = "youtube%.com", icon = "󰗃 " }, + }, + }, + callout = { + -- Callouts are a special instance of a 'block_quote' that start with a 'shortcut_link'. + -- The key is for healthcheck and to allow users to change its values, value type below. + -- | raw | matched against the raw text of a 'shortcut_link', case insensitive | + -- | rendered | replaces the 'raw' value when rendering | + -- | highlight | highlight for the 'rendered' text and quote markers | + -- | quote_icon | optional override for quote.icon value for individual callout | + -- | category | optional metadata useful for filtering | + + note = { raw = "[!NOTE]", rendered = "󰋽 Note", highlight = "RenderMarkdownInfo" }, + tip = { raw = "[!TIP]", rendered = "󰌶 Tip", highlight = "RenderMarkdownSuccess" }, + important = { raw = "[!IMPORTANT]", rendered = "󰅾 Important", highlight = "RenderMarkdownHint" }, + warning = { raw = "[!WARNING]", rendered = "󰀪 Warning", highlight = "RenderMarkdownWarn" }, + caution = { raw = "[!CAUTION]", rendered = "󰳦 Caution", highlight = "RenderMarkdownError" }, + abstract = { raw = "[!ABSTRACT]", rendered = "󰨸 Abstract", highlight = "RenderMarkdownInfo" }, + summary = { raw = "[!SUMMARY]", rendered = "󰨸 Summary", highlight = "RenderMarkdownInfo" }, + tldr = { raw = "[!TLDR]", rendered = "󰨸 Tldr", highlight = "RenderMarkdownInfo" }, + info = { raw = "[!INFO]", rendered = "󰋽 Info", highlight = "RenderMarkdownInfo" }, + todo = { raw = "[!TODO]", rendered = "󰗡 Todo", highlight = "RenderMarkdownInfo" }, + hint = { raw = "[!HINT]", rendered = "󰌶 Hint", highlight = "RenderMarkdownSuccess" }, + success = { raw = "[!SUCCESS]", rendered = "󰄬 Success", highlight = "RenderMarkdownSuccess" }, + check = { raw = "[!CHECK]", rendered = "󰄬 Check", highlight = "RenderMarkdownSuccess" }, + done = { raw = "[!DONE]", rendered = "󰄬 Done", highlight = "RenderMarkdownSuccess" }, + question = { raw = "[!QUESTION]", rendered = "󰘥 Question", highlight = "RenderMarkdownWarn" }, + help = { raw = "[!HELP]", rendered = "󰘥 Help", highlight = "RenderMarkdownWarn" }, + faq = { raw = "[!FAQ]", rendered = "󰘥 Faq", highlight = "RenderMarkdownWarn" }, + attention = { raw = "[!ATTENTION]", rendered = "󰀪 Attention", highlight = "RenderMarkdownWarn" }, + failure = { raw = "[!FAILURE]", rendered = "󰅖 Failure", highlight = "RenderMarkdownError" }, + fail = { raw = "[!FAIL]", rendered = "󰅖 Fail", highlight = "RenderMarkdownError" }, + missing = { raw = "[!MISSING]", rendered = "󰅖 Missing", highlight = "RenderMarkdownError" }, + danger = { raw = "[!DANGER]", rendered = "󱐌 Danger", highlight = "RenderMarkdownError" }, + error = { raw = "[!ERROR]", rendered = "󱐌 Error", highlight = "RenderMarkdownError" }, + bug = { raw = "[!BUG]", rendered = "󰨰 Bug", highlight = "RenderMarkdownError" }, + example = { raw = "[!EXAMPLE]", rendered = "󰉹 Example", highlight = "RenderMarkdownHint" }, + quote = { raw = "[!QUOTE]", rendered = "󱆨 Quote", highlight = "RenderMarkdownQuote" }, + cite = { raw = "[!CITE]", rendered = "󱆨 Cite", highlight = "RenderMarkdownQuote" }, + }, + checkbox = { + enabled = true, + render_modes = false, + bullet = false, + right_pad = 1, + unchecked = { + icon = "󰄱 ", + highlight = "RenderMarkdownUnchecked", + scope_highlight = nil, + }, + checked = { + icon = "󰱒 ", + highlight = "RenderMarkdownChecked", + scope_highlight = nil, + }, + custom = { + todo = { raw = "[-]", rendered = "󰥔 ", highlight = "RenderMarkdownTodo", scope_highlight = nil }, + }, + }, + bullet = { + enabled = true, + render_modes = false, + icons = { "●", "○", "◆", "◇" }, + ordered_icons = function(ctx) + local value = vim.trim(ctx.value) + local index = tonumber(value:sub(1, #value - 1)) + return ("%d."):format(index > 1 and index or ctx.index) + end, + left_pad = 0, + right_pad = 0, + highlight = "RenderMarkdownBullet", + scope_highlight = {}, + }, + quote = { icon = "▋" }, + anti_conceal = { + enabled = true, + -- Which elements to always show, ignoring anti conceal behavior. Values can either be + -- booleans to fix the behavior or string lists representing modes where anti conceal + -- behavior will be ignored. Valid values are: + -- head_icon, head_background, head_border, code_language, code_background, code_border, + -- dash, bullet, check_icon, check_scope, quote, table_border, callout, link, sign + ignore = { + code_background = true, + sign = true, + }, + above = 0, + below = 0, + }, +}) diff --git a/config/nvim-1/lua/plugins/telescope/init.lua b/config/nvim-1/lua/plugins/telescope/init.lua new file mode 100755 index 0000000..2cb0f77 --- /dev/null +++ b/config/nvim-1/lua/plugins/telescope/init.lua @@ -0,0 +1,3 @@ +local tel = require("telescope") +tel.setup({}) +tel.load_extension("undo") diff --git a/config/nvim-1/lua/plugins/treesitter/init.lua b/config/nvim-1/lua/plugins/treesitter/init.lua new file mode 100755 index 0000000..192cab7 --- /dev/null +++ b/config/nvim-1/lua/plugins/treesitter/init.lua @@ -0,0 +1,10 @@ +local ts = require("nvim-treesitter.configs") + +ts.setup({ + ensure_installed = { "c", "cpp", "lua", "go", "gomod", "gowork", "gosum", "rust", "python" }, + auto_install = true, + sync_install = true, + highlight = { + enable = true + } +}) diff --git a/config/nvim-1/lua/plugins/whichkey/init.lua b/config/nvim-1/lua/plugins/whichkey/init.lua new file mode 100755 index 0000000..e6b9906 --- /dev/null +++ b/config/nvim-1/lua/plugins/whichkey/init.lua @@ -0,0 +1,2 @@ +local wk = require("which-key") +wk.setup({}) diff --git a/config/nvim-1/lua/status_line/init.lua b/config/nvim-1/lua/status_line/init.lua new file mode 100755 index 0000000..904684b --- /dev/null +++ b/config/nvim-1/lua/status_line/init.lua @@ -0,0 +1,102 @@ +local colors = { + foreground = "#ebdbb2", + pink = "#b16286", + red = "#cc241d", + green = "#98971a", + yellow = "#d79921", + orange = "#d65d0e", + magenta = "#b16286", + cyan = "#458588", + bg_darken = "#1d2021", + dark_text = "#1d2021", +} + +local M = {} + +function M.setup() + vim.cmd("hi StatusBackground guifg=" .. colors.foreground .. " guibg=" .. colors.bg_darken) + vim.cmd("hi Moden guifg=" .. colors.dark_text .. " guibg=" .. colors.pink .. " gui=bold") + vim.cmd("hi Modei guifg=" .. colors.dark_text .. " guibg=" .. colors.green .. " gui=bold") + vim.cmd("hi Modev guifg=" .. colors.dark_text .. " guibg=" .. colors.yellow .. " gui=bold") + vim.cmd("hi Modet guifg=" .. colors.dark_text .. " guibg=" .. colors.orange .. " gui=bold") + vim.cmd("hi Modec guifg=" .. colors.dark_text .. " guibg=" .. colors.magenta .. " gui=bold") + vim.cmd("hi Moder guifg=" .. colors.dark_text .. " guibg=" .. colors.red .. " gui=bold") + vim.cmd("hi Filetype guifg=" .. colors.cyan .. " guibg=" .. colors.bg_darken .. " gui=bold") + vim.cmd("hi Position guifg=" .. colors.yellow .. " guibg=" .. colors.bg_darken .. " gui=bold") + vim.cmd("hi GitBranch guifg=" .. colors.orange .. " guibg=" .. colors.bg_darken .. " gui=bold") + vim.cmd("hi GitDiff guifg=" .. colors.green .. " guibg=" .. colors.bg_darken) + vim.cmd("hi GitDiffDel guifg=" .. colors.red .. " guibg=" .. colors.bg_darken) + vim.cmd("hi Separator guifg=" .. colors.foreground .. " guibg=" .. colors.bg_darken) + vim.cmd("hi LSPError guifg=" .. colors.red .. " guibg=" .. colors.bg_darken) + vim.cmd("hi LSPWarn guifg=" .. colors.yellow .. " guibg=" .. colors.bg_darken) + vim.cmd("hi LSPInfo guifg=" .. colors.cyan .. " guibg=" .. colors.bg_darken) + vim.cmd("hi LSPOk guifg=" .. colors.green .. " guibg=" .. colors.bg_darken) + + vim.o.statusline = table.concat({ + "%{%v:lua.themeStatuslineMode()%} ", + "%f ", + "%{%v:lua.themeGitBranch()%} ", + "%{%v:lua.themeGitDiff()%} ", + "%{%v:lua.themeLSP()%} ", + "%=", + "%{%v:lua.themeStatuslineFiletype()%} ", + "%{%v:lua.themeStatuslinePosition()%}", + }) +end + +function themeStatuslineMode() + local mode = vim.fn.mode() + local mode_highlight = "Mode" .. mode:sub(1, 1) + return string.format("%%#%s# %s %%#StatusBackground#", mode_highlight, mode:upper()) +end + +function themeStatuslineFiletype() + return string.format("%%#Filetype# %s %%#Separator#│%%#StatusBackground#", vim.bo.filetype) +end + +function themeStatuslinePosition() + local row, col = unpack(vim.api.nvim_win_get_cursor(0)) + return string.format("%%#Position# %03d:%02d ", row, col) +end + +function themeGitBranch() + local branch = vim.fn.systemlist("git rev-parse --abbrev-ref HEAD 2>/dev/null")[1] or "" + if branch ~= "" then + return string.format("%%#GitBranch# %s %%#Separator#│%%#StatusBackground#", branch) + end + return "" +end + +function themeGitDiff() + local diff = vim.fn.systemlist("git diff --shortstat 2>/dev/null")[1] or "" + local added, removed = diff:match("(%d+) insertions?"), diff:match("(%d+) deletions?") + added = added or "0" + removed = removed or "0" + if diff ~= "" then + return string.format("%%#GitDiff#+%s %%#GitDiffDel#-%s %%#StatusBackground#", added, removed) + end + return "" +end + +function themeLSP() + local errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR }) + local warns = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN }) + local info = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO }) + local hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT }) + local str = "" + if errors > 0 then + str = str .. string.format("%%#LSPError#E:%d ", errors) + end + if warns > 0 then + str = str .. string.format("%%#LSPWarn#W:%d ", warns) + end + if info > 0 then + str = str .. string.format("%%#LSPInfo#I:%d ", info) + end + if hints > 0 then + str = str .. string.format("%%#LSPOk#H:%d ", hints) + end + return str +end + +return M diff --git a/config/nvim-1/undo/%home%coast%.Xdefaults b/config/nvim-1/undo/%home%coast%.Xdefaults new file mode 100644 index 0000000..ec94686 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.Xdefaults differ diff --git a/config/nvim-1/undo/%home%coast%.config%Element%electron-config.json b/config/nvim-1/undo/%home%coast%.config%Element%electron-config.json new file mode 100644 index 0000000..c97175a Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%Element%electron-config.json differ diff --git a/config/nvim-1/undo/%home%coast%.config%alacritty%alacritty.toml b/config/nvim-1/undo/%home%coast%.config%alacritty%alacritty.toml new file mode 100644 index 0000000..d3c6a07 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%alacritty%alacritty.toml differ diff --git a/config/nvim-1/undo/%home%coast%.config%dunst%dunstrc b/config/nvim-1/undo/%home%coast%.config%dunst%dunstrc new file mode 100644 index 0000000..f79da8c Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%dunst%dunstrc differ diff --git a/config/nvim-1/undo/%home%coast%.config%eww%_colors.scss b/config/nvim-1/undo/%home%coast%.config%eww%_colors.scss new file mode 100644 index 0000000..a081160 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%eww%_colors.scss differ diff --git a/config/nvim-1/undo/%home%coast%.config%eww%eww.scss b/config/nvim-1/undo/%home%coast%.config%eww%eww.scss new file mode 100644 index 0000000..35c5ada Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%eww%eww.scss differ diff --git a/config/nvim-1/undo/%home%coast%.config%eww%eww.yuck b/config/nvim-1/undo/%home%coast%.config%eww%eww.yuck new file mode 100644 index 0000000..ef847ca Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%eww%eww.yuck differ diff --git a/config/nvim-1/undo/%home%coast%.config%eww%scripts%get-active-workspace.sh b/config/nvim-1/undo/%home%coast%.config%eww%scripts%get-active-workspace.sh new file mode 100644 index 0000000..5b8174a Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%eww%scripts%get-active-workspace.sh differ diff --git a/config/nvim-1/undo/%home%coast%.config%eww%scripts%get-workspaces.sh b/config/nvim-1/undo/%home%coast%.config%eww%scripts%get-workspaces.sh new file mode 100644 index 0000000..b51d1e9 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%eww%scripts%get-workspaces.sh differ diff --git a/config/nvim-1/undo/%home%coast%.config%fht%compositor.toml b/config/nvim-1/undo/%home%coast%.config%fht%compositor.toml new file mode 100644 index 0000000..ddc12da Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%fht%compositor.toml differ diff --git a/config/nvim-1/undo/%home%coast%.config%foot%foot.ini b/config/nvim-1/undo/%home%coast%.config%foot%foot.ini new file mode 100644 index 0000000..da3ee23 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%foot%foot.ini differ diff --git a/config/nvim-1/undo/%home%coast%.config%hypr%hypridle.conf b/config/nvim-1/undo/%home%coast%.config%hypr%hypridle.conf new file mode 100644 index 0000000..9added8 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%hypr%hypridle.conf differ diff --git a/config/nvim-1/undo/%home%coast%.config%hypr%hyprland.conf b/config/nvim-1/undo/%home%coast%.config%hypr%hyprland.conf new file mode 100644 index 0000000..ea2a4f8 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%hypr%hyprland.conf differ diff --git a/config/nvim-1/undo/%home%coast%.config%hypr%hyprlock.conf b/config/nvim-1/undo/%home%coast%.config%hypr%hyprlock.conf new file mode 100644 index 0000000..1ca560c Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%hypr%hyprlock.conf differ diff --git a/config/nvim-1/undo/%home%coast%.config%kwm%config.zon b/config/nvim-1/undo/%home%coast%.config%kwm%config.zon new file mode 100644 index 0000000..16be823 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%kwm%config.zon differ diff --git a/config/nvim-1/undo/%home%coast%.config%mako%config b/config/nvim-1/undo/%home%coast%.config%mako%config new file mode 100644 index 0000000..21d4ef3 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%mako%config differ diff --git a/config/nvim-1/undo/%home%coast%.config%mozilla%firefox%8kysq72s.default-release%chrome%userChrome.css b/config/nvim-1/undo/%home%coast%.config%mozilla%firefox%8kysq72s.default-release%chrome%userChrome.css new file mode 100644 index 0000000..19027c2 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%mozilla%firefox%8kysq72s.default-release%chrome%userChrome.css differ diff --git a/config/nvim-1/undo/%home%coast%.config%neofetch%config.conf b/config/nvim-1/undo/%home%coast%.config%neofetch%config.conf new file mode 100644 index 0000000..c006483 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%neofetch%config.conf differ diff --git a/config/nvim-1/undo/%home%coast%.config%nvim%lua%plugins%catppuccin%init.lua b/config/nvim-1/undo/%home%coast%.config%nvim%lua%plugins%catppuccin%init.lua new file mode 100644 index 0000000..6a0cc3b Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%nvim%lua%plugins%catppuccin%init.lua differ diff --git a/config/nvim-1/undo/%home%coast%.config%nvim%lua%plugins%lazy%plugins.lua b/config/nvim-1/undo/%home%coast%.config%nvim%lua%plugins%lazy%plugins.lua new file mode 100644 index 0000000..a514179 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%nvim%lua%plugins%lazy%plugins.lua differ diff --git a/config/nvim-1/undo/%home%coast%.config%picom%picom-animations.conf b/config/nvim-1/undo/%home%coast%.config%picom%picom-animations.conf new file mode 100644 index 0000000..a64107e Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%picom%picom-animations.conf differ diff --git a/config/nvim-1/undo/%home%coast%.config%picom%picom.conf b/config/nvim-1/undo/%home%coast%.config%picom%picom.conf new file mode 100644 index 0000000..6143380 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%picom%picom.conf differ diff --git a/config/nvim-1/undo/%home%coast%.config%piss%pissrc b/config/nvim-1/undo/%home%coast%.config%piss%pissrc new file mode 100644 index 0000000..8df5476 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%piss%pissrc differ diff --git a/config/nvim-1/undo/%home%coast%.config%quickshell%clock.qml b/config/nvim-1/undo/%home%coast%.config%quickshell%clock.qml new file mode 100644 index 0000000..2947ae6 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%quickshell%clock.qml differ diff --git a/config/nvim-1/undo/%home%coast%.config%quickshell%currentsong.qml b/config/nvim-1/undo/%home%coast%.config%quickshell%currentsong.qml new file mode 100644 index 0000000..63f404b Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%quickshell%currentsong.qml differ diff --git a/config/nvim-1/undo/%home%coast%.config%quickshell%separator.qml b/config/nvim-1/undo/%home%coast%.config%quickshell%separator.qml new file mode 100644 index 0000000..d750c37 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%quickshell%separator.qml differ diff --git a/config/nvim-1/undo/%home%coast%.config%quickshell%shell.qml b/config/nvim-1/undo/%home%coast%.config%quickshell%shell.qml new file mode 100644 index 0000000..e445b2d Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%quickshell%shell.qml differ diff --git a/config/nvim-1/undo/%home%coast%.config%quickshell%workspaces.qml b/config/nvim-1/undo/%home%coast%.config%quickshell%workspaces.qml new file mode 100644 index 0000000..a931439 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%quickshell%workspaces.qml differ diff --git a/config/nvim-1/undo/%home%coast%.config%river%init b/config/nvim-1/undo/%home%coast%.config%river%init new file mode 100644 index 0000000..9c07d69 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%river%init differ diff --git a/config/nvim-1/undo/%home%coast%.config%rofi%config.rasi b/config/nvim-1/undo/%home%coast%.config%rofi%config.rasi new file mode 100644 index 0000000..e3999e9 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%rofi%config.rasi differ diff --git a/config/nvim-1/undo/%home%coast%.config%scrobbler%config.ini b/config/nvim-1/undo/%home%coast%.config%scrobbler%config.ini new file mode 100644 index 0000000..a63463d Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%scrobbler%config.ini differ diff --git a/config/nvim-1/undo/%home%coast%.config%sway%config b/config/nvim-1/undo/%home%coast%.config%sway%config new file mode 100644 index 0000000..9ea1a0b Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%sway%config differ diff --git a/config/nvim-1/undo/%home%coast%.config%tym%config.lua b/config/nvim-1/undo/%home%coast%.config%tym%config.lua new file mode 100644 index 0000000..f7d5ccb Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%tym%config.lua differ diff --git a/config/nvim-1/undo/%home%coast%.config%tym%theme.lua b/config/nvim-1/undo/%home%coast%.config%tym%theme.lua new file mode 100644 index 0000000..b6e4d63 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%tym%theme.lua differ diff --git a/config/nvim-1/undo/%home%coast%.config%waybar%config.jsonc b/config/nvim-1/undo/%home%coast%.config%waybar%config.jsonc new file mode 100644 index 0000000..51d45d0 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%waybar%config.jsonc differ diff --git a/config/nvim-1/undo/%home%coast%.config%waybar%style.css b/config/nvim-1/undo/%home%coast%.config%waybar%style.css new file mode 100644 index 0000000..3467a78 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.config%waybar%style.css differ diff --git a/config/nvim-1/undo/%home%coast%.curlrc b/config/nvim-1/undo/%home%coast%.curlrc new file mode 100644 index 0000000..47e0956 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.curlrc differ diff --git a/config/nvim-1/undo/%home%coast%.local%share%American Truck Simulator%config.cfg b/config/nvim-1/undo/%home%coast%.local%share%American Truck Simulator%config.cfg new file mode 100644 index 0000000..5086657 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%share%American Truck Simulator%config.cfg differ diff --git a/config/nvim-1/undo/%home%coast%.local%share%applications%element-desktop.desktop b/config/nvim-1/undo/%home%coast%.local%share%applications%element-desktop.desktop new file mode 100644 index 0000000..8f58e93 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%share%applications%element-desktop.desktop differ diff --git a/config/nvim-1/undo/%home%coast%.local%share%applications%firefox-bin.desktop b/config/nvim-1/undo/%home%coast%.local%share%applications%firefox-bin.desktop new file mode 100644 index 0000000..7ef4b8d Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%share%applications%firefox-bin.desktop differ diff --git a/config/nvim-1/undo/%home%coast%.local%share%applications%im.riot.Riot.desktop b/config/nvim-1/undo/%home%coast%.local%share%applications%im.riot.Riot.desktop new file mode 100644 index 0000000..1535b49 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%share%applications%im.riot.Riot.desktop differ diff --git a/config/nvim-1/undo/%home%coast%.local%share%flatpak%app%im.riot.Riot%x86_64%stable%42f010911a82616b14d9f36a8341652b349552a67ba14b8e67fd432e18c37561%export%share%applications%im.riot.Riot.desktop b/config/nvim-1/undo/%home%coast%.local%share%flatpak%app%im.riot.Riot%x86_64%stable%42f010911a82616b14d9f36a8341652b349552a67ba14b8e67fd432e18c37561%export%share%applications%im.riot.Riot.desktop new file mode 100644 index 0000000..149d27d Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%share%flatpak%app%im.riot.Riot%x86_64%stable%42f010911a82616b14d9f36a8341652b349552a67ba14b8e67fd432e18c37561%export%share%applications%im.riot.Riot.desktop differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%.git%COMMIT_EDITMSG b/config/nvim-1/undo/%home%coast%.local%src%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..07596ad Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%config%nvim%lua%config.lua b/config/nvim-1/undo/%home%coast%.local%src%config%nvim%lua%config.lua new file mode 100755 index 0000000..8d1e014 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%config%nvim%lua%config.lua differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%config%sway%config b/config/nvim-1/undo/%home%coast%.local%src%config%sway%config new file mode 100644 index 0000000..bdd8a66 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%config%sway%config differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%config%waybar%config.jsonc b/config/nvim-1/undo/%home%coast%.local%src%config%waybar%config.jsonc new file mode 100755 index 0000000..cbd3adb Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%config%waybar%config.jsonc differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%config%waybar%style.css b/config/nvim-1/undo/%home%coast%.local%src%config%waybar%style.css new file mode 100755 index 0000000..3b6fd1e Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%config%waybar%style.css differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%dmenu%config.h b/config/nvim-1/undo/%home%coast%.local%src%dmenu%config.h new file mode 100644 index 0000000..8c2030f Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%dmenu%config.h differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%dmenu%config.mk b/config/nvim-1/undo/%home%coast%.local%src%dmenu%config.mk new file mode 100644 index 0000000..13e2940 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%dmenu%config.mk differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%dmenu%dmenu.c b/config/nvim-1/undo/%home%coast%.local%src%dmenu%dmenu.c new file mode 100644 index 0000000..baea793 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%dmenu%dmenu.c differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%dmenu%drw.c b/config/nvim-1/undo/%home%coast%.local%src%dmenu%drw.c new file mode 100644 index 0000000..33c21ac Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%dmenu%drw.c differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%dwm%config.h b/config/nvim-1/undo/%home%coast%.local%src%dwm%config.h new file mode 100644 index 0000000..f98efb5 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%dwm%config.h differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%dwm%config.mk b/config/nvim-1/undo/%home%coast%.local%src%dwm%config.mk new file mode 100644 index 0000000..60ae5f6 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%dwm%config.mk differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%dwm%patches.h b/config/nvim-1/undo/%home%coast%.local%src%dwm%patches.h new file mode 100644 index 0000000..f5512c2 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%dwm%patches.h differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%local%bin%mpc-shuf.sh b/config/nvim-1/undo/%home%coast%.local%src%local%bin%mpc-shuf.sh new file mode 100644 index 0000000..3f01d69 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%local%bin%mpc-shuf.sh differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%local%bin%screenie-wlr b/config/nvim-1/undo/%home%coast%.local%src%local%bin%screenie-wlr new file mode 100644 index 0000000..b135c89 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%local%bin%screenie-wlr differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%local%bin%sober b/config/nvim-1/undo/%home%coast%.local%src%local%bin%sober new file mode 100644 index 0000000..d88c112 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%local%bin%sober differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%local%bin%swap.start b/config/nvim-1/undo/%home%coast%.local%src%local%bin%swap.start new file mode 100644 index 0000000..5c6282d Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%local%bin%swap.start differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%local%bin%swap.stop b/config/nvim-1/undo/%home%coast%.local%src%local%bin%swap.stop new file mode 100644 index 0000000..299dbdd Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%local%bin%swap.stop differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%local%bin%updateriver b/config/nvim-1/undo/%home%coast%.local%src%local%bin%updateriver new file mode 100644 index 0000000..b9e1ebf Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%local%bin%updateriver differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%local%bin%updateriver.sh b/config/nvim-1/undo/%home%coast%.local%src%local%bin%updateriver.sh new file mode 100644 index 0000000..65910ef Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%local%bin%updateriver.sh differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%local%bin%upl b/config/nvim-1/undo/%home%coast%.local%src%local%bin%upl new file mode 100644 index 0000000..c5923b9 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%local%bin%upl differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%local%bin%uwuify.awk b/config/nvim-1/undo/%home%coast%.local%src%local%bin%uwuify.awk new file mode 100755 index 0000000..8fa3bac Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%local%bin%uwuify.awk differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%slstatus%config.h b/config/nvim-1/undo/%home%coast%.local%src%slstatus%config.h new file mode 100644 index 0000000..ac72597 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%slstatus%config.h differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%slstatus%config.mk b/config/nvim-1/undo/%home%coast%.local%src%slstatus%config.mk new file mode 100644 index 0000000..dcebd8e Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%slstatus%config.mk differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%st%config.h b/config/nvim-1/undo/%home%coast%.local%src%st%config.h new file mode 100644 index 0000000..25333d8 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%st%config.h differ diff --git a/config/nvim-1/undo/%home%coast%.local%src%st%config.mk b/config/nvim-1/undo/%home%coast%.local%src%st%config.mk new file mode 100644 index 0000000..b335397 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.local%src%st%config.mk differ diff --git a/config/nvim-1/undo/%home%coast%.mpdconf b/config/nvim-1/undo/%home%coast%.mpdconf new file mode 100644 index 0000000..12bbdf7 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.mpdconf differ diff --git a/config/nvim-1/undo/%home%coast%.rtorrent.rc b/config/nvim-1/undo/%home%coast%.rtorrent.rc new file mode 100644 index 0000000..7d56ef2 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.rtorrent.rc differ diff --git a/config/nvim-1/undo/%home%coast%.var%app%org.vinegarhq.Sober%config%sober%config.json b/config/nvim-1/undo/%home%coast%.var%app%org.vinegarhq.Sober%config%sober%config.json new file mode 100644 index 0000000..e38108f Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.var%app%org.vinegarhq.Sober%config%sober%config.json differ diff --git a/config/nvim-1/undo/%home%coast%.wezterm.lua b/config/nvim-1/undo/%home%coast%.wezterm.lua new file mode 100755 index 0000000..5d55e1b Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.wezterm.lua differ diff --git a/config/nvim-1/undo/%home%coast%.xinitrc b/config/nvim-1/undo/%home%coast%.xinitrc new file mode 100644 index 0000000..47506d2 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.xinitrc differ diff --git a/config/nvim-1/undo/%home%coast%.zprofile b/config/nvim-1/undo/%home%coast%.zprofile new file mode 100644 index 0000000..660503b Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.zprofile differ diff --git a/config/nvim-1/undo/%home%coast%.zshrc b/config/nvim-1/undo/%home%coast%.zshrc new file mode 100644 index 0000000..97b0d29 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%.zshrc differ diff --git a/config/nvim-1/undo/%home%coast%Games%Red Dead Redemption 2%launch.sh b/config/nvim-1/undo/%home%coast%Games%Red Dead Redemption 2%launch.sh new file mode 100644 index 0000000..5ef820a Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Games%Red Dead Redemption 2%launch.sh differ diff --git a/config/nvim-1/undo/%home%coast%NOTES b/config/nvim-1/undo/%home%coast%NOTES new file mode 100644 index 0000000..75ddf7a Binary files /dev/null and b/config/nvim-1/undo/%home%coast%NOTES differ diff --git a/config/nvim-1/undo/%home%coast%Projects%X%term%term b/config/nvim-1/undo/%home%coast%Projects%X%term%term new file mode 100644 index 0000000..029dfce Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%X%term%term differ diff --git a/config/nvim-1/undo/%home%coast%Projects%X%term%xterm.c b/config/nvim-1/undo/%home%coast%Projects%X%term%xterm.c new file mode 100644 index 0000000..ea2d63a Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%X%term%xterm.c differ diff --git a/config/nvim-1/undo/%home%coast%Projects%abcl%main.cl b/config/nvim-1/undo/%home%coast%Projects%abcl%main.cl new file mode 100644 index 0000000..11b585d Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%abcl%main.cl differ diff --git a/config/nvim-1/undo/%home%coast%Projects%gtk%main.c b/config/nvim-1/undo/%home%coast%Projects%gtk%main.c new file mode 100644 index 0000000..926449f Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%gtk%main.c differ diff --git a/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble b/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble new file mode 100644 index 0000000..e35c00b Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble differ diff --git a/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%.git%COMMIT_EDITMSG b/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..a13bcc8 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%LICENSE b/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%LICENSE new file mode 100644 index 0000000..07f7bc6 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%LICENSE differ diff --git a/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%ashscrobble.py b/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%ashscrobble.py new file mode 100644 index 0000000..9bd5354 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%py%ashscrobble%ashscrobble.py differ diff --git a/config/nvim-1/undo/%home%coast%Projects%py%dmenu.lua b/config/nvim-1/undo/%home%coast%Projects%py%dmenu.lua new file mode 100644 index 0000000..226ff18 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%py%dmenu.lua differ diff --git a/config/nvim-1/undo/%home%coast%Projects%py%dmenu.py b/config/nvim-1/undo/%home%coast%Projects%py%dmenu.py new file mode 100644 index 0000000..d5ce864 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%py%dmenu.py differ diff --git a/config/nvim-1/undo/%home%coast%Projects%pylua%dmenu.lua b/config/nvim-1/undo/%home%coast%Projects%pylua%dmenu.lua new file mode 100644 index 0000000..745ec8d Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%pylua%dmenu.lua differ diff --git a/config/nvim-1/undo/%home%coast%Projects%river%kwm%config.def.zon b/config/nvim-1/undo/%home%coast%Projects%river%kwm%config.def.zon new file mode 100644 index 0000000..5e37c03 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%river%kwm%config.def.zon differ diff --git a/config/nvim-1/undo/%home%coast%Projects%river%river%build.zig.zon b/config/nvim-1/undo/%home%coast%Projects%river%river%build.zig.zon new file mode 100644 index 0000000..506bb14 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%river%river%build.zig.zon differ diff --git a/config/nvim-1/undo/%home%coast%Projects%rs%guessing_game%.gitignore b/config/nvim-1/undo/%home%coast%Projects%rs%guessing_game%.gitignore new file mode 100755 index 0000000..6470d6c Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%rs%guessing_game%.gitignore differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%config.h b/config/nvim-1/undo/%home%coast%Projects%wayland%config.h new file mode 100644 index 0000000..08706f7 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%config.h differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%main.py b/config/nvim-1/undo/%home%coast%Projects%wayland%main.py new file mode 100644 index 0000000..2bb2df2 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%main.py differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%window.c b/config/nvim-1/undo/%home%coast%Projects%wayland%window.c new file mode 100644 index 0000000..bc5fc59 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%window.c differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wlbar%main.c b/config/nvim-1/undo/%home%coast%Projects%wayland%wlbar%main.c new file mode 100644 index 0000000..33c973c Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wlbar%main.c differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%.git%COMMIT_EDITMSG b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..0dfdf76 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%.gitignore b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%.gitignore new file mode 100644 index 0000000..10af800 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%.gitignore differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%config.h b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%config.h new file mode 100644 index 0000000..4d208cf Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%config.h differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%main.c b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%main.c new file mode 100644 index 0000000..ec97d25 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%main.c differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%makefile b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%makefile new file mode 100644 index 0000000..b2b8ad9 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%makefile differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock.c b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock.c new file mode 100644 index 0000000..ba2e77f Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock.c differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wled%.git%COMMIT_EDITMSG b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..8082f55 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wled%.gitignore b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%.gitignore new file mode 100644 index 0000000..9e426c4 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%.gitignore differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wled%LICENSE b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%LICENSE new file mode 100644 index 0000000..741c79f Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%LICENSE differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wled%README b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%README new file mode 100644 index 0000000..fd02d46 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%README differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wled%build.sh b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%build.sh new file mode 100644 index 0000000..8ed7a03 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%build.sh differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wled%client.c b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%client.c new file mode 100644 index 0000000..3224b29 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%client.c differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wled%config.h b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%config.h new file mode 100644 index 0000000..33620cb Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wled%config.h differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%wlindow%client.c b/config/nvim-1/undo/%home%coast%Projects%wayland%wlindow%client.c new file mode 100644 index 0000000..dde5658 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%wlindow%client.c differ diff --git a/config/nvim-1/undo/%home%coast%Projects%wayland%x11alt.c b/config/nvim-1/undo/%home%coast%Projects%wayland%x11alt.c new file mode 100644 index 0000000..6cd7f53 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%Projects%wayland%x11alt.c differ diff --git a/config/nvim-1/undo/%home%coast%ashos%linux%.config b/config/nvim-1/undo/%home%coast%ashos%linux%.config new file mode 100644 index 0000000..2adf754 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%ashos%linux%.config differ diff --git a/config/nvim-1/undo/%home%coast%ashos%syslinux.cfg b/config/nvim-1/undo/%home%coast%ashos%syslinux.cfg new file mode 100644 index 0000000..f64a12e Binary files /dev/null and b/config/nvim-1/undo/%home%coast%ashos%syslinux.cfg differ diff --git a/config/nvim-1/undo/%home%coast%conduwuit b/config/nvim-1/undo/%home%coast%conduwuit new file mode 100644 index 0000000..09757fa Binary files /dev/null and b/config/nvim-1/undo/%home%coast%conduwuit differ diff --git a/config/nvim-1/undo/%home%coast%driver%driver.c b/config/nvim-1/undo/%home%coast%driver%driver.c new file mode 100644 index 0000000..37a7b4b Binary files /dev/null and b/config/nvim-1/undo/%home%coast%driver%driver.c differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%.git%COMMIT_EDITMSG b/config/nvim-1/undo/%home%coast%git%compositor%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..4e46888 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%.gitignore b/config/nvim-1/undo/%home%coast%git%compositor%.gitignore new file mode 100644 index 0000000..93d85b0 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%.gitignore differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%Makefile b/config/nvim-1/undo/%home%coast%git%compositor%Makefile new file mode 100644 index 0000000..3a81de7 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%Makefile differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%build.sh b/config/nvim-1/undo/%home%coast%git%compositor%build.sh new file mode 100644 index 0000000..4213af1 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%build.sh differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%makefile b/config/nvim-1/undo/%home%coast%git%compositor%makefile new file mode 100644 index 0000000..863c008 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%makefile differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%src%compositor.c b/config/nvim-1/undo/%home%coast%git%compositor%src%compositor.c new file mode 100644 index 0000000..5b64f3e Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%src%compositor.c differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%src%config.h b/config/nvim-1/undo/%home%coast%git%compositor%src%config.h new file mode 100644 index 0000000..6f37cc9 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%src%config.h differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%src%include%compositor.h b/config/nvim-1/undo/%home%coast%git%compositor%src%include%compositor.h new file mode 100644 index 0000000..510b876 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%src%include%compositor.h differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%src%include%keybinds.h b/config/nvim-1/undo/%home%coast%git%compositor%src%include%keybinds.h new file mode 100644 index 0000000..4e35078 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%src%include%keybinds.h differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%src%include%screenshot.h b/config/nvim-1/undo/%home%coast%git%compositor%src%include%screenshot.h new file mode 100644 index 0000000..b10e27e Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%src%include%screenshot.h differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%src%keybinds.c b/config/nvim-1/undo/%home%coast%git%compositor%src%keybinds.c new file mode 100644 index 0000000..e36edb7 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%src%keybinds.c differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%src%keybinds.h b/config/nvim-1/undo/%home%coast%git%compositor%src%keybinds.h new file mode 100644 index 0000000..5412574 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%src%keybinds.h differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%src%screenshot.c b/config/nvim-1/undo/%home%coast%git%compositor%src%screenshot.c new file mode 100644 index 0000000..d5f9bdb Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%src%screenshot.c differ diff --git a/config/nvim-1/undo/%home%coast%git%compositor%src%util.c b/config/nvim-1/undo/%home%coast%git%compositor%src%util.c new file mode 100644 index 0000000..f4326c1 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%compositor%src%util.c differ diff --git a/config/nvim-1/undo/%home%coast%git%hst%config.h b/config/nvim-1/undo/%home%coast%git%hst%config.h new file mode 100644 index 0000000..dd9887b Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%hst%config.h differ diff --git a/config/nvim-1/undo/%home%coast%git%neuswc%config.mk b/config/nvim-1/undo/%home%coast%git%neuswc%config.mk new file mode 100644 index 0000000..ce38cda Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%neuswc%config.mk differ diff --git a/config/nvim-1/undo/%home%coast%git%neuswc%libswc%compositor.h b/config/nvim-1/undo/%home%coast%git%neuswc%libswc%compositor.h new file mode 100644 index 0000000..6d1077e Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%neuswc%libswc%compositor.h differ diff --git a/config/nvim-1/undo/%home%coast%git%neuswc%libswc%output.h b/config/nvim-1/undo/%home%coast%git%neuswc%libswc%output.h new file mode 100644 index 0000000..39865f6 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%neuswc%libswc%output.h differ diff --git a/config/nvim-1/undo/%home%coast%git%neuswc%libswc%pointer.h b/config/nvim-1/undo/%home%coast%git%neuswc%libswc%pointer.h new file mode 100644 index 0000000..a15ad9f Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%neuswc%libswc%pointer.h differ diff --git a/config/nvim-1/undo/%home%coast%git%neuswc%libswc%util.h b/config/nvim-1/undo/%home%coast%git%neuswc%libswc%util.h new file mode 100644 index 0000000..b94bcd4 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%neuswc%libswc%util.h differ diff --git a/config/nvim-1/undo/%home%coast%git%neuwld%config.mk b/config/nvim-1/undo/%home%coast%git%neuwld%config.mk new file mode 100644 index 0000000..f609412 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%neuwld%config.mk differ diff --git a/config/nvim-1/undo/%home%coast%git%swc%config.mk b/config/nvim-1/undo/%home%coast%git%swc%config.mk new file mode 100644 index 0000000..f68e27f Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%swc%config.mk differ diff --git a/config/nvim-1/undo/%home%coast%git%swcshot%main.c b/config/nvim-1/undo/%home%coast%git%swcshot%main.c new file mode 100644 index 0000000..8619f34 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%swcshot%main.c differ diff --git a/config/nvim-1/undo/%home%coast%git%terminal%Makefile b/config/nvim-1/undo/%home%coast%git%terminal%Makefile new file mode 100644 index 0000000..c6d428e Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%terminal%Makefile differ diff --git a/config/nvim-1/undo/%home%coast%git%terminal%main.c b/config/nvim-1/undo/%home%coast%git%terminal%main.c new file mode 100644 index 0000000..107db70 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%terminal%main.c differ diff --git a/config/nvim-1/undo/%home%coast%git%wld%config.mk b/config/nvim-1/undo/%home%coast%git%wld%config.mk new file mode 100644 index 0000000..bce0bba Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%wld%config.mk differ diff --git a/config/nvim-1/undo/%home%coast%git%wsxwm%Makefile b/config/nvim-1/undo/%home%coast%git%wsxwm%Makefile new file mode 100644 index 0000000..68f3f92 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%wsxwm%Makefile differ diff --git a/config/nvim-1/undo/%home%coast%git%wsxwm%source%include%wsxwm.h b/config/nvim-1/undo/%home%coast%git%wsxwm%source%include%wsxwm.h new file mode 100644 index 0000000..bc9e7e9 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%wsxwm%source%include%wsxwm.h differ diff --git a/config/nvim-1/undo/%home%coast%git%wsxwm%source%test.diff b/config/nvim-1/undo/%home%coast%git%wsxwm%source%test.diff new file mode 100644 index 0000000..7b07e18 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%wsxwm%source%test.diff differ diff --git a/config/nvim-1/undo/%home%coast%git%wsxwm%source%wsxwm.c b/config/nvim-1/undo/%home%coast%git%wsxwm%source%wsxwm.c new file mode 100644 index 0000000..86d64e4 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%git%wsxwm%source%wsxwm.c differ diff --git a/config/nvim-1/undo/%home%coast%hwfetch b/config/nvim-1/undo/%home%coast%hwfetch new file mode 100644 index 0000000..52b9439 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%hwfetch differ diff --git a/config/nvim-1/undo/%home%coast%main.bash b/config/nvim-1/undo/%home%coast%main.bash new file mode 100644 index 0000000..599b67f Binary files /dev/null and b/config/nvim-1/undo/%home%coast%main.bash differ diff --git a/config/nvim-1/undo/%home%coast%main.c b/config/nvim-1/undo/%home%coast%main.c new file mode 100644 index 0000000..c891d53 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%main.c differ diff --git a/config/nvim-1/undo/%home%coast%main.lua b/config/nvim-1/undo/%home%coast%main.lua new file mode 100644 index 0000000..3d596cd Binary files /dev/null and b/config/nvim-1/undo/%home%coast%main.lua differ diff --git a/config/nvim-1/undo/%home%coast%royal b/config/nvim-1/undo/%home%coast%royal new file mode 100644 index 0000000..a198106 Binary files /dev/null and b/config/nvim-1/undo/%home%coast%royal differ diff --git a/config/nvim-1/undo/%home%coast%shared%loader.c b/config/nvim-1/undo/%home%coast%shared%loader.c new file mode 100644 index 0000000..9c7774e Binary files /dev/null and b/config/nvim-1/undo/%home%coast%shared%loader.c differ diff --git a/config/nvim-1/undo/%home%coast%shared%shared.c b/config/nvim-1/undo/%home%coast%shared%shared.c new file mode 100644 index 0000000..d87057b Binary files /dev/null and b/config/nvim-1/undo/%home%coast%shared%shared.c differ diff --git a/config/nvim-1/undo/%home%coast%test.py b/config/nvim-1/undo/%home%coast%test.py new file mode 100644 index 0000000..43a396d Binary files /dev/null and b/config/nvim-1/undo/%home%coast%test.py differ diff --git a/config/nvim-2/graft b/config/nvim-2/graft new file mode 160000 index 0000000..93af584 --- /dev/null +++ b/config/nvim-2/graft @@ -0,0 +1 @@ +Subproject commit 93af5846dea167f2ea44991ad3448d10b1979355 diff --git a/config/nvim-2/init.vim b/config/nvim-2/init.vim new file mode 100644 index 0000000..522f4e6 --- /dev/null +++ b/config/nvim-2/init.vim @@ -0,0 +1,12 @@ +se notgc bg=dark|colo vim|se nu rnu|se ch=0|se ls=0|se fcs=eob:\ |se shm+=I + +if !isdirectory(expand("~/.config/nvim/undodir"))|call mkdir(expand("~/.config/nvim/undodir"))|endif +if !isdirectory(expand("~/.config/nvim/vscript"))|call mkdir(expand("~/.config/nvim/vscript"))|endif + +let sciond = expand("~/.config/nvim/scion") +if !isdirectory(sciond)|execute "!git clone --depth=1 https://git.sr.ht/~coasteen/vim-scion " . shellescape(sciond)|endif + +let vscript_dir = expand("~/.config/nvim/vscript") +if isdirectory(vscript_dir)|for file in split(glob(vscript_dir . "/*.vim"), '\n')|execute "source " . fnameescape(file)|endfor|endif + +se udf|se udir=~/.config/nvim/undodir diff --git a/config/nvim-2/nvim/init.vim b/config/nvim-2/nvim/init.vim new file mode 100644 index 0000000..17c29f4 --- /dev/null +++ b/config/nvim-2/nvim/init.vim @@ -0,0 +1,12 @@ +se notgc bg=dark|colo vim|se nu rnu|se ch=0|se ls=0|se fcs=eob:\ |se shm+=I + +if !isdirectory(expand("~/.config/nvim/undodir"))|call mkdir(expand("~/.config/nvim/undodir"))|endif +if !isdirectory(expand("~/.config/nvim/vscript"))|call mkdir(expand("~/.config/nvim/vscript"))|endif + +let sciond = expand("~/.config/nvim/scion") +if !isdirectory(sciond)|execute "!git clone --depth=1 https://github.com/coasteen/vim-scion.git " . shellescape(sciond)|endif + +let vscript_dir = expand("~/.config/nvim/vscript") +if isdirectory(vscript_dir)|for file in split(glob(vscript_dir . "/*.vim"), '\n')|execute "source " . fnameescape(file)|endfor|endif + +se udf|se udir=~/.config/nvim/undodir diff --git a/config/nvim-2/nvim/pack-bak/graft/start/LuaSnip b/config/nvim-2/nvim/pack-bak/graft/start/LuaSnip new file mode 160000 index 0000000..a62e108 --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/LuaSnip @@ -0,0 +1 @@ +Subproject commit a62e1083a3cfe8b6b206e7d3d33a51091df25357 diff --git a/config/nvim-2/nvim/pack-bak/graft/start/cmp-buffer b/config/nvim-2/nvim/pack-bak/graft/start/cmp-buffer new file mode 160000 index 0000000..b74fab3 --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/cmp-buffer @@ -0,0 +1 @@ +Subproject commit b74fab3656eea9de20a9b8116afa3cfc4ec09657 diff --git a/config/nvim-2/nvim/pack-bak/graft/start/cmp-nvim-lsp b/config/nvim-2/nvim/pack-bak/graft/start/cmp-nvim-lsp new file mode 160000 index 0000000..cbc7b02 --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/cmp-nvim-lsp @@ -0,0 +1 @@ +Subproject commit cbc7b02bb99fae35cb42f514762b89b5126651ef diff --git a/config/nvim-2/nvim/pack-bak/graft/start/nvim-autopairs b/config/nvim-2/nvim/pack-bak/graft/start/nvim-autopairs new file mode 160000 index 0000000..7b9923a --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/nvim-autopairs @@ -0,0 +1 @@ +Subproject commit 7b9923abad60b903ece7c52940e1321d39eccc79 diff --git a/config/nvim-2/nvim/pack-bak/graft/start/nvim-cmp b/config/nvim-2/nvim/pack-bak/graft/start/nvim-cmp new file mode 160000 index 0000000..a1d5048 --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/nvim-cmp @@ -0,0 +1 @@ +Subproject commit a1d504892f2bc56c2e79b65c6faded2fd21f3eca diff --git a/config/nvim-2/nvim/pack-bak/graft/start/nvim-lspconfig b/config/nvim-2/nvim/pack-bak/graft/start/nvim-lspconfig new file mode 160000 index 0000000..451d4ef --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/nvim-lspconfig @@ -0,0 +1 @@ +Subproject commit 451d4ef9abd4f0f08e379ef0d55d1c391b6125a7 diff --git a/config/nvim-2/nvim/pack-bak/graft/start/vim-closetag b/config/nvim-2/nvim/pack-bak/graft/start/vim-closetag new file mode 160000 index 0000000..d0a562f --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/vim-closetag @@ -0,0 +1 @@ +Subproject commit d0a562f8bdb107a50595aefe53b1a690460c3822 diff --git a/config/nvim-2/nvim/pack-bak/graft/start/vim-commentary b/config/nvim-2/nvim/pack-bak/graft/start/vim-commentary new file mode 160000 index 0000000..64a654e --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/vim-commentary @@ -0,0 +1 @@ +Subproject commit 64a654ef4a20db1727938338310209b6a63f60c9 diff --git a/config/nvim-2/nvim/pack-bak/graft/start/vim-endwise b/config/nvim-2/nvim/pack-bak/graft/start/vim-endwise new file mode 160000 index 0000000..4994afb --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/vim-endwise @@ -0,0 +1 @@ +Subproject commit 4994afb0cdf956d9a665a14b9c834869e602c396 diff --git a/config/nvim-2/nvim/pack-bak/graft/start/vim-fugitive b/config/nvim-2/nvim/pack-bak/graft/start/vim-fugitive new file mode 160000 index 0000000..3b753cf --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/vim-fugitive @@ -0,0 +1 @@ +Subproject commit 3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0 diff --git a/config/nvim-2/nvim/pack-bak/graft/start/vim-polyglot b/config/nvim-2/nvim/pack-bak/graft/start/vim-polyglot new file mode 160000 index 0000000..f061edd --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/vim-polyglot @@ -0,0 +1 @@ +Subproject commit f061eddb7cdcc614c8406847b2bfb53099832a4e diff --git a/config/nvim-2/nvim/pack-bak/graft/start/vim-sensible b/config/nvim-2/nvim/pack-bak/graft/start/vim-sensible new file mode 160000 index 0000000..0ce2d84 --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/vim-sensible @@ -0,0 +1 @@ +Subproject commit 0ce2d843d6f588bb0c8c7eec6449171615dc56d9 diff --git a/config/nvim-2/nvim/pack-bak/graft/start/vim-surround b/config/nvim-2/nvim/pack-bak/graft/start/vim-surround new file mode 160000 index 0000000..3d188ed --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/vim-surround @@ -0,0 +1 @@ +Subproject commit 3d188ed2113431cf8dac77be61b842acb64433d9 diff --git a/config/nvim-2/nvim/pack-bak/graft/start/vim-vinegar b/config/nvim-2/nvim/pack-bak/graft/start/vim-vinegar new file mode 160000 index 0000000..bb1bcdd --- /dev/null +++ b/config/nvim-2/nvim/pack-bak/graft/start/vim-vinegar @@ -0,0 +1 @@ +Subproject commit bb1bcddf43cfebe05eb565a84ab069b357d0b3d6 diff --git a/config/nvim-2/nvim/pack/scion/start/LuaSnip b/config/nvim-2/nvim/pack/scion/start/LuaSnip new file mode 160000 index 0000000..a62e108 --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/LuaSnip @@ -0,0 +1 @@ +Subproject commit a62e1083a3cfe8b6b206e7d3d33a51091df25357 diff --git a/config/nvim-2/nvim/pack/scion/start/cmp-buffer b/config/nvim-2/nvim/pack/scion/start/cmp-buffer new file mode 160000 index 0000000..b74fab3 --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/cmp-buffer @@ -0,0 +1 @@ +Subproject commit b74fab3656eea9de20a9b8116afa3cfc4ec09657 diff --git a/config/nvim-2/nvim/pack/scion/start/cmp-nvim-lsp b/config/nvim-2/nvim/pack/scion/start/cmp-nvim-lsp new file mode 160000 index 0000000..cbc7b02 --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/cmp-nvim-lsp @@ -0,0 +1 @@ +Subproject commit cbc7b02bb99fae35cb42f514762b89b5126651ef diff --git a/config/nvim-2/nvim/pack/scion/start/nvim-autopairs b/config/nvim-2/nvim/pack/scion/start/nvim-autopairs new file mode 160000 index 0000000..7b9923a --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/nvim-autopairs @@ -0,0 +1 @@ +Subproject commit 7b9923abad60b903ece7c52940e1321d39eccc79 diff --git a/config/nvim-2/nvim/pack/scion/start/nvim-cmp b/config/nvim-2/nvim/pack/scion/start/nvim-cmp new file mode 160000 index 0000000..a1d5048 --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/nvim-cmp @@ -0,0 +1 @@ +Subproject commit a1d504892f2bc56c2e79b65c6faded2fd21f3eca diff --git a/config/nvim-2/nvim/pack/scion/start/nvim-colorizer.lua b/config/nvim-2/nvim/pack/scion/start/nvim-colorizer.lua new file mode 160000 index 0000000..a065833 --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/nvim-colorizer.lua @@ -0,0 +1 @@ +Subproject commit a065833f35a3a7cc3ef137ac88b5381da2ba302e diff --git a/config/nvim-2/nvim/pack/scion/start/nvim-lspconfig b/config/nvim-2/nvim/pack/scion/start/nvim-lspconfig new file mode 160000 index 0000000..451d4ef --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/nvim-lspconfig @@ -0,0 +1 @@ +Subproject commit 451d4ef9abd4f0f08e379ef0d55d1c391b6125a7 diff --git a/config/nvim-2/nvim/pack/scion/start/nvim-treesitter b/config/nvim-2/nvim/pack/scion/start/nvim-treesitter new file mode 160000 index 0000000..4916d65 --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/nvim-treesitter @@ -0,0 +1 @@ +Subproject commit 4916d6592ede8c07973490d9322f187e07dfefac diff --git a/config/nvim-2/nvim/pack/scion/start/vim-closetag b/config/nvim-2/nvim/pack/scion/start/vim-closetag new file mode 160000 index 0000000..d0a562f --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/vim-closetag @@ -0,0 +1 @@ +Subproject commit d0a562f8bdb107a50595aefe53b1a690460c3822 diff --git a/config/nvim-2/nvim/pack/scion/start/vim-commentary b/config/nvim-2/nvim/pack/scion/start/vim-commentary new file mode 160000 index 0000000..64a654e --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/vim-commentary @@ -0,0 +1 @@ +Subproject commit 64a654ef4a20db1727938338310209b6a63f60c9 diff --git a/config/nvim-2/nvim/pack/scion/start/vim-endwise b/config/nvim-2/nvim/pack/scion/start/vim-endwise new file mode 160000 index 0000000..4994afb --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/vim-endwise @@ -0,0 +1 @@ +Subproject commit 4994afb0cdf956d9a665a14b9c834869e602c396 diff --git a/config/nvim-2/nvim/pack/scion/start/vim-fugitive b/config/nvim-2/nvim/pack/scion/start/vim-fugitive new file mode 160000 index 0000000..3b753cf --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/vim-fugitive @@ -0,0 +1 @@ +Subproject commit 3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0 diff --git a/config/nvim-2/nvim/pack/scion/start/vim-polyglot b/config/nvim-2/nvim/pack/scion/start/vim-polyglot new file mode 160000 index 0000000..f061edd --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/vim-polyglot @@ -0,0 +1 @@ +Subproject commit f061eddb7cdcc614c8406847b2bfb53099832a4e diff --git a/config/nvim-2/nvim/pack/scion/start/vim-sensible b/config/nvim-2/nvim/pack/scion/start/vim-sensible new file mode 160000 index 0000000..0ce2d84 --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/vim-sensible @@ -0,0 +1 @@ +Subproject commit 0ce2d843d6f588bb0c8c7eec6449171615dc56d9 diff --git a/config/nvim-2/nvim/pack/scion/start/vim-surround b/config/nvim-2/nvim/pack/scion/start/vim-surround new file mode 160000 index 0000000..3d188ed --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/vim-surround @@ -0,0 +1 @@ +Subproject commit 3d188ed2113431cf8dac77be61b842acb64433d9 diff --git a/config/nvim-2/nvim/pack/scion/start/vim-vinegar b/config/nvim-2/nvim/pack/scion/start/vim-vinegar new file mode 160000 index 0000000..bb1bcdd --- /dev/null +++ b/config/nvim-2/nvim/pack/scion/start/vim-vinegar @@ -0,0 +1 @@ +Subproject commit bb1bcddf43cfebe05eb565a84ab069b357d0b3d6 diff --git a/config/nvim-2/nvim/scion b/config/nvim-2/nvim/scion new file mode 160000 index 0000000..0b4ecbd --- /dev/null +++ b/config/nvim-2/nvim/scion @@ -0,0 +1 @@ +Subproject commit 0b4ecbd27497c31a23675f93412931801d85c7e1 diff --git a/config/nvim-2/nvim/scion_state.json b/config/nvim-2/nvim/scion_state.json new file mode 100644 index 0000000..9e1f32e --- /dev/null +++ b/config/nvim-2/nvim/scion_state.json @@ -0,0 +1,21 @@ +{ + "installed": { + "vim-endwise": "64a654ef4a20db1727938338310209b6a63f60c9", + "vim-vinegar": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca", + "nvim-lspconfig": "451d4ef9abd4f0f08e379ef0d55d1c391b6125a7", + "nvim-cmp": "3d188ed2113431cf8dac77be61b842acb64433d9", + "vim-commentary": "0b4ecbd27497c31a23675f93412931801d85c7e1", + "cmp-buffer": "0ce2d843d6f588bb0c8c7eec6449171615dc56d9", + "cmp-nvim-lsp": "bb1bcddf43cfebe05eb565a84ab069b357d0b3d6", + "nvim-autopairs": "cbc7b02bb99fae35cb42f514762b89b5126651ef", + "vim-surround": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0", + "LuaSnip": "4994afb0cdf956d9a665a14b9c834869e602c396", + "vim-sensible": "d0a562f8bdb107a50595aefe53b1a690460c3822", + "vim-fugitive": "b74fab3656eea9de20a9b8116afa3cfc4ec09657", + "vim-closetag": "4916d6592ede8c07973490d9322f187e07dfefac", + "vim-polyglot": "7b9923abad60b903ece7c52940e1321d39eccc79", + "nvim-treesitter": "a62e1083a3cfe8b6b206e7d3d33a51091df25357", + "nvim-colorizer.lua": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" + }, + "last_update": null +} \ No newline at end of file diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%alacritty%alacritty.toml b/config/nvim-2/nvim/undodir/%home%coast%.config%alacritty%alacritty.toml new file mode 100644 index 0000000..d5a3c87 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%alacritty%alacritty.toml differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%fastfetch%config.jsonc b/config/nvim-2/nvim/undodir/%home%coast%.config%fastfetch%config.jsonc new file mode 100644 index 0000000..6fe97d1 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%fastfetch%config.jsonc differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%niri%config.kdl b/config/nvim-2/nvim/undodir/%home%coast%.config%niri%config.kdl new file mode 100644 index 0000000..27acd12 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%niri%config.kdl differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%graft%config.rb b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%graft%config.rb new file mode 100644 index 0000000..324ab66 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%graft%config.rb differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%init.vim b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%init.vim new file mode 100644 index 0000000..8e0ffc1 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%init.vim differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%key.vim b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%key.vim new file mode 100644 index 0000000..ee0be81 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%key.vim differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%scion%config.rb b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%scion%config.rb new file mode 100644 index 0000000..de63755 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%scion%config.rb differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%scion%scion.rb b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%scion%scion.rb new file mode 100644 index 0000000..0c9be05 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%scion%scion.rb differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%test.sh b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%test.sh new file mode 100644 index 0000000..7c1c89c Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%test.sh differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%lsp.vim b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%lsp.vim new file mode 100644 index 0000000..d2400b6 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%lsp.vim differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%lua.vim b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%lua.vim new file mode 100644 index 0000000..d2307e3 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%lua.vim differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%scp.vim b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%scp.vim new file mode 100644 index 0000000..d38c83b Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%scp.vim differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%theme.vim b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%theme.vim new file mode 100644 index 0000000..9253f7b Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%nvim%vscript%theme.vim differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%rofi%config.rasi b/config/nvim-2/nvim/undodir/%home%coast%.config%rofi%config.rasi new file mode 100644 index 0000000..c93d30d Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%rofi%config.rasi differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%starship.toml b/config/nvim-2/nvim/undodir/%home%coast%.config%starship.toml new file mode 100644 index 0000000..dc0fd24 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%starship.toml differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%systemd%user%.#plasma-polkit-agent.servicec252b1882abfd1a3 b/config/nvim-2/nvim/undodir/%home%coast%.config%systemd%user%.#plasma-polkit-agent.servicec252b1882abfd1a3 new file mode 100644 index 0000000..940c0fd Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%systemd%user%.#plasma-polkit-agent.servicec252b1882abfd1a3 differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%waybar%config.jsonc b/config/nvim-2/nvim/undodir/%home%coast%.config%waybar%config.jsonc new file mode 100644 index 0000000..065e305 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%waybar%config.jsonc differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%waybar%style.css b/config/nvim-2/nvim/undodir/%home%coast%.config%waybar%style.css new file mode 100644 index 0000000..0262f4f Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%waybar%style.css differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%waybar%window.sh b/config/nvim-2/nvim/undodir/%home%coast%.config%waybar%window.sh new file mode 100644 index 0000000..8a353d1 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%waybar%window.sh differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.config%xdg-desktop-portal%portals.conf b/config/nvim-2/nvim/undodir/%home%coast%.config%xdg-desktop-portal%portals.conf new file mode 100644 index 0000000..45ebe8d Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.config%xdg-desktop-portal%portals.conf differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.local%share%applications%prismlauncher.desktop b/config/nvim-2/nvim/undodir/%home%coast%.local%share%applications%prismlauncher.desktop new file mode 100644 index 0000000..f0e0cde Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.local%share%applications%prismlauncher.desktop differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.local%share%applications%throne.desktop b/config/nvim-2/nvim/undodir/%home%coast%.local%share%applications%throne.desktop new file mode 100644 index 0000000..0c048ca Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.local%share%applications%throne.desktop differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.zsh.d%zsh-syntaxhighlighting.zsh b/config/nvim-2/nvim/undodir/%home%coast%.zsh.d%zsh-syntaxhighlighting.zsh new file mode 100644 index 0000000..231d60e Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.zsh.d%zsh-syntaxhighlighting.zsh differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%.zshrc b/config/nvim-2/nvim/undodir/%home%coast%.zshrc new file mode 100644 index 0000000..a83dcf8 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%.zshrc differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%DEVLIST b/config/nvim-2/nvim/undodir/%home%coast%DEVLIST new file mode 100644 index 0000000..80369bc Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%DEVLIST differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%Downloads%snispoof%config.json b/config/nvim-2/nvim/undodir/%home%coast%Downloads%snispoof%config.json new file mode 100644 index 0000000..1fca528 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%Downloads%snispoof%config.json differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%PRISMLAUNCHER%instances%26.1.2%minecraft%config%DistantHorizons.toml b/config/nvim-2/nvim/undodir/%home%coast%PRISMLAUNCHER%instances%26.1.2%minecraft%config%DistantHorizons.toml new file mode 100644 index 0000000..c436481 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%PRISMLAUNCHER%instances%26.1.2%minecraft%config%DistantHorizons.toml differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%Xray%config.json b/config/nvim-2/nvim/undodir/%home%coast%Xray%config.json new file mode 100644 index 0000000..9635c25 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%Xray%config.json differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%bash.sh b/config/nvim-2/nvim/undodir/%home%coast%bash.sh new file mode 100644 index 0000000..d93b76a Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%bash.sh differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%copyparty-setup.py b/config/nvim-2/nvim/undodir/%home%coast%copyparty-setup.py new file mode 100644 index 0000000..cdf8e2a Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%copyparty-setup.py differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%dlhub%goodlinks.txt b/config/nvim-2/nvim/undodir/%home%coast%dlhub%goodlinks.txt new file mode 100644 index 0000000..24d0b10 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%dlhub%goodlinks.txt differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%dlhub%script.py b/config/nvim-2/nvim/undodir/%home%coast%dlhub%script.py new file mode 100644 index 0000000..108eec0 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%dlhub%script.py differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%main.c b/config/nvim-2/nvim/undodir/%home%coast%main.c new file mode 100644 index 0000000..7ed02b6 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%main.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%mhr-cfw%config.json b/config/nvim-2/nvim/undodir/%home%coast%mhr-cfw%config.json new file mode 100644 index 0000000..47d857f Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%mhr-cfw%config.json differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%pertree b/config/nvim-2/nvim/undodir/%home%coast%pertree new file mode 100644 index 0000000..65d3ee6 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%pertree differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%piss%.git%COMMIT_EDITMSG b/config/nvim-2/nvim/undodir/%home%coast%piss%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..4b50e6d Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%piss%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%piss%LICENSE b/config/nvim-2/nvim/undodir/%home%coast%piss%LICENSE new file mode 100644 index 0000000..adbb88b Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%piss%LICENSE differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%piss%README.md b/config/nvim-2/nvim/undodir/%home%coast%piss%README.md new file mode 100644 index 0000000..9f5e7ea Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%piss%README.md differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%piss%makefile b/config/nvim-2/nvim/undodir/%home%coast%piss%makefile new file mode 100644 index 0000000..b5f5f38 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%piss%makefile differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%piss%pissrc.example.lua b/config/nvim-2/nvim/undodir/%home%coast%piss%pissrc.example.lua new file mode 100644 index 0000000..8812aac Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%piss%pissrc.example.lua differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%piss%src%chd.1 b/config/nvim-2/nvim/undodir/%home%coast%piss%src%chd.1 new file mode 100644 index 0000000..57269c6 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%piss%src%chd.1 differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%piss%src%daemon.c b/config/nvim-2/nvim/undodir/%home%coast%piss%src%daemon.c new file mode 100644 index 0000000..990c7c1 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%piss%src%daemon.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%piss%src%piss.1 b/config/nvim-2/nvim/undodir/%home%coast%piss%src%piss.1 new file mode 100644 index 0000000..8d66e00 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%piss%src%piss.1 differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%.git%COMMIT_EDITMSG b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..79d5e94 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%.gitignore b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%.gitignore new file mode 100644 index 0000000..da38c50 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%.gitignore differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%README b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%README new file mode 100644 index 0000000..72beb72 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%README differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%main.c b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%main.c new file mode 100644 index 0000000..23b4ca9 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%main.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%makefile b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%makefile new file mode 100644 index 0000000..96e432c Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%makefile differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%src%main.c b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%src%main.c new file mode 100644 index 0000000..a5ec018 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%src%main.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%.git%COMMIT_EDITMSG b/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..fb2cb6b Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%.gitignore b/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%.gitignore new file mode 100644 index 0000000..589b4da Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%.gitignore differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%LICENSE b/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%LICENSE new file mode 100644 index 0000000..08ed009 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%LICENSE differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%README b/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%README new file mode 100644 index 0000000..3bd3366 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%README differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%src%main.c b/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%src%main.c new file mode 100644 index 0000000..4e6ff1a Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%compteur%src%main.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%main.c b/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%main.c new file mode 100644 index 0000000..679ff66 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%main.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%makefile b/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%makefile new file mode 100644 index 0000000..17c6793 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%makefile differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%rand b/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%rand new file mode 100644 index 0000000..56d03ad Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%rand differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%src%input.c b/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%src%input.c new file mode 100644 index 0000000..45aa5c7 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%src%input.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%src%main.c b/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%src%main.c new file mode 100644 index 0000000..ed928db Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%ct%src%main.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%cterm%cterm.c b/config/nvim-2/nvim/undodir/%home%coast%projects%c%cterm%cterm.c new file mode 100644 index 0000000..7d07740 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%cterm%cterm.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%.git%COMMIT_EDITMSG b/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..75627d0 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%.gitignore b/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%.gitignore new file mode 100644 index 0000000..51d07c6 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%.gitignore differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%build.sh b/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%build.sh new file mode 100644 index 0000000..bf83347 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%build.sh differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%main.c b/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%main.c new file mode 100644 index 0000000..e373775 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%gl%Valkhaus%main.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%makefile b/config/nvim-2/nvim/undodir/%home%coast%projects%c%makefile new file mode 100644 index 0000000..4531b80 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%makefile differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%makefile-opt b/config/nvim-2/nvim/undodir/%home%coast%projects%c%makefile-opt new file mode 100644 index 0000000..c082083 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%makefile-opt differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%template-opt.c b/config/nvim-2/nvim/undodir/%home%coast%projects%c%template-opt.c new file mode 100644 index 0000000..5ddc68f Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%template-opt.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%main.c b/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%main.c new file mode 100644 index 0000000..dbdcffb Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%main.c differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%makefile b/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%makefile new file mode 100644 index 0000000..9f8abb3 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%makefile differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%shader.frag b/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%shader.frag new file mode 100644 index 0000000..6f417f2 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%shader.frag differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%shader.vert b/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%shader.vert new file mode 100644 index 0000000..3c4b521 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%c%vk%Valk%shader.vert differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%eul-license%v1 b/config/nvim-2/nvim/undodir/%home%coast%projects%eul-license%v1 new file mode 100644 index 0000000..80dd9ed Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%eul-license%v1 differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-asifaiusf%.git%COMMIT_EDITMSG b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-asifaiusf%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..29aa774 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-asifaiusf%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-asifaiusf%README.md b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-asifaiusf%README.md new file mode 100644 index 0000000..0fa47e7 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-asifaiusf%README.md differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%.git%COMMIT_EDITMSG b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..1a80d3c Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%README b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%README new file mode 100644 index 0000000..17004b3 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%README differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%README.md b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%README.md new file mode 100644 index 0000000..db08edb Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%README.md differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%Rakefile b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%Rakefile new file mode 100644 index 0000000..35efbe9 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%Rakefile differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%config.rb b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%config.rb new file mode 100644 index 0000000..fee7f37 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%config.rb differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%scion.rb b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%scion.rb new file mode 100644 index 0000000..e994a7a Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%vim-scion%scion.rb differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%wayland-rec%config.rb b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%wayland-rec%config.rb new file mode 100644 index 0000000..d752ef9 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%wayland-rec%config.rb differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%wayland-rec%main.rb b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%wayland-rec%main.rb new file mode 100644 index 0000000..6d3af5c Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%projects%ruby%wayland-rec%main.rb differ diff --git a/config/nvim-2/nvim/undodir/%home%coast%shit.sh b/config/nvim-2/nvim/undodir/%home%coast%shit.sh new file mode 100644 index 0000000..6e9aeb6 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%home%coast%shit.sh differ diff --git a/config/nvim-2/nvim/undodir/%mnt%Home%dotfiles%.gitignore b/config/nvim-2/nvim/undodir/%mnt%Home%dotfiles%.gitignore new file mode 100644 index 0000000..f80e3f4 Binary files /dev/null and b/config/nvim-2/nvim/undodir/%mnt%Home%dotfiles%.gitignore differ diff --git a/config/nvim-2/nvim/vscript/key.vim b/config/nvim-2/nvim/vscript/key.vim new file mode 100644 index 0000000..7a1fcf5 --- /dev/null +++ b/config/nvim-2/nvim/vscript/key.vim @@ -0,0 +1,2 @@ +let mapleader="," +nnoremap x :!chmod +x % diff --git a/config/nvim-2/nvim/vscript/lua.vim b/config/nvim-2/nvim/vscript/lua.vim new file mode 100644 index 0000000..aa14c46 --- /dev/null +++ b/config/nvim-2/nvim/vscript/lua.vim @@ -0,0 +1,87 @@ +lua << EOF + +vim.o.termguicolors = true + +local on_attach = function(client, bufnr) + local opts = { buffer = bufnr, remap = false } + + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) + vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) + vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) + vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) + vim.keymap.set("n", "ca", vim.lsp.buf.code_action, opts) + vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) + vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) +end + +vim.api.nvim_create_autocmd("FileType", { + pattern = { "lua" }, + callback = function() + vim.lsp.start({ + name = "lua_ls", + cmd = { "lua-language-server" }, + on_attach = on_attach, + }) + end, +}) + +vim.api.nvim_create_autocmd("FileType", { + pattern = { "python" }, + callback = function() + vim.lsp.start({ + name = "pyright", + cmd = { "pyright-langserver", "--stdio" }, + on_attach = on_attach, + }) + end, +}) + +vim.api.nvim_create_autocmd("FileType", { + pattern = { "c", "cpp" }, + callback = function() + vim.lsp.start({ + name = "clangd", + cmd = { "clangd" }, + on_attach = on_attach, + }) + end, +}) + +local cmp = require("cmp") + +cmp.setup({ + snippet = { + expand = function(args) + vim.snippet.expand(args.body) + end, + }, + + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.confirm({ select = true }), + }), + + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "buffer" }, + }), +}) + +vim.diagnostic.config({ + virtual_text = true, + signs = true, + underline = true, + update_in_insert = false, + severity_sort = true, + + float = { + border = "rounded", + source = true, + }, +}) + + +--autopairs? +require("nvim-autopairs").setup() + +EOF diff --git a/config/nvim-2/nvim/vscript/scp.vim b/config/nvim-2/nvim/vscript/scp.vim new file mode 100644 index 0000000..6824c18 --- /dev/null +++ b/config/nvim-2/nvim/vscript/scp.vim @@ -0,0 +1,29 @@ +function! Sc(char) + let closing = {'(': ')', '[': ']', '{': '}', '<': '>', '"': '"', "'": "'"} + + if has_key(closing, a:char) + let line = getline('.') + let col = col('.') - 1 + let before = col > 0 ? line[col-1] : '' + let after = col < len(line) ? line[col] : '' + if before =~ '\w' && after =~ '\w' + return a:char + endif + if (a:char == '"' || a:char == "'") && before == a:char + return a:char + endif + if after == closing[a:char] + return "\" + endif + return a:char . closing[a:char] . "\" + endif + + return a:char +endfunction + +inoremap ( =Sc('(') +inoremap [ =Sc('[') +inoremap { =Sc('{') +inoremap < =Sc('<') +inoremap " =Sc('"') +inoremap ' =Sc("'") diff --git a/config/nvim-2/nvim/vscript/theme.vim b/config/nvim-2/nvim/vscript/theme.vim new file mode 100644 index 0000000..02993f3 --- /dev/null +++ b/config/nvim-2/nvim/vscript/theme.vim @@ -0,0 +1,61 @@ +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:coastcolors_name = "coastcolors" + +hi Normal guifg=#E7E2DB guibg=NONE gui=NONE +hi NormalNC guifg=#E7E2DB guibg=NONE gui=NONE +hi NormalFloat guifg=#E7E2DB guibg=#141414 gui=NONE + +hi LineNr guifg=#9F6A5E guibg=NONE +hi CursorLineNr guifg=#C4A08A guibg=NONE gui=bold +hi CursorLine guibg=#141414 +hi CursorColumn guibg=#141414 +hi ColorColumn guibg=#101010 + +hi SignColumn guifg=#9F6A5E guibg=NONE +hi FoldColumn guifg=#9F6A5E guibg=NONE +hi Folded guifg=#C4A08A guibg=#141414 gui=italic + +hi VertSplit guifg=#2A2A2A +hi WinSeparator guifg=#2A2A2A + +hi StatusLine guifg=#E7E2DB guibg=#1A1A1A +hi StatusLineNC guifg=#9F6A5E guibg=#141414 + +hi TabLine guifg=#C4A08A guibg=#141414 +hi TabLineSel guifg=#E7E2DB guibg=#9F6A5E gui=bold +hi TabLineFill guibg=#141414 + +hi Visual guibg=#2A2A2A +hi VisualNOS guibg=#2A2A2A + +hi Search guifg=#2A1A0E guibg=#D4813A +hi IncSearch guifg=#E7E2DB guibg=#A0522D +hi CurSearch guifg=#E7E2DB guibg=#A0522D + +hi Pmenu guifg=#E7E2DB guibg=#141414 +hi PmenuSel guifg=#E7E2DB guibg=#9F6A5E +hi PmenuSbar guibg=#1A1A1A +hi PmenuThumb guibg=#3A2A22 + +hi NonText guifg=#2A2A2A +hi SpecialKey guifg=#2A2A2A +hi Whitespace guifg=#1A1A1A +hi EndOfBuffer guifg=#1A1A1A + +hi Comment guifg=#B8896E gui=italic +hi Constant guifg=#2E6DA4 +hi String guifg=#27794A +hi Number guifg=#2E6DA4 +hi Boolean guifg=#2E6DA4 gui=bold + +hi Function guifg=#8B3A62 gui=bold +hi Statement guifg=#A0522D gui=bold +hi Keyword guifg=#C0392B gui=bold +hi Type guifg=#2A7D7D gui=bold + +hi Error guifg=#E7E2DB guibg=#C0392B gui=bold +hi Todo guifg=#2A1A0E guibg=#D4813A gui=bold diff --git a/config/nvim-2/pack-bak/graft/start/LuaSnip b/config/nvim-2/pack-bak/graft/start/LuaSnip new file mode 160000 index 0000000..a62e108 --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/LuaSnip @@ -0,0 +1 @@ +Subproject commit a62e1083a3cfe8b6b206e7d3d33a51091df25357 diff --git a/config/nvim-2/pack-bak/graft/start/cmp-buffer b/config/nvim-2/pack-bak/graft/start/cmp-buffer new file mode 160000 index 0000000..b74fab3 --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/cmp-buffer @@ -0,0 +1 @@ +Subproject commit b74fab3656eea9de20a9b8116afa3cfc4ec09657 diff --git a/config/nvim-2/pack-bak/graft/start/cmp-nvim-lsp b/config/nvim-2/pack-bak/graft/start/cmp-nvim-lsp new file mode 160000 index 0000000..cbc7b02 --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/cmp-nvim-lsp @@ -0,0 +1 @@ +Subproject commit cbc7b02bb99fae35cb42f514762b89b5126651ef diff --git a/config/nvim-2/pack-bak/graft/start/nvim-autopairs b/config/nvim-2/pack-bak/graft/start/nvim-autopairs new file mode 160000 index 0000000..7b9923a --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/nvim-autopairs @@ -0,0 +1 @@ +Subproject commit 7b9923abad60b903ece7c52940e1321d39eccc79 diff --git a/config/nvim-2/pack-bak/graft/start/nvim-cmp b/config/nvim-2/pack-bak/graft/start/nvim-cmp new file mode 160000 index 0000000..a1d5048 --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/nvim-cmp @@ -0,0 +1 @@ +Subproject commit a1d504892f2bc56c2e79b65c6faded2fd21f3eca diff --git a/config/nvim-2/pack-bak/graft/start/nvim-lspconfig b/config/nvim-2/pack-bak/graft/start/nvim-lspconfig new file mode 160000 index 0000000..451d4ef --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/nvim-lspconfig @@ -0,0 +1 @@ +Subproject commit 451d4ef9abd4f0f08e379ef0d55d1c391b6125a7 diff --git a/config/nvim-2/pack-bak/graft/start/vim-closetag b/config/nvim-2/pack-bak/graft/start/vim-closetag new file mode 160000 index 0000000..d0a562f --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/vim-closetag @@ -0,0 +1 @@ +Subproject commit d0a562f8bdb107a50595aefe53b1a690460c3822 diff --git a/config/nvim-2/pack-bak/graft/start/vim-commentary b/config/nvim-2/pack-bak/graft/start/vim-commentary new file mode 160000 index 0000000..64a654e --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/vim-commentary @@ -0,0 +1 @@ +Subproject commit 64a654ef4a20db1727938338310209b6a63f60c9 diff --git a/config/nvim-2/pack-bak/graft/start/vim-endwise b/config/nvim-2/pack-bak/graft/start/vim-endwise new file mode 160000 index 0000000..4994afb --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/vim-endwise @@ -0,0 +1 @@ +Subproject commit 4994afb0cdf956d9a665a14b9c834869e602c396 diff --git a/config/nvim-2/pack-bak/graft/start/vim-fugitive b/config/nvim-2/pack-bak/graft/start/vim-fugitive new file mode 160000 index 0000000..3b753cf --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/vim-fugitive @@ -0,0 +1 @@ +Subproject commit 3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0 diff --git a/config/nvim-2/pack-bak/graft/start/vim-polyglot b/config/nvim-2/pack-bak/graft/start/vim-polyglot new file mode 160000 index 0000000..f061edd --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/vim-polyglot @@ -0,0 +1 @@ +Subproject commit f061eddb7cdcc614c8406847b2bfb53099832a4e diff --git a/config/nvim-2/pack-bak/graft/start/vim-sensible b/config/nvim-2/pack-bak/graft/start/vim-sensible new file mode 160000 index 0000000..0ce2d84 --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/vim-sensible @@ -0,0 +1 @@ +Subproject commit 0ce2d843d6f588bb0c8c7eec6449171615dc56d9 diff --git a/config/nvim-2/pack-bak/graft/start/vim-surround b/config/nvim-2/pack-bak/graft/start/vim-surround new file mode 160000 index 0000000..3d188ed --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/vim-surround @@ -0,0 +1 @@ +Subproject commit 3d188ed2113431cf8dac77be61b842acb64433d9 diff --git a/config/nvim-2/pack-bak/graft/start/vim-vinegar b/config/nvim-2/pack-bak/graft/start/vim-vinegar new file mode 160000 index 0000000..bb1bcdd --- /dev/null +++ b/config/nvim-2/pack-bak/graft/start/vim-vinegar @@ -0,0 +1 @@ +Subproject commit bb1bcddf43cfebe05eb565a84ab069b357d0b3d6 diff --git a/config/nvim-2/scion b/config/nvim-2/scion new file mode 160000 index 0000000..0b4ecbd --- /dev/null +++ b/config/nvim-2/scion @@ -0,0 +1 @@ +Subproject commit 0b4ecbd27497c31a23675f93412931801d85c7e1 diff --git a/config/nvim-2/scion_state.json b/config/nvim-2/scion_state.json new file mode 100644 index 0000000..4ac6706 --- /dev/null +++ b/config/nvim-2/scion_state.json @@ -0,0 +1,19 @@ +{ + "installed": { + "vim-endwise": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca", + "vim-vinegar": "4994afb0cdf956d9a665a14b9c834869e602c396", + "nvim-lspconfig": "64a654ef4a20db1727938338310209b6a63f60c9", + "nvim-cmp": "0ce2d843d6f588bb0c8c7eec6449171615dc56d9", + "vim-commentary": "0b4ecbd27497c31a23675f93412931801d85c7e1", + "cmp-buffer": "d0a562f8bdb107a50595aefe53b1a690460c3822", + "cmp-nvim-lsp": "cbc7b02bb99fae35cb42f514762b89b5126651ef", + "nvim-autopairs": "3d188ed2113431cf8dac77be61b842acb64433d9", + "vim-surround": "451d4ef9abd4f0f08e379ef0d55d1c391b6125a7", + "LuaSnip": "cbc7b02bb99fae35cb42f514762b89b5126651ef", + "vim-sensible": "7b9923abad60b903ece7c52940e1321d39eccc79", + "vim-fugitive": "bb1bcddf43cfebe05eb565a84ab069b357d0b3d6", + "vim-closetag": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0", + "vim-polyglot": "f061eddb7cdcc614c8406847b2bfb53099832a4e" + }, + "last_update": null +} \ No newline at end of file diff --git a/config/nvim-2/undodir/%home%coast%.config%alacritty%alacritty.toml b/config/nvim-2/undodir/%home%coast%.config%alacritty%alacritty.toml new file mode 100644 index 0000000..9601b32 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%alacritty%alacritty.toml differ diff --git a/config/nvim-2/undodir/%home%coast%.config%fastfetch%config.jsonc b/config/nvim-2/undodir/%home%coast%.config%fastfetch%config.jsonc new file mode 100644 index 0000000..3ebc7ee Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%fastfetch%config.jsonc differ diff --git a/config/nvim-2/undodir/%home%coast%.config%niri%config.kdl b/config/nvim-2/undodir/%home%coast%.config%niri%config.kdl new file mode 100644 index 0000000..3563a30 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%niri%config.kdl differ diff --git a/config/nvim-2/undodir/%home%coast%.config%nvim%graft%config.rb b/config/nvim-2/undodir/%home%coast%.config%nvim%graft%config.rb new file mode 100644 index 0000000..324ab66 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%nvim%graft%config.rb differ diff --git a/config/nvim-2/undodir/%home%coast%.config%nvim%init.vim b/config/nvim-2/undodir/%home%coast%.config%nvim%init.vim new file mode 100644 index 0000000..d4e7d89 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%nvim%init.vim differ diff --git a/config/nvim-2/undodir/%home%coast%.config%nvim%key.vim b/config/nvim-2/undodir/%home%coast%.config%nvim%key.vim new file mode 100644 index 0000000..ee0be81 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%nvim%key.vim differ diff --git a/config/nvim-2/undodir/%home%coast%.config%nvim%test.sh b/config/nvim-2/undodir/%home%coast%.config%nvim%test.sh new file mode 100644 index 0000000..7c1c89c Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%nvim%test.sh differ diff --git a/config/nvim-2/undodir/%home%coast%.config%nvim%vscript%lsp.vim b/config/nvim-2/undodir/%home%coast%.config%nvim%vscript%lsp.vim new file mode 100644 index 0000000..d2400b6 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%nvim%vscript%lsp.vim differ diff --git a/config/nvim-2/undodir/%home%coast%.config%nvim%vscript%lua.vim b/config/nvim-2/undodir/%home%coast%.config%nvim%vscript%lua.vim new file mode 100644 index 0000000..5e89793 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%nvim%vscript%lua.vim differ diff --git a/config/nvim-2/undodir/%home%coast%.config%nvim%vscript%scp.vim b/config/nvim-2/undodir/%home%coast%.config%nvim%vscript%scp.vim new file mode 100644 index 0000000..d38c83b Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%nvim%vscript%scp.vim differ diff --git a/config/nvim-2/undodir/%home%coast%.config%waybar%config.jsonc b/config/nvim-2/undodir/%home%coast%.config%waybar%config.jsonc new file mode 100644 index 0000000..38e3164 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%waybar%config.jsonc differ diff --git a/config/nvim-2/undodir/%home%coast%.config%xdg-desktop-portal%portals.conf b/config/nvim-2/undodir/%home%coast%.config%xdg-desktop-portal%portals.conf new file mode 100644 index 0000000..45ebe8d Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.config%xdg-desktop-portal%portals.conf differ diff --git a/config/nvim-2/undodir/%home%coast%.zshrc b/config/nvim-2/undodir/%home%coast%.zshrc new file mode 100644 index 0000000..f6f7ae6 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%.zshrc differ diff --git a/config/nvim-2/undodir/%home%coast%DEVLIST b/config/nvim-2/undodir/%home%coast%DEVLIST new file mode 100644 index 0000000..ca37bfb Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%DEVLIST differ diff --git a/config/nvim-2/undodir/%home%coast%main.c b/config/nvim-2/undodir/%home%coast%main.c new file mode 100644 index 0000000..993c793 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%main.c differ diff --git a/config/nvim-2/undodir/%home%coast%pertree b/config/nvim-2/undodir/%home%coast%pertree new file mode 100644 index 0000000..65d3ee6 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%pertree differ diff --git a/config/nvim-2/undodir/%home%coast%projects%c%catter%.git%COMMIT_EDITMSG b/config/nvim-2/undodir/%home%coast%projects%c%catter%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..79d5e94 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%c%catter%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-2/undodir/%home%coast%projects%c%catter%.gitignore b/config/nvim-2/undodir/%home%coast%projects%c%catter%.gitignore new file mode 100644 index 0000000..da38c50 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%c%catter%.gitignore differ diff --git a/config/nvim-2/undodir/%home%coast%projects%c%catter%README b/config/nvim-2/undodir/%home%coast%projects%c%catter%README new file mode 100644 index 0000000..72beb72 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%c%catter%README differ diff --git a/config/nvim-2/undodir/%home%coast%projects%c%catter%main.c b/config/nvim-2/undodir/%home%coast%projects%c%catter%main.c new file mode 100644 index 0000000..23b4ca9 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%c%catter%main.c differ diff --git a/config/nvim-2/undodir/%home%coast%projects%c%catter%makefile b/config/nvim-2/undodir/%home%coast%projects%c%catter%makefile new file mode 100644 index 0000000..96e432c Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%c%catter%makefile differ diff --git a/config/nvim-2/undodir/%home%coast%projects%c%catter%src%main.c b/config/nvim-2/undodir/%home%coast%projects%c%catter%src%main.c new file mode 100644 index 0000000..a5ec018 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%c%catter%src%main.c differ diff --git a/config/nvim-2/undodir/%home%coast%projects%c%makefile-opt b/config/nvim-2/undodir/%home%coast%projects%c%makefile-opt new file mode 100644 index 0000000..c082083 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%c%makefile-opt differ diff --git a/config/nvim-2/undodir/%home%coast%projects%c%template-opt.c b/config/nvim-2/undodir/%home%coast%projects%c%template-opt.c new file mode 100644 index 0000000..5ddc68f Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%c%template-opt.c differ diff --git a/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%.git%COMMIT_EDITMSG b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%.git%COMMIT_EDITMSG new file mode 100644 index 0000000..1a80d3c Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%.git%COMMIT_EDITMSG differ diff --git a/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%README b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%README new file mode 100644 index 0000000..17004b3 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%README differ diff --git a/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%README.md b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%README.md new file mode 100644 index 0000000..db08edb Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%README.md differ diff --git a/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%Rakefile b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%Rakefile new file mode 100644 index 0000000..35efbe9 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%Rakefile differ diff --git a/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%config.rb b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%config.rb new file mode 100644 index 0000000..fee7f37 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%config.rb differ diff --git a/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%scion.rb b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%scion.rb new file mode 100644 index 0000000..e994a7a Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%ruby%vim-scion%scion.rb differ diff --git a/config/nvim-2/undodir/%home%coast%projects%ruby%wayland-rec%config.rb b/config/nvim-2/undodir/%home%coast%projects%ruby%wayland-rec%config.rb new file mode 100644 index 0000000..d752ef9 Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%ruby%wayland-rec%config.rb differ diff --git a/config/nvim-2/undodir/%home%coast%projects%ruby%wayland-rec%main.rb b/config/nvim-2/undodir/%home%coast%projects%ruby%wayland-rec%main.rb new file mode 100644 index 0000000..6d3af5c Binary files /dev/null and b/config/nvim-2/undodir/%home%coast%projects%ruby%wayland-rec%main.rb differ diff --git a/config/nvim-2/vscript/key.vim b/config/nvim-2/vscript/key.vim new file mode 100644 index 0000000..7a1fcf5 --- /dev/null +++ b/config/nvim-2/vscript/key.vim @@ -0,0 +1,2 @@ +let mapleader="," +nnoremap x :!chmod +x % diff --git a/config/nvim-2/vscript/lua.vim b/config/nvim-2/vscript/lua.vim new file mode 100644 index 0000000..8d6eec0 --- /dev/null +++ b/config/nvim-2/vscript/lua.vim @@ -0,0 +1,122 @@ +lua << EOF + +vim.o.termguicolors = true + +local on_attach = function(client, bufnr) + local opts = { buffer = bufnr, remap = false } + + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) + vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) + vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) + vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) + vim.keymap.set("n", "ca", vim.lsp.buf.code_action, opts) + vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) + vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) +end + +vim.api.nvim_create_autocmd("FileType", { + pattern = { "lua" }, + callback = function() + vim.lsp.start({ + name = "lua_ls", + cmd = { "lua-language-server" }, + on_attach = on_attach, + }) + end, +}) + +vim.api.nvim_create_autocmd("FileType", { + pattern = { "python" }, + callback = function() + vim.lsp.start({ + name = "pyright", + cmd = { "pyright-langserver", "--stdio" }, + on_attach = on_attach, + }) + end, +}) + +vim.api.nvim_create_autocmd("FileType", { + pattern = { "c", "cpp" }, + callback = function() + vim.lsp.start({ + name = "clangd", + cmd = { "clangd" }, + on_attach = on_attach, + }) + end, +}) + +local cmp = require("cmp") + +cmp.setup({ + snippet = { + expand = function(args) + vim.snippet.expand(args.body) + end, + }, + + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.confirm({ select = true }), + }), + + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "buffer" }, + }), +}) + +vim.diagnostic.config({ + virtual_text = true, + signs = true, + underline = true, + update_in_insert = false, + severity_sort = true, + + float = { + border = "rounded", + source = true, + }, +}) + +vim.cmd([[ +highlight clear +syntax reset +highlight Normal guibg=NONE +highlight NormalNC guibg=NONE +highlight SignColumn guibg=NONE +highlight FoldColumn guibg=NONE +highlight VertSplit guibg=NONE +highlight StatusLine guibg=NONE +highlight StatusLineNC guibg=NONE +highlight LineNr guibg=NONE +highlight CursorLine guibg=#151515 +highlight CursorLineNr guibg=NONE gui=bold +highlight Pmenu guibg=#121212 +highlight PmenuSel guibg=#2a2a2a +highlight PmenuSbar guibg=#121212 +highlight PmenuThumb guibg=#4a4a4a +highlight NormalFloat guibg=NONE +highlight FloatBorder guibg=NONE +highlight DiagnosticError guifg=#ff6b6b +highlight DiagnosticWarn guifg=#ffd08a +highlight DiagnosticInfo guifg=#9fe7ff +highlight DiagnosticHint guifg=#7dff9a +highlight DiagnosticVirtualTextError guifg=#ff6b6b guibg=NONE +highlight DiagnosticVirtualTextWarn guifg=#ffd08a guibg=NONE +highlight DiagnosticVirtualTextInfo guifg=#9fe7ff guibg=NONE +highlight DiagnosticVirtualTextHint guifg=#7dff7a guibg=NONE +highlight DiagnosticUnderlineError gui=undercurl guisp=#ff6b6b +highlight DiagnosticUnderlineWarn gui=undercurl guisp=#ffd08a +highlight DiagnosticUnderlineInfo gui=undercurl guisp=#9fe7ff +highlight DiagnosticUnderlineHint gui=undercurl guisp=#7dff7a +highlight LspReferenceText guibg=#1f1f1f +highlight LspReferenceRead guibg=#1f1f1f +highlight LspReferenceWrite guibg=#1f1f1f +]]) + +--autopairs? +require("nvim-autopairs").setup() + +EOF diff --git a/config/nvim-2/vscript/scp.vim b/config/nvim-2/vscript/scp.vim new file mode 100644 index 0000000..6824c18 --- /dev/null +++ b/config/nvim-2/vscript/scp.vim @@ -0,0 +1,29 @@ +function! Sc(char) + let closing = {'(': ')', '[': ']', '{': '}', '<': '>', '"': '"', "'": "'"} + + if has_key(closing, a:char) + let line = getline('.') + let col = col('.') - 1 + let before = col > 0 ? line[col-1] : '' + let after = col < len(line) ? line[col] : '' + if before =~ '\w' && after =~ '\w' + return a:char + endif + if (a:char == '"' || a:char == "'") && before == a:char + return a:char + endif + if after == closing[a:char] + return "\" + endif + return a:char . closing[a:char] . "\" + endif + + return a:char +endfunction + +inoremap ( =Sc('(') +inoremap [ =Sc('[') +inoremap { =Sc('{') +inoremap < =Sc('<') +inoremap " =Sc('"') +inoremap ' =Sc("'") diff --git a/config/nvim-root/init.lua b/config/nvim-root/init.lua new file mode 100755 index 0000000..1d60c81 --- /dev/null +++ b/config/nvim-root/init.lua @@ -0,0 +1,168 @@ +vim.cmd [[ + set nocompatible + filetype plugin indent on + syntax enable + call plug#begin('~/.local/share/nvim/plugged') + Plug 'tpope/vim-sensible' + Plug 'junegunn/fzf.vim' + Plug 'tpope/vim-surround' + Plug 'tpope/vim-commentary' + Plug 'jiangmiao/auto-pairs' + Plug 'tpope/vim-repeat' + Plug 'mattn/emmet-vim' + Plug 'norcalli/nvim-colorizer.lua' + call plug#end() +]] + +vim.opt.clipboard = "unnamedplus" +vim.opt.updatetime = 300 +vim.opt.timeoutlen = 500 +vim.opt.signcolumn = "yes" +vim.opt.completeopt = { "menuone", "noinsert", "noselect" } +vim.opt.encoding = "utf-8" +vim.opt.number = true +vim.opt.relativenumber = true +vim.opt.numberwidth = 4 +vim.opt.tabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.expandtab = true +vim.opt.smartindent = true +vim.opt.incsearch = true +vim.opt.hlsearch = true +vim.opt.ignorecase = true +vim.opt.smartcase = true +vim.opt.wrap = true +vim.opt.mouse = "a" +vim.opt.scrolloff = 5 +vim.opt.cursorline = true +vim.opt.showmode = false +vim.opt.shortmess:append("I") +vim.opt.autoindent = true +vim.opt.termguicolors = true +vim.opt.list = true +vim.opt.undodir = vim.fn.stdpath("cache") .. "/undo" +vim.opt.undofile = true +vim.opt.wrapscan = true +vim.opt.shortmess:append("c") +vim.opt.autoread = true +vim.opt.cmdheight = 1 +vim.opt.belloff = "all" +vim.opt.laststatus = 2 +vim.opt.scrolljump = 3 +vim.opt.hidden = true +vim.opt.splitbelow = true +vim.opt.splitright = true +vim.opt.backup = false +vim.opt.writebackup = false +vim.opt.lazyredraw = true +vim.opt.smoothscroll = true + +vim.api.nvim_set_hl(0, "Normal", { fg = "#a6536f", bg = "NONE", ctermfg = 132, ctermbg = "NONE" }) +vim.api.nvim_set_hl(0, "NormalNC", { fg = "#bb6c82", bg = "NONE", ctermfg = 168, ctermbg = "NONE" }) +vim.api.nvim_set_hl(0, "LineNr", { fg = "#743c5e", bg = "NONE", ctermfg = 132, ctermbg = "NONE" }) +vim.api.nvim_set_hl(0, "CursorLine", { bg = "#3f1f32", fg = "NONE", blend = 30 }) +vim.api.nvim_set_hl(0, "VertSplit", { fg = "#3f1f32", bg = "NONE", ctermfg = 237, ctermbg = "NONE" }) + +vim.api.nvim_set_hl(0, "StatusLine", { + fg = "#a6536f", + bg = "#2a1c2e", + ctermfg = 132, + ctermbg = 235, +}) + +vim.api.nvim_set_hl(0, "StatusLineMode", { + fg = "#f7d8e5", + bg = "#5e2f4c", + bold = true, + ctermfg = 224, + ctermbg = 131, +}) + +vim.api.nvim_set_hl(0, "Visual", { bg = "#5a2c3a", fg = "NONE", ctermbg = 52, ctermfg = "NONE" }) +vim.api.nvim_set_hl(0, "VisualNOS", { bg = "#5a2c3a", fg = "NONE", ctermbg = 52, ctermfg = "NONE" }) +vim.api.nvim_set_hl(0, "VisualSB", { bg = "#5a2c3a", fg = "NONE", ctermbg = 52, ctermfg = "NONE" }) +vim.api.nvim_set_hl(0, "Search", { fg = "#b0576f", bg = "#1c1533", ctermfg = 131, ctermbg = 234 }) +vim.api.nvim_set_hl(0, "IncSearch", { fg = "#f5a3ba", bg = "#1c1533", ctermfg = 218, ctermbg = 234 }) +vim.api.nvim_set_hl(0, "Pmenu", { fg = "#b0576f", bg = "NONE", ctermfg = 131, ctermbg = "NONE" }) +vim.api.nvim_set_hl(0, "PmenuSel", { fg = "#000000", bg = "#b0576f", ctermfg = 0, ctermbg = 131 }) +vim.api.nvim_set_hl(0, "WildMenu", { fg = "#b0576f", bg = "NONE", ctermfg = 131, ctermbg = "NONE" }) +vim.api.nvim_set_hl(0, "Folded", { fg = "#c18299", bg = "NONE", ctermfg = 174, ctermbg = "NONE" }) +vim.api.nvim_set_hl(0, "SignColumn", { fg = "#f0b6c8", bg = "NONE", ctermfg = 224, ctermbg = "NONE" }) + +local mode_names = { + n = "ROOT NRM", + i = "ROOT INS", + v = "ROOT VSL", + V = "ROOT VLI", + [""] = "ROOT VBL", + R = "ROOT RPL", + c = "ROOT CMD", +} + +function _G.ModeName() + return mode_names[vim.fn.mode()] or "UNK" +end + +vim.opt.statusline = table.concat { + "%#StatusLineMode# ", + "%{v:lua.ModeName()} ", + "%#StatusLine# ", + "%f %m %r ", + "%=", + "Ln:%l/%L ", + "Col:%c ", + "[%p%%]", +} + +vim.g.mapleader = " " +local map = vim.keymap.set +map("n", "w", ":w") +map("n", "q", ":q") +map("n", "h", ":nohlsearch", { silent = true }) +map("n", "n", ":set relativenumber!") +map("n", "", "h") +map("n", "", "j") +map("n", "", "k") +map("n", "", "l") +map("n", "v", ":Ex") +map("", "j", "gj") +map("", "k", "gk") + +vim.keymap.set({ "n", "v" }, "cd", vim.cmd.Ex) + +vim.keymap.set({ "n", "v" }, "d", '"_d', { desc = "Delete without yanking" }) +vim.keymap.set("n", "bn", ":bnext", { desc = "Next buffer" }) +vim.keymap.set("n", "bp", ":bprevious", { desc = "Previous buffer" }) + +vim.keymap.set("n", "", "h", { desc = "Move to left window" }) +vim.keymap.set("n", "", "j", { desc = "Move to bottom window" }) +vim.keymap.set("n", "", "k", { desc = "Move to top window" }) +vim.keymap.set("n", "", "l", { desc = "Move to right window" }) + +local modes_to_disable = { "n", "v", "x", "s", "c" } +local arrows = { "", "", "", "" } + +for _, mode in ipairs(modes_to_disable) do + for _, key in ipairs(arrows) do + vim.keymap.set(mode, key, "", { silent = true }) + end +end + +vim.keymap.set("n", "sv", ":vsplit", { desc = "Split window vertically" }) +vim.keymap.set("n", "sh", ":split", { desc = "Split window horizontally" }) +vim.keymap.set("n", "", ":resize +2", { desc = "Increase window height" }) +vim.keymap.set("n", "", ":resize -2", { desc = "Decrease window height" }) +vim.keymap.set("n", "", ":vertical resize -2", { desc = "Decrease window width" }) +vim.keymap.set("n", "", ":vertical resize +2", { desc = "Increase window width" }) + +vim.keymap.set("n", "", ":m .+1==", { desc = "Move line down" }) +vim.keymap.set("n", "", ":m .-2==", { desc = "Move line up" }) +vim.keymap.set("v", "", ":m '>+1gv=gv", { desc = "Move selection down" }) +vim.keymap.set("v", "", ":m '<-2gv=gv", { desc = "Move selection up" }) + +require('colorizer').setup { + '*', + css = { names = true }, + html = { names = true }, +} + diff --git a/config/picom/picom-animations.conf b/config/picom/picom-animations.conf new file mode 100755 index 0000000..b59cfcb --- /dev/null +++ b/config/picom/picom-animations.conf @@ -0,0 +1,310 @@ +{ + match = "window_type = 'normal'"; + animations = ( + { + triggers = ["close"]; + opacity = { + curve = "cubic-bezier(0,1,1,1)"; + duration = 0.3; + start = "window-raw-opacity-before"; + end = 0; + }; + blur-opacity = "opacity"; + shadow-opacity = "opacity"; + + scale-x = { + curve = "cubic-bezier(0,1.3,1,1)"; + duration = 0.3; + start = 1; + end = 0.6; + }; + scale-y = "scale-x"; + + offset-x = "(1 - scale-x) / 2 * window-width"; + offset-y = "(1 - scale-y) / 2 * window-height"; + + shadow-scale-x = "scale-x"; + shadow-scale-y = "scale-y"; + shadow-offset-x = "offset-x"; + shadow-offset-y = "offset-y"; + }, + + { + triggers = ["open"]; + opacity = { + curve = "cubic-bezier(0,1,1,1)"; + duration = 0.3; + start = 0; + end = "window-raw-opacity"; + }; + blur-opacity = "opacity"; + shadow-opacity = "opacity"; + + scale-x = { + curve = "cubic-bezier(0,1.3,1,1)"; + duration = 0.3; + start = 0.6; + end = 1; + }; + scale-y = "scale-x"; + + offset-x = "(1 - scale-x) / 2 * window-width"; + offset-y = "(1 - scale-y) / 2 * window-height"; + + shadow-scale-x = "scale-x"; + shadow-scale-y = "scale-y"; + shadow-offset-x = "offset-x"; + shadow-offset-y = "offset-y"; + }, + + { + triggers = ["geometry"]; + scale-x = { + curve = "cubic-bezier(0,0,0,1.28)"; + duration = 0.3; + start = "window-width-before / window-width"; + end = 1; + }; + + scale-x-reverse = { + curve = "cubic-bezier(0,0,0,1.28)"; + duration = 0.4; + start = "window-width / window-width-before"; + end = 1; + }; + scale-y = { + curve = "cubic-bezier(0,0,0,1.28)"; + duration = 0.3; + start = "window-height-before / window-height"; + end = 1; + }; + scale-y-reverse = { + curve = "cubic-bezier(0,0,0,1.28)"; + duration = 0.4; + start = "window-height / window-height-before"; + end = 1; + }; + offset-x = { + curve = "cubic-bezier(0,0,0,1.28)"; + duration = 0.3; + start = "window-x-before - window-x"; + end = 0; + }; + offset-y = { + curve = "cubic-bezier(0,0,0,1.28)"; + duration = 0.3; + start = "window-y-before - window-y"; + end = 0; + }; + shadow-scale-x = "scale-x"; + shadow-scale-y = "scale-y"; + shadow-offset-x = "offset-x"; + shadow-offset-y = "offset-y"; + } + ) +}, + +{ + match = "class_g = 'Rofi'"; + animations = ( + { + triggers = ["close", "hide"]; + preset = "disappear"; + duration = 0.05; + scale = 0.4; + }, + { + triggers = ["open", "show"]; + preset = "appear"; + duration = 0.15; + scale = 0.4; + } + ) +}, + +{ + match = "class_g = 'dunst'"; + animations = ( + { + triggers = ["close", "hide"]; + preset = "fly-out"; + direction = "up"; + duration = 0.15; + }, + { + triggers = ["open", "show"]; + preset = "fly-in"; + direction = "up"; + duration = 0.15; + } + ) +}, + +{ + match = "class_g = 'jgmenu'"; + animations = ( + { + triggers = ["close", "hide"]; + preset = "disappear"; + duration = 0.05; + scale = 0.4; + }, + { + triggers = ["open", "show"]; + preset = "appear"; + duration = 0.1; + scale = 0.4; + } + ) +}, + +{ + match = "class_g = 'bspwm-scratch'"; + animations = ( + { + triggers = ["close", "hide"]; + preset = "fly-out"; + direction = "up"; + duration = 0.15; + }, + { + triggers = ["open", "show"]; + preset = "fly-in"; + direction = "up"; + duration = 0.15; + } + ) +}, + +{ + match = "name = 'Eww - launchermenu'"; + animations = ( + { + triggers = ["close", "hide"]; + preset = "slide-out"; + direction = "right"; + duration = 0.15; + }, + { + triggers = ["open", "show"]; + preset = "slide-in"; + direction = "right"; + duration = 0.15; + } + ) +}, + +{ + match = "name = 'Eww - music'"; + animations = ( + { + triggers = ["close", "hide"]; + preset = "slide-out"; + direction = "up"; + duration = 0.15; + }, + { + triggers = ["open", "show"]; + preset = "slide-in"; + direction = "up"; + duration = 0.15; + } + ) +}, + +{ + match = "name = 'Eww - date'"; + animations = ( + { + triggers = ["close", "hide"]; + preset = "fly-out"; + direction = "up"; + duration = 0.15; + }, + { + triggers = ["open", "show"]; + preset = "fly-in"; + direction = "up"; + duration = 0.15; + } + ) +}, + +{ + match = "name = 'Eww - csheet'"; + animations = ( + { + triggers = ["close", "hide"]; + preset = "disappear"; + duration = 0.05; + scale = 0.4; + }, + { + triggers = ["open", "show"]; + preset = "appear"; + duration = 0.1; + scale = 0.4; + } + ) +}, + +{ + match = "window_type = 'dock'"; + animations = ( + { + triggers = ["focus-in", "focus-out"]; + opacity = { + curve = "cubic-bezier(0, 0, 0, 1)"; + duration = 0.1; + start = 0; + end = 1; + }; + blur-opacity = "opacity"; + shadow-opacity = "opacity"; + + scale-x = { + curve = "cubic-bezier(0, 0, 0, 1)"; + duration = 0.15; + start = 0.9; + end = 1; + }; + scale-y = "scale-x"; + + offset-x = "(1 - scale-x) / 2 * window-width"; + offset-y = "(1 - scale-y) / 2 * window-height"; + + shadow-scale-x = "scale-x"; + shadow-scale-y = "scale-y"; + shadow-offset-x = "offset-x"; + shadow-offset-y = "offset-y"; + }, + + { + triggers = ["focus-out"]; + opacity = { + curve = "cubic-bezier(0, 0, 0, 1)"; + duration = 0.1; + start = 1; + end = 0; + }; + blur-opacity = "opacity"; + shadow-opacity = "opacity"; + + scale-x = { + curve = "cubic-bezier(0, 0, 0, 1)"; + duration = 0.15; + start = 1; + end = 0.9; + }; + scale-y = "scale-x"; + + offset-x = "(1 - scale-x) / 2 * window-width"; + offset-y = "(1 - scale-y) / 2 * window-height"; + + shadow-scale-x = "scale-x"; + shadow-scale-y = "scale-y"; + shadow-offset-x = "offset-x"; + shadow-offset-y = "offset-y"; + } + ) +} diff --git a/config/picom/picom.conf b/config/picom/picom.conf new file mode 100755 index 0000000..29f35a2 --- /dev/null +++ b/config/picom/picom.conf @@ -0,0 +1,151 @@ +shadow-radius = 1; +shadow-opacity = .1; +shadow-offset-x = -7; +shadow-offset-y = -7; +shadow-color = "#000000" + +fading = true; +fade-in-step = 0.03; +fade-out-step = 0.03; +fade-delta = 5 +no-fading-openclose = false; +no-fading-destroyed-argb = false + +frame-opacity = 1.0; + +backend = "glx" +dithered-present = false; +vsync = true; + +detect-rounded-corners = true; +detect-client-opacity = true; +detect-transient = true; + +use-damage = true; + +blur: + { + method = "dual_kawase"; + size = 10; + deviation = 2.5; + } + +rules: ( + { + blur-background = true; + blur-background-fixed = true; + fade = false; + }, + { + match = "window_type = 'dock'"; + corner-radius = 0; + shadow = false; + }, + { + match = "class_g = 'dwm' || class_g = 'Polybar' || class_g = 'dmenu'"; + corner-radius = 0; + blur-background = true; + opacity = 0.80; + shadow = false; + }, + { + match = "fullscreen = true"; + corner-radius = 0; + }, + { + match = "window_type = 'normal'"; + fade = true; + shadow = true; + }, + { + match = "window_type = 'dialog'"; + shadow = true; + }, + { + match = "window_type = 'tooltip'"; + corner-radius = 0; + opacity = 0.90; + }, + { + match = "window_type = 'dock'"; + corner-radius = 0; + fade = true; + }, + { + match = "window_type = 'dropdown_menu' || window_type = 'menu' || window_type = 'popup' || window_type = 'popup_menu'"; + corner-radius = 0; + }, + { + match = "class_g = 'Alacritty' || class_g = 'kitty' || class_g = 'FloaTerm'"; + opacity = 0.8; + blur-background = true; + }, + { + match = "class_g = 'Polybar' || class_g = 'eww-bar' || class_g = 'Viewnior' || class_g = 'Rofi' || class_g = 'mpv' || class_g = 'bspwm-scratch' || class_g = 'Dunst' || class_g = 'retroarch'"; + corner-radius = 0; + }, + { + match = "name = 'Notification' || class_g ?= 'Notify-osd' || class_g = 'Dunst' || class_g = 'Polybar' || class_g = 'Eww' || class_g = 'jgmenu' || class_g = 'scratch' || class_g = 'Spotify' || class_g = 'retroarch' || class_g = 'firefox' || class_g = 'Rofi' || class_g = 'Screenkey' || class_g = 'mpv' || class_g = 'Viewnior' || _GTK_FRAME_EXTENTS@"; + shadow = false; + }, + { + match = "window_type = 'normal'"; + animations = ( + { + triggers = ["open"]; + opacity = { + curve = "cubic-bezier(0,1,1,1)"; + duration = 0.3; + start = 0; + end = "window-raw-opacity"; + }; + blur-opacity = "opacity"; + shadow-opacity = "opacity"; + + scale-x = { + curve = "cubic-bezier(0,1.3,1,1)"; + duration = 0.3; + start = 0.6; + end = 1; + }; + scale-y = "scale-x"; + + offset-x = "(1 - scale-x) / 2 * window-width"; + offset-y = "(1 - scale-y) / 2 * window-height"; + + shadow-scale-x = "scale-x"; + shadow-scale-y = "scale-y"; + shadow-offset-x = "offset-x"; + shadow-offset-y = "offset-y"; + }, + { + triggers = ["close"]; + opacity = { + curve = "cubic-bezier(0,1,1,1)"; + duration = 0.3; + start = "window-raw-opacity-before"; + end = 0; + }; + blur-opacity = "opacity"; + shadow-opacity = "opacity"; + + scale-x = { + curve = "cubic-bezier(0,1.3,1,1)"; + duration = 0.3; + start = 1; + end = 0.6; + }; + scale-y = "scale-x"; + + offset-x = "(1 - scale-x) / 2 * window-width"; + offset-y = "(1 - scale-y) / 2 * window-height"; + + shadow-scale-x = "scale-x"; + shadow-scale-y = "scale-y"; + shadow-offset-x = "offset-x"; + shadow-offset-y = "offset-y"; + } + ) + }, + @include "picom-animations.conf" +) diff --git a/config/piss/pissrc b/config/piss/pissrc new file mode 100755 index 0000000..1ec3420 --- /dev/null +++ b/config/piss/pissrc @@ -0,0 +1,4 @@ +#!/bin/sh +piss bind "Super + Shift + S" "screenie" +piss bind "Super + R" "$HOME/Projects/py/dmenu.py" +piss bind "Super + Shift + Return" "dmenu_run -l 10 -fn \"JetBrainsMono Nerd Font:size=11\" -nb \"#121212\" -nf \"#e0e0e0\" -sb \"#222222\" -sf \"#e0e0e0\" -p \"Run:\"" diff --git a/config/plugged/plug.vim b/config/plugged/plug.vim new file mode 100755 index 0000000..a225a6d --- /dev/null +++ b/config/plugged/plug.vim @@ -0,0 +1,2877 @@ +" vim-plug: Vim plugin manager +" ============================ +" +" 1. Download plug.vim and put it in 'autoload' directory +" +" # Vim +" curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ +" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim +" +" # Neovim +" sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ +" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' +" +" 2. Add a vim-plug section to your ~/.vimrc (or ~/.config/nvim/init.vim for Neovim) +" +" call plug#begin() +" +" " List your plugins here +" Plug 'tpope/vim-sensible' +" +" call plug#end() +" +" 3. Reload the file or restart Vim, then you can, +" +" :PlugInstall to install plugins +" :PlugUpdate to update plugins +" :PlugDiff to review the changes from the last update +" :PlugClean to remove plugins no longer in the list +" +" For more information, see https://github.com/junegunn/vim-plug +" +" +" Copyright (c) 2024 Junegunn Choi +" +" MIT License +" +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be +" included in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +" NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +" LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +if exists('g:loaded_plug') + finish +endif +let g:loaded_plug = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let s:plug_src = 'https://github.com/junegunn/vim-plug.git' +let s:plug_tab = get(s:, 'plug_tab', -1) +let s:plug_buf = get(s:, 'plug_buf', -1) +let s:mac_gui = has('gui_macvim') && has('gui_running') +let s:is_win = has('win32') +let s:nvim = has('nvim-0.2') || (has('nvim') && exists('*jobwait') && !s:is_win) +let s:vim8 = has('patch-8.0.0039') && exists('*job_start') +if s:is_win && &shellslash + set noshellslash + let s:me = resolve(expand(':p')) + set shellslash +else + let s:me = resolve(expand(':p')) +endif +let s:base_spec = { 'branch': '', 'frozen': 0 } +let s:TYPE = { +\ 'string': type(''), +\ 'list': type([]), +\ 'dict': type({}), +\ 'funcref': type(function('call')) +\ } +let s:loaded = get(s:, 'loaded', {}) +let s:triggers = get(s:, 'triggers', {}) + +function! s:is_powershell(shell) + return a:shell =~# 'powershell\(\.exe\)\?$' || a:shell =~# 'pwsh\(\.exe\)\?$' +endfunction + +function! s:isabsolute(dir) abort + return a:dir =~# '^/' || (has('win32') && a:dir =~? '^\%(\\\|[A-Z]:\)') +endfunction + +function! s:git_dir(dir) abort + let gitdir = s:trim(a:dir) . '/.git' + if isdirectory(gitdir) + return gitdir + endif + if !filereadable(gitdir) + return '' + endif + let gitdir = matchstr(get(readfile(gitdir), 0, ''), '^gitdir: \zs.*') + if len(gitdir) && !s:isabsolute(gitdir) + let gitdir = a:dir . '/' . gitdir + endif + return isdirectory(gitdir) ? gitdir : '' +endfunction + +function! s:git_origin_url(dir) abort + let gitdir = s:git_dir(a:dir) + let config = gitdir . '/config' + if empty(gitdir) || !filereadable(config) + return '' + endif + return matchstr(join(readfile(config)), '\[remote "origin"\].\{-}url\s*=\s*\zs\S*\ze') +endfunction + +function! s:git_revision(dir) abort + let gitdir = s:git_dir(a:dir) + let head = gitdir . '/HEAD' + if empty(gitdir) || !filereadable(head) + return '' + endif + + let line = get(readfile(head), 0, '') + let ref = matchstr(line, '^ref: \zs.*') + if empty(ref) + return line + endif + + if filereadable(gitdir . '/' . ref) + return get(readfile(gitdir . '/' . ref), 0, '') + endif + + if filereadable(gitdir . '/packed-refs') + for line in readfile(gitdir . '/packed-refs') + if line =~# ' ' . ref + return matchstr(line, '^[0-9a-f]*') + endif + endfor + endif + + return '' +endfunction + +function! s:git_local_branch(dir) abort + let gitdir = s:git_dir(a:dir) + let head = gitdir . '/HEAD' + if empty(gitdir) || !filereadable(head) + return '' + endif + let branch = matchstr(get(readfile(head), 0, ''), '^ref: refs/heads/\zs.*') + return len(branch) ? branch : 'HEAD' +endfunction + +function! s:git_origin_branch(spec) + if len(a:spec.branch) + return a:spec.branch + endif + + " The file may not be present if this is a local repository + let gitdir = s:git_dir(a:spec.dir) + let origin_head = gitdir.'/refs/remotes/origin/HEAD' + if len(gitdir) && filereadable(origin_head) + return matchstr(get(readfile(origin_head), 0, ''), + \ '^ref: refs/remotes/origin/\zs.*') + endif + + " The command may not return the name of a branch in detached HEAD state + let result = s:lines(s:system('git symbolic-ref --short HEAD', a:spec.dir)) + return v:shell_error ? '' : result[-1] +endfunction + +if s:is_win + function! s:plug_call(fn, ...) + let shellslash = &shellslash + try + set noshellslash + return call(a:fn, a:000) + finally + let &shellslash = shellslash + endtry + endfunction +else + function! s:plug_call(fn, ...) + return call(a:fn, a:000) + endfunction +endif + +function! s:plug_getcwd() + return s:plug_call('getcwd') +endfunction + +function! s:plug_fnamemodify(fname, mods) + return s:plug_call('fnamemodify', a:fname, a:mods) +endfunction + +function! s:plug_expand(fmt) + return s:plug_call('expand', a:fmt, 1) +endfunction + +function! s:plug_tempname() + return s:plug_call('tempname') +endfunction + +function! plug#begin(...) + if a:0 > 0 + let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p')) + elseif exists('g:plug_home') + let home = s:path(g:plug_home) + elseif has('nvim') + let home = stdpath('data') . '/plugged' + elseif !empty(&rtp) + let home = s:path(split(&rtp, ',')[0]) . '/plugged' + else + return s:err('Unable to determine plug home. Try calling plug#begin() with a path argument.') + endif + if s:plug_fnamemodify(home, ':t') ==# 'plugin' && s:plug_fnamemodify(home, ':h') ==# s:first_rtp + return s:err('Invalid plug home. '.home.' is a standard Vim runtime path and is not allowed.') + endif + + let g:plug_home = home + let g:plugs = {} + let g:plugs_order = [] + let s:triggers = {} + + call s:define_commands() + return 1 +endfunction + +function! s:define_commands() + command! -nargs=+ -bar Plug call plug#() + if !executable('git') + return s:err('`git` executable not found. Most commands will not be available. To suppress this message, prepend `silent!` to `call plug#begin(...)`.') + endif + if has('win32') + \ && &shellslash + \ && (&shell =~# 'cmd\(\.exe\)\?$' || s:is_powershell(&shell)) + return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.') + endif + if !has('nvim') + \ && (has('win32') || has('win32unix')) + \ && !has('multi_byte') + return s:err('Vim needs +multi_byte feature on Windows to run shell commands. Enable +iconv for best results.') + endif + command! -nargs=* -bar -bang -complete=customlist,s:names PlugInstall call s:install(0, []) + command! -nargs=* -bar -bang -complete=customlist,s:names PlugUpdate call s:update(0, []) + command! -nargs=0 -bar -bang PlugClean call s:clean(0) + command! -nargs=0 -bar PlugUpgrade if s:upgrade() | execute 'source' s:esc(s:me) | endif + command! -nargs=0 -bar PlugStatus call s:status() + command! -nargs=0 -bar PlugDiff call s:diff() + command! -nargs=? -bar -bang -complete=file PlugSnapshot call s:snapshot(0, ) +endfunction + +function! s:to_a(v) + return type(a:v) == s:TYPE.list ? a:v : [a:v] +endfunction + +function! s:to_s(v) + return type(a:v) == s:TYPE.string ? a:v : join(a:v, "\n") . "\n" +endfunction + +function! s:glob(from, pattern) + return s:lines(globpath(a:from, a:pattern)) +endfunction + +function! s:source(from, ...) + let found = 0 + for pattern in a:000 + for vim in s:glob(a:from, pattern) + execute 'source' s:esc(vim) + let found = 1 + endfor + endfor + return found +endfunction + +function! s:assoc(dict, key, val) + let a:dict[a:key] = add(get(a:dict, a:key, []), a:val) +endfunction + +function! s:ask(message, ...) + call inputsave() + echohl WarningMsg + let answer = input(a:message.(a:0 ? ' (y/N/a) ' : ' (y/N) ')) + echohl None + call inputrestore() + echo "\r" + return (a:0 && answer =~? '^a') ? 2 : (answer =~? '^y') ? 1 : 0 +endfunction + +function! s:ask_no_interrupt(...) + try + return call('s:ask', a:000) + catch + return 0 + endtry +endfunction + +function! s:lazy(plug, opt) + return has_key(a:plug, a:opt) && + \ (empty(s:to_a(a:plug[a:opt])) || + \ !isdirectory(a:plug.dir) || + \ len(s:glob(s:rtp(a:plug), 'plugin')) || + \ len(s:glob(s:rtp(a:plug), 'after/plugin'))) +endfunction + +function! plug#end() + if !exists('g:plugs') + return s:err('plug#end() called without calling plug#begin() first') + endif + + if exists('#PlugLOD') + augroup PlugLOD + autocmd! + augroup END + augroup! PlugLOD + endif + let lod = { 'ft': {}, 'map': {}, 'cmd': {} } + + if get(g:, 'did_load_filetypes', 0) + filetype off + endif + for name in g:plugs_order + if !has_key(g:plugs, name) + continue + endif + let plug = g:plugs[name] + if get(s:loaded, name, 0) || !s:lazy(plug, 'on') && !s:lazy(plug, 'for') + let s:loaded[name] = 1 + continue + endif + + if has_key(plug, 'on') + let s:triggers[name] = { 'map': [], 'cmd': [] } + for cmd in s:to_a(plug.on) + if cmd =~? '^.\+' + if empty(mapcheck(cmd)) && empty(mapcheck(cmd, 'i')) + call s:assoc(lod.map, cmd, name) + endif + call add(s:triggers[name].map, cmd) + elseif cmd =~# '^[A-Z]' + let cmd = substitute(cmd, '!*$', '', '') + if exists(':'.cmd) != 2 + call s:assoc(lod.cmd, cmd, name) + endif + call add(s:triggers[name].cmd, cmd) + else + call s:err('Invalid `on` option: '.cmd. + \ '. Should start with an uppercase letter or ``.') + endif + endfor + endif + + if has_key(plug, 'for') + let types = s:to_a(plug.for) + if !empty(types) + augroup filetypedetect + call s:source(s:rtp(plug), 'ftdetect/**/*.vim', 'after/ftdetect/**/*.vim') + if has('nvim-0.5.0') + call s:source(s:rtp(plug), 'ftdetect/**/*.lua', 'after/ftdetect/**/*.lua') + endif + augroup END + endif + for type in types + call s:assoc(lod.ft, type, name) + endfor + endif + endfor + + for [cmd, names] in items(lod.cmd) + execute printf( + \ has('patch-7.4.1898') + \ ? 'command! -nargs=* -range -bang -complete=file %s call s:lod_cmd(%s, "", , , , ,%s)' + \ : 'command! -nargs=* -range -bang -complete=file %s call s:lod_cmd(%s, "", , , , %s)' + \ , cmd, string(cmd), string(names)) + endfor + + for [map, names] in items(lod.map) + for [mode, map_prefix, key_prefix] in + \ [['i', '', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']] + execute printf( + \ '%snoremap %s %s:call lod_map(%s, %s, %s, "%s")', + \ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix) + endfor + endfor + + for [ft, names] in items(lod.ft) + augroup PlugLOD + execute printf('autocmd FileType %s call lod_ft(%s, %s)', + \ ft, string(ft), string(names)) + augroup END + endfor + + call s:reorg_rtp() + filetype plugin indent on + if has('vim_starting') + if has('syntax') && !exists('g:syntax_on') + syntax enable + end + else + call s:reload_plugins() + endif +endfunction + +function! s:loaded_names() + return filter(copy(g:plugs_order), 'get(s:loaded, v:val, 0)') +endfunction + +function! s:load_plugin(spec) + call s:source(s:rtp(a:spec), 'plugin/**/*.vim', 'after/plugin/**/*.vim') + if has('nvim-0.5.0') + call s:source(s:rtp(a:spec), 'plugin/**/*.lua', 'after/plugin/**/*.lua') + endif +endfunction + +function! s:reload_plugins() + for name in s:loaded_names() + call s:load_plugin(g:plugs[name]) + endfor +endfunction + +function! s:trim(str) + return substitute(a:str, '[\/]\+$', '', '') +endfunction + +function! s:version_requirement(val, min) + for idx in range(0, len(a:min) - 1) + let v = get(a:val, idx, 0) + if v < a:min[idx] | return 0 + elseif v > a:min[idx] | return 1 + endif + endfor + return 1 +endfunction + +function! s:git_version_requirement(...) + if !exists('s:git_version') + let s:git_version = map(split(split(s:system(['git', '--version']))[2], '\.'), 'str2nr(v:val)') + endif + return s:version_requirement(s:git_version, a:000) +endfunction + +function! s:progress_opt(base) + return a:base && !s:is_win && + \ s:git_version_requirement(1, 7, 1) ? '--progress' : '' +endfunction + +function! s:rtp(spec) + return s:path(a:spec.dir . get(a:spec, 'rtp', '')) +endfunction + +if s:is_win + function! s:path(path) + return s:trim(substitute(a:path, '/', '\', 'g')) + endfunction + + function! s:dirpath(path) + return s:path(a:path) . '\' + endfunction + + function! s:is_local_plug(repo) + return a:repo =~? '^[a-z]:\|^[%~]' + endfunction + + " Copied from fzf + function! s:wrap_cmds(cmds) + let cmds = [ + \ '@echo off', + \ 'setlocal enabledelayedexpansion'] + \ + (type(a:cmds) == type([]) ? a:cmds : [a:cmds]) + \ + ['endlocal'] + if has('iconv') + if !exists('s:codepage') + let s:codepage = libcallnr('kernel32.dll', 'GetACP', 0) + endif + return map(cmds, printf('iconv(v:val."\r", "%s", "cp%d")', &encoding, s:codepage)) + endif + return map(cmds, 'v:val."\r"') + endfunction + + function! s:batchfile(cmd) + let batchfile = s:plug_tempname().'.bat' + call writefile(s:wrap_cmds(a:cmd), batchfile) + let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0}) + if s:is_powershell(&shell) + let cmd = '& ' . cmd + endif + return [batchfile, cmd] + endfunction +else + function! s:path(path) + return s:trim(a:path) + endfunction + + function! s:dirpath(path) + return substitute(a:path, '[/\\]*$', '/', '') + endfunction + + function! s:is_local_plug(repo) + return a:repo[0] =~ '[/$~]' + endfunction +endif + +function! s:err(msg) + echohl ErrorMsg + echom '[vim-plug] '.a:msg + echohl None +endfunction + +function! s:warn(cmd, msg) + echohl WarningMsg + execute a:cmd 'a:msg' + echohl None +endfunction + +function! s:esc(path) + return escape(a:path, ' ') +endfunction + +function! s:escrtp(path) + return escape(a:path, ' ,') +endfunction + +function! s:remove_rtp() + for name in s:loaded_names() + let rtp = s:rtp(g:plugs[name]) + execute 'set rtp-='.s:escrtp(rtp) + let after = globpath(rtp, 'after') + if isdirectory(after) + execute 'set rtp-='.s:escrtp(after) + endif + endfor +endfunction + +function! s:reorg_rtp() + if !empty(s:first_rtp) + execute 'set rtp-='.s:first_rtp + execute 'set rtp-='.s:last_rtp + endif + + " &rtp is modified from outside + if exists('s:prtp') && s:prtp !=# &rtp + call s:remove_rtp() + unlet! s:middle + endif + + let s:middle = get(s:, 'middle', &rtp) + let rtps = map(s:loaded_names(), 's:rtp(g:plugs[v:val])') + let afters = filter(map(copy(rtps), 'globpath(v:val, "after")'), '!empty(v:val)') + let rtp = join(map(rtps, 'escape(v:val, ",")'), ',') + \ . ','.s:middle.',' + \ . join(map(afters, 'escape(v:val, ",")'), ',') + let &rtp = substitute(substitute(rtp, ',,*', ',', 'g'), '^,\|,$', '', 'g') + let s:prtp = &rtp + + if !empty(s:first_rtp) + execute 'set rtp^='.s:first_rtp + execute 'set rtp+='.s:last_rtp + endif +endfunction + +function! s:doautocmd(...) + if exists('#'.join(a:000, '#')) + execute 'doautocmd' ((v:version > 703 || has('patch442')) ? '' : '') join(a:000) + endif +endfunction + +function! s:dobufread(names) + for name in a:names + let path = s:rtp(g:plugs[name]) + for dir in ['ftdetect', 'ftplugin', 'after/ftdetect', 'after/ftplugin'] + if len(finddir(dir, path)) + if exists('#BufRead') + doautocmd BufRead + endif + return + endif + endfor + endfor +endfunction + +function! plug#load(...) + if a:0 == 0 + return s:err('Argument missing: plugin name(s) required') + endif + if !exists('g:plugs') + return s:err('plug#begin was not called') + endif + let names = a:0 == 1 && type(a:1) == s:TYPE.list ? a:1 : a:000 + let unknowns = filter(copy(names), '!has_key(g:plugs, v:val)') + if !empty(unknowns) + let s = len(unknowns) > 1 ? 's' : '' + return s:err(printf('Unknown plugin%s: %s', s, join(unknowns, ', '))) + end + let unloaded = filter(copy(names), '!get(s:loaded, v:val, 0)') + if !empty(unloaded) + for name in unloaded + call s:lod([name], ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + endfor + call s:dobufread(unloaded) + return 1 + end + return 0 +endfunction + +function! s:remove_triggers(name) + if !has_key(s:triggers, a:name) + return + endif + for cmd in s:triggers[a:name].cmd + execute 'silent! delc' cmd + endfor + for map in s:triggers[a:name].map + execute 'silent! unmap' map + execute 'silent! iunmap' map + endfor + call remove(s:triggers, a:name) +endfunction + +function! s:lod(names, types, ...) + for name in a:names + call s:remove_triggers(name) + let s:loaded[name] = 1 + endfor + call s:reorg_rtp() + + for name in a:names + let rtp = s:rtp(g:plugs[name]) + for dir in a:types + call s:source(rtp, dir.'/**/*.vim') + if has('nvim-0.5.0') " see neovim#14686 + call s:source(rtp, dir.'/**/*.lua') + endif + endfor + if a:0 + if !s:source(rtp, a:1) && !empty(s:glob(rtp, a:2)) + execute 'runtime' a:1 + endif + call s:source(rtp, a:2) + endif + call s:doautocmd('User', name) + endfor +endfunction + +function! s:lod_ft(pat, names) + let syn = 'syntax/'.a:pat.'.vim' + call s:lod(a:names, ['plugin', 'after/plugin'], syn, 'after/'.syn) + execute 'autocmd! PlugLOD FileType' a:pat + call s:doautocmd('filetypeplugin', 'FileType') + call s:doautocmd('filetypeindent', 'FileType') +endfunction + +if has('patch-7.4.1898') + function! s:lod_cmd(cmd, bang, l1, l2, args, mods, names) + call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + call s:dobufread(a:names) + execute printf('%s %s%s%s %s', a:mods, (a:l1 == a:l2 ? '' : (a:l1.','.a:l2)), a:cmd, a:bang, a:args) + endfunction +else + function! s:lod_cmd(cmd, bang, l1, l2, args, names) + call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + call s:dobufread(a:names) + execute printf('%s%s%s %s', (a:l1 == a:l2 ? '' : (a:l1.','.a:l2)), a:cmd, a:bang, a:args) + endfunction +endif + +function! s:lod_map(map, names, with_prefix, prefix) + call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + call s:dobufread(a:names) + let extra = '' + while 1 + let c = getchar(0) + if c == 0 + break + endif + let extra .= nr2char(c) + endwhile + + if a:with_prefix + let prefix = v:count ? v:count : '' + let prefix .= '"'.v:register.a:prefix + if mode(1) == 'no' + if v:operator == 'c' + let prefix = "\" . prefix + endif + let prefix .= v:operator + endif + call feedkeys(prefix, 'n') + endif + call feedkeys(substitute(a:map, '^', "\", '') . extra) +endfunction + +function! plug#(repo, ...) + if a:0 > 1 + return s:err('Invalid number of arguments (1..2)') + endif + + try + let repo = s:trim(a:repo) + let opts = a:0 == 1 ? s:parse_options(a:1) : s:base_spec + let name = get(opts, 'as', s:plug_fnamemodify(repo, ':t:s?\.git$??')) + let spec = extend(s:infer_properties(name, repo), opts) + if !has_key(g:plugs, name) + call add(g:plugs_order, name) + endif + let g:plugs[name] = spec + let s:loaded[name] = get(s:loaded, name, 0) + catch + return s:err(repo . ' ' . v:exception) + endtry +endfunction + +function! s:parse_options(arg) + let opts = copy(s:base_spec) + let type = type(a:arg) + let opt_errfmt = 'Invalid argument for "%s" option of :Plug (expected: %s)' + if type == s:TYPE.string + if empty(a:arg) + throw printf(opt_errfmt, 'tag', 'string') + endif + let opts.tag = a:arg + elseif type == s:TYPE.dict + for opt in ['branch', 'tag', 'commit', 'rtp', 'dir', 'as'] + if has_key(a:arg, opt) + \ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt])) + throw printf(opt_errfmt, opt, 'string') + endif + endfor + for opt in ['on', 'for'] + if has_key(a:arg, opt) + \ && type(a:arg[opt]) != s:TYPE.list + \ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt])) + throw printf(opt_errfmt, opt, 'string or list') + endif + endfor + if has_key(a:arg, 'do') + \ && type(a:arg.do) != s:TYPE.funcref + \ && (type(a:arg.do) != s:TYPE.string || empty(a:arg.do)) + throw printf(opt_errfmt, 'do', 'string or funcref') + endif + call extend(opts, a:arg) + if has_key(opts, 'dir') + let opts.dir = s:dirpath(s:plug_expand(opts.dir)) + endif + else + throw 'Invalid argument type (expected: string or dictionary)' + endif + return opts +endfunction + +function! s:infer_properties(name, repo) + let repo = a:repo + if s:is_local_plug(repo) + return { 'dir': s:dirpath(s:plug_expand(repo)) } + else + if repo =~ ':' + let uri = repo + else + if repo !~ '/' + throw printf('Invalid argument: %s (implicit `vim-scripts'' expansion is deprecated)', repo) + endif + let fmt = get(g:, 'plug_url_format', 'https://git::@github.com/%s.git') + let uri = printf(fmt, repo) + endif + return { 'dir': s:dirpath(g:plug_home.'/'.a:name), 'uri': uri } + endif +endfunction + +function! s:install(force, names) + call s:update_impl(0, a:force, a:names) +endfunction + +function! s:update(force, names) + call s:update_impl(1, a:force, a:names) +endfunction + +function! plug#helptags() + if !exists('g:plugs') + return s:err('plug#begin was not called') + endif + for spec in values(g:plugs) + let docd = join([s:rtp(spec), 'doc'], '/') + if isdirectory(docd) + silent! execute 'helptags' s:esc(docd) + endif + endfor + return 1 +endfunction + +function! s:syntax() + syntax clear + syntax region plug1 start=/\%1l/ end=/\%2l/ contains=plugNumber + syntax region plug2 start=/\%2l/ end=/\%3l/ contains=plugBracket,plugX,plugAbort + syn match plugNumber /[0-9]\+[0-9.]*/ contained + syn match plugBracket /[[\]]/ contained + syn match plugX /x/ contained + syn match plugAbort /\~/ contained + syn match plugDash /^-\{1}\ / + syn match plugPlus /^+/ + syn match plugStar /^*/ + syn match plugMessage /\(^- \)\@<=.*/ + syn match plugName /\(^- \)\@<=[^ ]*:/ + syn match plugSha /\%(: \)\@<=[0-9a-f]\{4,}$/ + syn match plugTag /(tag: [^)]\+)/ + syn match plugInstall /\(^+ \)\@<=[^:]*/ + syn match plugUpdate /\(^* \)\@<=[^:]*/ + syn match plugCommit /^ \X*[0-9a-f]\{7,9} .*/ contains=plugRelDate,plugEdge,plugTag + syn match plugEdge /^ \X\+$/ + syn match plugEdge /^ \X*/ contained nextgroup=plugSha + syn match plugSha /[0-9a-f]\{7,9}/ contained + syn match plugRelDate /([^)]*)$/ contained + syn match plugNotLoaded /(not loaded)$/ + syn match plugError /^x.*/ + syn region plugDeleted start=/^\~ .*/ end=/^\ze\S/ + syn match plugH2 /^.*:\n-\+$/ + syn match plugH2 /^-\{2,}/ + syn keyword Function PlugInstall PlugStatus PlugUpdate PlugClean + hi def link plug1 Title + hi def link plug2 Repeat + hi def link plugH2 Type + hi def link plugX Exception + hi def link plugAbort Ignore + hi def link plugBracket Structure + hi def link plugNumber Number + + hi def link plugDash Special + hi def link plugPlus Constant + hi def link plugStar Boolean + + hi def link plugMessage Function + hi def link plugName Label + hi def link plugInstall Function + hi def link plugUpdate Type + + hi def link plugError Error + hi def link plugDeleted Ignore + hi def link plugRelDate Comment + hi def link plugEdge PreProc + hi def link plugSha Identifier + hi def link plugTag Constant + + hi def link plugNotLoaded Comment +endfunction + +function! s:lpad(str, len) + return a:str . repeat(' ', a:len - len(a:str)) +endfunction + +function! s:lines(msg) + return split(a:msg, "[\r\n]") +endfunction + +function! s:lastline(msg) + return get(s:lines(a:msg), -1, '') +endfunction + +function! s:new_window() + execute get(g:, 'plug_window', '-tabnew') +endfunction + +function! s:plug_window_exists() + let buflist = tabpagebuflist(s:plug_tab) + return !empty(buflist) && index(buflist, s:plug_buf) >= 0 +endfunction + +function! s:switch_in() + if !s:plug_window_exists() + return 0 + endif + + if winbufnr(0) != s:plug_buf + let s:pos = [tabpagenr(), winnr(), winsaveview()] + execute 'normal!' s:plug_tab.'gt' + let winnr = bufwinnr(s:plug_buf) + execute winnr.'wincmd w' + call add(s:pos, winsaveview()) + else + let s:pos = [winsaveview()] + endif + + setlocal modifiable + return 1 +endfunction + +function! s:switch_out(...) + call winrestview(s:pos[-1]) + setlocal nomodifiable + if a:0 > 0 + execute a:1 + endif + + if len(s:pos) > 1 + execute 'normal!' s:pos[0].'gt' + execute s:pos[1] 'wincmd w' + call winrestview(s:pos[2]) + endif +endfunction + +function! s:finish_bindings() + nnoremap R :call retry() + nnoremap D :PlugDiff + nnoremap S :PlugStatus + nnoremap U :call status_update() + xnoremap U :call status_update() + nnoremap ]] :silent! call section('') + nnoremap [[ :silent! call section('b') +endfunction + +function! s:prepare(...) + if empty(s:plug_getcwd()) + throw 'Invalid current working directory. Cannot proceed.' + endif + + for evar in ['$GIT_DIR', '$GIT_WORK_TREE'] + if exists(evar) + throw evar.' detected. Cannot proceed.' + endif + endfor + + call s:job_abort(0) + if s:switch_in() + if b:plug_preview == 1 + pc + endif + enew + else + call s:new_window() + endif + + nnoremap q :call close_pane() + if a:0 == 0 + call s:finish_bindings() + endif + let b:plug_preview = -1 + let s:plug_tab = tabpagenr() + let s:plug_buf = winbufnr(0) + call s:assign_name() + + for k in ['', 'L', 'o', 'X', 'd', 'dd'] + execute 'silent! unmap ' k + endfor + setlocal buftype=nofile bufhidden=wipe nobuflisted nolist noswapfile nowrap cursorline modifiable nospell + if exists('+colorcolumn') + setlocal colorcolumn= + endif + setf vim-plug + if exists('g:syntax_on') + call s:syntax() + endif +endfunction + +function! s:close_pane() + if b:plug_preview == 1 + pc + let b:plug_preview = -1 + elseif exists('s:jobs') && !empty(s:jobs) + call s:job_abort(1) + else + bd + endif +endfunction + +function! s:assign_name() + " Assign buffer name + let prefix = '[Plugins]' + let name = prefix + let idx = 2 + while bufexists(name) + let name = printf('%s (%s)', prefix, idx) + let idx = idx + 1 + endwhile + silent! execute 'f' fnameescape(name) +endfunction + +function! s:chsh(swap) + let prev = [&shell, &shellcmdflag, &shellredir] + if !s:is_win + set shell=sh + endif + if a:swap + if s:is_powershell(&shell) + let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s' + elseif &shell =~# 'sh' || &shell =~# 'cmd\(\.exe\)\?$' + set shellredir=>%s\ 2>&1 + endif + endif + return prev +endfunction + +function! s:bang(cmd, ...) + let batchfile = '' + try + let [sh, shellcmdflag, shrd] = s:chsh(a:0) + " FIXME: Escaping is incomplete. We could use shellescape with eval, + " but it won't work on Windows. + let cmd = a:0 ? s:with_cd(a:cmd, a:1) : a:cmd + if s:is_win + let [batchfile, cmd] = s:batchfile(cmd) + endif + let g:_plug_bang = (s:is_win && has('gui_running') ? 'silent ' : '').'!'.escape(cmd, '#!%') + execute "normal! :execute g:_plug_bang\\" + finally + unlet g:_plug_bang + let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] + if s:is_win && filereadable(batchfile) + call delete(batchfile) + endif + endtry + return v:shell_error ? 'Exit status: ' . v:shell_error : '' +endfunction + +function! s:regress_bar() + let bar = substitute(getline(2)[1:-2], '.*\zs=', 'x', '') + call s:progress_bar(2, bar, len(bar)) +endfunction + +function! s:is_updated(dir) + return !empty(s:system_chomp(['git', 'log', '--pretty=format:%h', 'HEAD...HEAD@{1}'], a:dir)) +endfunction + +function! s:do(pull, force, todo) + if has('nvim') + " Reset &rtp to invalidate Neovim cache of loaded Lua modules + " See https://github.com/junegunn/vim-plug/pull/1157#issuecomment-1809226110 + let &rtp = &rtp + endif + for [name, spec] in items(a:todo) + if !isdirectory(spec.dir) + continue + endif + let installed = has_key(s:update.new, name) + let updated = installed ? 0 : + \ (a:pull && index(s:update.errors, name) < 0 && s:is_updated(spec.dir)) + if a:force || installed || updated + execute 'cd' s:esc(spec.dir) + call append(3, '- Post-update hook for '. name .' ... ') + let error = '' + let type = type(spec.do) + if type == s:TYPE.string + if spec.do[0] == ':' + if !get(s:loaded, name, 0) + let s:loaded[name] = 1 + call s:reorg_rtp() + endif + call s:load_plugin(spec) + try + execute spec.do[1:] + catch + let error = v:exception + endtry + if !s:plug_window_exists() + cd - + throw 'Warning: vim-plug was terminated by the post-update hook of '.name + endif + else + let error = s:bang(spec.do) + endif + elseif type == s:TYPE.funcref + try + call s:load_plugin(spec) + let status = installed ? 'installed' : (updated ? 'updated' : 'unchanged') + call spec.do({ 'name': name, 'status': status, 'force': a:force }) + catch + let error = v:exception + endtry + else + let error = 'Invalid hook type' + endif + call s:switch_in() + call setline(4, empty(error) ? (getline(4) . 'OK') + \ : ('x' . getline(4)[1:] . error)) + if !empty(error) + call add(s:update.errors, name) + call s:regress_bar() + endif + cd - + endif + endfor +endfunction + +function! s:hash_match(a, b) + return stridx(a:a, a:b) == 0 || stridx(a:b, a:a) == 0 +endfunction + +function! s:disable_credential_helper() + return s:git_version_requirement(2) && get(g:, 'plug_disable_credential_helper', 1) +endfunction + +function! s:checkout(spec) + let sha = a:spec.commit + let output = s:git_revision(a:spec.dir) + let error = 0 + if !empty(output) && !s:hash_match(sha, s:lines(output)[0]) + let credential_helper = s:disable_credential_helper() ? '-c credential.helper= ' : '' + let output = s:system( + \ 'git '.credential_helper.'fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir) + let error = v:shell_error + endif + return [output, error] +endfunction + +function! s:finish(pull) + let new_frozen = len(filter(keys(s:update.new), 'g:plugs[v:val].frozen')) + if new_frozen + let s = new_frozen > 1 ? 's' : '' + call append(3, printf('- Installed %d frozen plugin%s', new_frozen, s)) + endif + call append(3, '- Finishing ... ') | 4 + redraw + call plug#helptags() + call plug#end() + call setline(4, getline(4) . 'Done!') + redraw + let msgs = [] + if !empty(s:update.errors) + call add(msgs, "Press 'R' to retry.") + endif + if a:pull && len(s:update.new) < len(filter(getline(5, '$'), + \ "v:val =~ '^- ' && v:val !~# 'Already up.to.date'")) + call add(msgs, "Press 'D' to see the updated changes.") + endif + echo join(msgs, ' ') + call s:finish_bindings() +endfunction + +function! s:retry() + if empty(s:update.errors) + return + endif + echo + call s:update_impl(s:update.pull, s:update.force, + \ extend(copy(s:update.errors), [s:update.threads])) +endfunction + +function! s:is_managed(name) + return has_key(g:plugs[a:name], 'uri') +endfunction + +function! s:names(...) + return sort(filter(keys(g:plugs), 'stridx(v:val, a:1) == 0 && s:is_managed(v:val)')) +endfunction + +function! s:check_ruby() + silent! ruby require 'thread'; VIM::command("let g:plug_ruby = '#{RUBY_VERSION}'") + if !exists('g:plug_ruby') + redraw! + return s:warn('echom', 'Warning: Ruby interface is broken') + endif + let ruby_version = split(g:plug_ruby, '\.') + unlet g:plug_ruby + return s:version_requirement(ruby_version, [1, 8, 7]) +endfunction + +function! s:update_impl(pull, force, args) abort + let sync = index(a:args, '--sync') >= 0 || has('vim_starting') + let args = filter(copy(a:args), 'v:val != "--sync"') + let threads = (len(args) > 0 && args[-1] =~ '^[1-9][0-9]*$') ? + \ remove(args, -1) : get(g:, 'plug_threads', 16) + + let managed = filter(deepcopy(g:plugs), 's:is_managed(v:key)') + let todo = empty(args) ? filter(managed, '!v:val.frozen || !isdirectory(v:val.dir)') : + \ filter(managed, 'index(args, v:key) >= 0') + + if empty(todo) + return s:warn('echo', 'No plugin to '. (a:pull ? 'update' : 'install')) + endif + + if !s:is_win && s:git_version_requirement(2, 3) + let s:git_terminal_prompt = exists('$GIT_TERMINAL_PROMPT') ? $GIT_TERMINAL_PROMPT : '' + let $GIT_TERMINAL_PROMPT = 0 + for plug in values(todo) + let plug.uri = substitute(plug.uri, + \ '^https://git::@github\.com', 'https://github.com', '') + endfor + endif + + if !isdirectory(g:plug_home) + try + call mkdir(g:plug_home, 'p') + catch + return s:err(printf('Invalid plug directory: %s. '. + \ 'Try to call plug#begin with a valid directory', g:plug_home)) + endtry + endif + + if has('nvim') && !exists('*jobwait') && threads > 1 + call s:warn('echom', '[vim-plug] Update Neovim for parallel installer') + endif + + let use_job = s:nvim || s:vim8 + let python = (has('python') || has('python3')) && !use_job + let ruby = has('ruby') && !use_job && (v:version >= 703 || v:version == 702 && has('patch374')) && !(s:is_win && has('gui_running')) && threads > 1 && s:check_ruby() + + let s:update = { + \ 'start': reltime(), + \ 'all': todo, + \ 'todo': copy(todo), + \ 'errors': [], + \ 'pull': a:pull, + \ 'force': a:force, + \ 'new': {}, + \ 'threads': (python || ruby || use_job) ? min([len(todo), threads]) : 1, + \ 'bar': '', + \ 'fin': 0 + \ } + + call s:prepare(1) + call append(0, ['', '']) + normal! 2G + silent! redraw + + " Set remote name, overriding a possible user git config's clone.defaultRemoteName + let s:clone_opt = ['--origin', 'origin'] + if get(g:, 'plug_shallow', 1) + call extend(s:clone_opt, ['--depth', '1']) + if s:git_version_requirement(1, 7, 10) + call add(s:clone_opt, '--no-single-branch') + endif + endif + + if has('win32unix') || has('wsl') + call extend(s:clone_opt, ['-c', 'core.eol=lf', '-c', 'core.autocrlf=input']) + endif + + let s:submodule_opt = s:git_version_requirement(2, 8) ? ' --jobs='.threads : '' + + " Python version requirement (>= 2.7) + if python && !has('python3') && !ruby && !use_job && s:update.threads > 1 + redir => pyv + silent python import platform; print platform.python_version() + redir END + let python = s:version_requirement( + \ map(split(split(pyv)[0], '\.'), 'str2nr(v:val)'), [2, 6]) + endif + + if (python || ruby) && s:update.threads > 1 + try + let imd = &imd + if s:mac_gui + set noimd + endif + if ruby + call s:update_ruby() + else + call s:update_python() + endif + catch + let lines = getline(4, '$') + let printed = {} + silent! 4,$d _ + for line in lines + let name = s:extract_name(line, '.', '') + if empty(name) || !has_key(printed, name) + call append('$', line) + if !empty(name) + let printed[name] = 1 + if line[0] == 'x' && index(s:update.errors, name) < 0 + call add(s:update.errors, name) + end + endif + endif + endfor + finally + let &imd = imd + call s:update_finish() + endtry + else + call s:update_vim() + while use_job && sync + sleep 100m + if s:update.fin + break + endif + endwhile + endif +endfunction + +function! s:log4(name, msg) + call setline(4, printf('- %s (%s)', a:msg, a:name)) + redraw +endfunction + +function! s:update_finish() + if exists('s:git_terminal_prompt') + let $GIT_TERMINAL_PROMPT = s:git_terminal_prompt + endif + if s:switch_in() + call append(3, '- Updating ...') | 4 + for [name, spec] in items(filter(copy(s:update.all), 'index(s:update.errors, v:key) < 0 && (s:update.force || s:update.pull || has_key(s:update.new, v:key))')) + let [pos, _] = s:logpos(name) + if !pos + continue + endif + let out = '' + let error = 0 + if has_key(spec, 'commit') + call s:log4(name, 'Checking out '.spec.commit) + let [out, error] = s:checkout(spec) + elseif has_key(spec, 'tag') + let tag = spec.tag + if tag =~ '\*' + let tags = s:lines(s:system('git tag --list '.plug#shellescape(tag).' --sort -version:refname 2>&1', spec.dir)) + if !v:shell_error && !empty(tags) + let tag = tags[0] + call s:log4(name, printf('Latest tag for %s -> %s', spec.tag, tag)) + call append(3, '') + endif + endif + call s:log4(name, 'Checking out '.tag) + let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir) + let error = v:shell_error + endif + if !error && filereadable(spec.dir.'/.gitmodules') && + \ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir)) + call s:log4(name, 'Updating submodules. This may take a while.') + let out .= s:bang('git submodule update --init --recursive'.s:submodule_opt.' 2>&1', spec.dir) + let error = v:shell_error + endif + let msg = s:format_message(v:shell_error ? 'x': '-', name, out) + if error + call add(s:update.errors, name) + call s:regress_bar() + silent execute pos 'd _' + call append(4, msg) | 4 + elseif !empty(out) + call setline(pos, msg[0]) + endif + redraw + endfor + silent 4 d _ + try + call s:do(s:update.pull, s:update.force, filter(copy(s:update.all), 'index(s:update.errors, v:key) < 0 && has_key(v:val, "do")')) + catch + call s:warn('echom', v:exception) + call s:warn('echo', '') + return + endtry + call s:finish(s:update.pull) + call setline(1, 'Updated. Elapsed time: ' . split(reltimestr(reltime(s:update.start)))[0] . ' sec.') + call s:switch_out('normal! gg') + endif +endfunction + +function! s:mark_aborted(name, message) + let attrs = { 'running': 0, 'error': 1, 'abort': 1, 'lines': [a:message] } + let s:jobs[a:name] = extend(get(s:jobs, a:name, {}), attrs) +endfunction + +function! s:job_abort(cancel) + if (!s:nvim && !s:vim8) || !exists('s:jobs') + return + endif + + for [name, j] in items(s:jobs) + if s:nvim + silent! call jobstop(j.jobid) + elseif s:vim8 + silent! call job_stop(j.jobid) + endif + if j.new + call s:rm_rf(g:plugs[name].dir) + endif + if a:cancel + call s:mark_aborted(name, 'Aborted') + endif + endfor + + if a:cancel + for todo in values(s:update.todo) + let todo.abort = 1 + endfor + else + let s:jobs = {} + endif +endfunction + +function! s:last_non_empty_line(lines) + let len = len(a:lines) + for idx in range(len) + let line = a:lines[len-idx-1] + if !empty(line) + return line + endif + endfor + return '' +endfunction + +function! s:bullet_for(job, ...) + if a:job.running + return a:job.new ? '+' : '*' + endif + if get(a:job, 'abort', 0) + return '~' + endif + return a:job.error ? 'x' : get(a:000, 0, '-') +endfunction + +function! s:job_out_cb(self, data) abort + let self = a:self + let data = remove(self.lines, -1) . a:data + let lines = map(split(data, "\n", 1), 'split(v:val, "\r", 1)[-1]') + call extend(self.lines, lines) + " To reduce the number of buffer updates + let self.tick = get(self, 'tick', -1) + 1 + if !self.running || self.tick % len(s:jobs) == 0 + let result = self.error ? join(self.lines, "\n") : s:last_non_empty_line(self.lines) + if len(result) + call s:log(s:bullet_for(self), self.name, result) + endif + endif +endfunction + +function! s:job_exit_cb(self, data) abort + let a:self.running = 0 + let a:self.error = a:data != 0 + call s:reap(a:self.name) + call s:tick() +endfunction + +function! s:job_cb(fn, job, ch, data) + if !s:plug_window_exists() " plug window closed + return s:job_abort(0) + endif + call call(a:fn, [a:job, a:data]) +endfunction + +function! s:nvim_cb(job_id, data, event) dict abort + return (a:event == 'stdout' || a:event == 'stderr') ? + \ s:job_cb('s:job_out_cb', self, 0, join(a:data, "\n")) : + \ s:job_cb('s:job_exit_cb', self, 0, a:data) +endfunction + +function! s:spawn(name, spec, queue, opts) + let job = { 'name': a:name, 'spec': a:spec, 'running': 1, 'error': 0, 'lines': [''], + \ 'new': get(a:opts, 'new', 0), 'queue': copy(a:queue) } + let Item = remove(job.queue, 0) + let argv = type(Item) == s:TYPE.funcref ? call(Item, [a:spec]) : Item + let s:jobs[a:name] = job + + if s:nvim + if has_key(a:opts, 'dir') + let job.cwd = a:opts.dir + endif + call extend(job, { + \ 'on_stdout': function('s:nvim_cb'), + \ 'on_stderr': function('s:nvim_cb'), + \ 'on_exit': function('s:nvim_cb'), + \ }) + let jid = s:plug_call('jobstart', argv, job) + if jid > 0 + let job.jobid = jid + else + let job.running = 0 + let job.error = 1 + let job.lines = [jid < 0 ? argv[0].' is not executable' : + \ 'Invalid arguments (or job table is full)'] + endif + elseif s:vim8 + let cmd = join(map(copy(argv), 'plug#shellescape(v:val, {"script": 0})')) + if has_key(a:opts, 'dir') + let cmd = s:with_cd(cmd, a:opts.dir, 0) + endif + let argv = s:is_win ? ['cmd', '/s', '/c', '"'.cmd.'"'] : ['sh', '-c', cmd] + let jid = job_start(s:is_win ? join(argv, ' ') : argv, { + \ 'out_cb': function('s:job_cb', ['s:job_out_cb', job]), + \ 'err_cb': function('s:job_cb', ['s:job_out_cb', job]), + \ 'exit_cb': function('s:job_cb', ['s:job_exit_cb', job]), + \ 'err_mode': 'raw', + \ 'out_mode': 'raw' + \}) + if job_status(jid) == 'run' + let job.jobid = jid + else + let job.running = 0 + let job.error = 1 + let job.lines = ['Failed to start job'] + endif + else + let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [argv, a:opts.dir] : [argv])) + let job.error = v:shell_error != 0 + let job.running = 0 + endif +endfunction + +function! s:reap(name) + let job = remove(s:jobs, a:name) + if job.error + call add(s:update.errors, a:name) + elseif get(job, 'new', 0) + let s:update.new[a:name] = 1 + endif + + let more = len(get(job, 'queue', [])) + let result = job.error ? join(job.lines, "\n") : s:last_non_empty_line(job.lines) + if len(result) + call s:log(s:bullet_for(job), a:name, result) + endif + + if !job.error && more + let job.spec.queue = job.queue + let s:update.todo[a:name] = job.spec + else + let s:update.bar .= s:bullet_for(job, '=') + call s:bar() + endif +endfunction + +function! s:bar() + if s:switch_in() + let total = len(s:update.all) + call setline(1, (s:update.pull ? 'Updating' : 'Installing'). + \ ' plugins ('.len(s:update.bar).'/'.total.')') + call s:progress_bar(2, s:update.bar, total) + call s:switch_out() + endif +endfunction + +function! s:logpos(name) + let max = line('$') + for i in range(4, max > 4 ? max : 4) + if getline(i) =~# '^[-+x*] '.a:name.':' + for j in range(i + 1, max > 5 ? max : 5) + if getline(j) !~ '^ ' + return [i, j - 1] + endif + endfor + return [i, i] + endif + endfor + return [0, 0] +endfunction + +function! s:log(bullet, name, lines) + if s:switch_in() + let [b, e] = s:logpos(a:name) + if b > 0 + silent execute printf('%d,%d d _', b, e) + if b > winheight('.') + let b = 4 + endif + else + let b = 4 + endif + " FIXME For some reason, nomodifiable is set after :d in vim8 + setlocal modifiable + call append(b - 1, s:format_message(a:bullet, a:name, a:lines)) + call s:switch_out() + endif +endfunction + +function! s:update_vim() + let s:jobs = {} + + call s:bar() + call s:tick() +endfunction + +function! s:checkout_command(spec) + let a:spec.branch = s:git_origin_branch(a:spec) + return ['git', 'checkout', '-q', a:spec.branch, '--'] +endfunction + +function! s:merge_command(spec) + let a:spec.branch = s:git_origin_branch(a:spec) + return ['git', 'merge', '--ff-only', 'origin/'.a:spec.branch] +endfunction + +function! s:tick() + let pull = s:update.pull + let prog = s:progress_opt(s:nvim || s:vim8) +while 1 " Without TCO, Vim stack is bound to explode + if empty(s:update.todo) + if empty(s:jobs) && !s:update.fin + call s:update_finish() + let s:update.fin = 1 + endif + return + endif + + let name = keys(s:update.todo)[0] + let spec = remove(s:update.todo, name) + if get(spec, 'abort', 0) + call s:mark_aborted(name, 'Skipped') + call s:reap(name) + continue + endif + + let queue = get(spec, 'queue', []) + let new = empty(globpath(spec.dir, '.git', 1)) + + if empty(queue) + call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...') + redraw + endif + + let has_tag = has_key(spec, 'tag') + if len(queue) + call s:spawn(name, spec, queue, { 'dir': spec.dir }) + elseif !new + let [error, _] = s:git_validate(spec, 0) + if empty(error) + if pull + let cmd = s:disable_credential_helper() ? ['git', '-c', 'credential.helper=', 'fetch'] : ['git', 'fetch'] + if has_tag && !empty(globpath(spec.dir, '.git/shallow')) + call extend(cmd, ['--depth', '99999999']) + endif + if !empty(prog) + call add(cmd, prog) + endif + let queue = [cmd, split('git remote set-head origin -a')] + if !has_tag && !has_key(spec, 'commit') + call extend(queue, [function('s:checkout_command'), function('s:merge_command')]) + endif + call s:spawn(name, spec, queue, { 'dir': spec.dir }) + else + let s:jobs[name] = { 'running': 0, 'lines': ['Already installed'], 'error': 0 } + endif + else + let s:jobs[name] = { 'running': 0, 'lines': s:lines(error), 'error': 1 } + endif + else + let cmd = ['git', 'clone'] + if !has_tag + call extend(cmd, s:clone_opt) + endif + if !empty(prog) + call add(cmd, prog) + endif + call s:spawn(name, spec, [extend(cmd, [spec.uri, s:trim(spec.dir)]), function('s:checkout_command'), function('s:merge_command')], { 'new': 1 }) + endif + + if !s:jobs[name].running + call s:reap(name) + endif + if len(s:jobs) >= s:update.threads + break + endif +endwhile +endfunction + +function! s:update_python() +let py_exe = has('python') ? 'python' : 'python3' +execute py_exe "<< EOF" +import datetime +import functools +import os +try: + import queue +except ImportError: + import Queue as queue +import random +import re +import shutil +import signal +import subprocess +import tempfile +import threading as thr +import time +import traceback +import vim + +G_NVIM = vim.eval("has('nvim')") == '1' +G_PULL = vim.eval('s:update.pull') == '1' +G_RETRIES = int(vim.eval('get(g:, "plug_retries", 2)')) + 1 +G_TIMEOUT = int(vim.eval('get(g:, "plug_timeout", 60)')) +G_CLONE_OPT = ' '.join(vim.eval('s:clone_opt')) +G_PROGRESS = vim.eval('s:progress_opt(1)') +G_LOG_PROB = 1.0 / int(vim.eval('s:update.threads')) +G_STOP = thr.Event() +G_IS_WIN = vim.eval('s:is_win') == '1' + +class PlugError(Exception): + def __init__(self, msg): + self.msg = msg +class CmdTimedOut(PlugError): + pass +class CmdFailed(PlugError): + pass +class InvalidURI(PlugError): + pass +class Action(object): + INSTALL, UPDATE, ERROR, DONE = ['+', '*', 'x', '-'] + +class Buffer(object): + def __init__(self, lock, num_plugs, is_pull): + self.bar = '' + self.event = 'Updating' if is_pull else 'Installing' + self.lock = lock + self.maxy = int(vim.eval('winheight(".")')) + self.num_plugs = num_plugs + + def __where(self, name): + """ Find first line with name in current buffer. Return line num. """ + found, lnum = False, 0 + matcher = re.compile('^[-+x*] {0}:'.format(name)) + for line in vim.current.buffer: + if matcher.search(line) is not None: + found = True + break + lnum += 1 + + if not found: + lnum = -1 + return lnum + + def header(self): + curbuf = vim.current.buffer + curbuf[0] = self.event + ' plugins ({0}/{1})'.format(len(self.bar), self.num_plugs) + + num_spaces = self.num_plugs - len(self.bar) + curbuf[1] = '[{0}{1}]'.format(self.bar, num_spaces * ' ') + + with self.lock: + vim.command('normal! 2G') + vim.command('redraw') + + def write(self, action, name, lines): + first, rest = lines[0], lines[1:] + msg = ['{0} {1}{2}{3}'.format(action, name, ': ' if first else '', first)] + msg.extend([' ' + line for line in rest]) + + try: + if action == Action.ERROR: + self.bar += 'x' + vim.command("call add(s:update.errors, '{0}')".format(name)) + elif action == Action.DONE: + self.bar += '=' + + curbuf = vim.current.buffer + lnum = self.__where(name) + if lnum != -1: # Found matching line num + del curbuf[lnum] + if lnum > self.maxy and action in set([Action.INSTALL, Action.UPDATE]): + lnum = 3 + else: + lnum = 3 + curbuf.append(msg, lnum) + + self.header() + except vim.error: + pass + +class Command(object): + CD = 'cd /d' if G_IS_WIN else 'cd' + + def __init__(self, cmd, cmd_dir=None, timeout=60, cb=None, clean=None): + self.cmd = cmd + if cmd_dir: + self.cmd = '{0} {1} && {2}'.format(Command.CD, cmd_dir, self.cmd) + self.timeout = timeout + self.callback = cb if cb else (lambda msg: None) + self.clean = clean if clean else (lambda: None) + self.proc = None + + @property + def alive(self): + """ Returns true only if command still running. """ + return self.proc and self.proc.poll() is None + + def execute(self, ntries=3): + """ Execute the command with ntries if CmdTimedOut. + Returns the output of the command if no Exception. + """ + attempt, finished, limit = 0, False, self.timeout + + while not finished: + try: + attempt += 1 + result = self.try_command() + finished = True + return result + except CmdTimedOut: + if attempt != ntries: + self.notify_retry() + self.timeout += limit + else: + raise + + def notify_retry(self): + """ Retry required for command, notify user. """ + for count in range(3, 0, -1): + if G_STOP.is_set(): + raise KeyboardInterrupt + msg = 'Timeout. Will retry in {0} second{1} ...'.format( + count, 's' if count != 1 else '') + self.callback([msg]) + time.sleep(1) + self.callback(['Retrying ...']) + + def try_command(self): + """ Execute a cmd & poll for callback. Returns list of output. + Raises CmdFailed -> return code for Popen isn't 0 + Raises CmdTimedOut -> command exceeded timeout without new output + """ + first_line = True + + try: + tfile = tempfile.NamedTemporaryFile(mode='w+b') + preexec_fn = not G_IS_WIN and os.setsid or None + self.proc = subprocess.Popen(self.cmd, stdout=tfile, + stderr=subprocess.STDOUT, + stdin=subprocess.PIPE, shell=True, + preexec_fn=preexec_fn) + thrd = thr.Thread(target=(lambda proc: proc.wait()), args=(self.proc,)) + thrd.start() + + thread_not_started = True + while thread_not_started: + try: + thrd.join(0.1) + thread_not_started = False + except RuntimeError: + pass + + while self.alive: + if G_STOP.is_set(): + raise KeyboardInterrupt + + if first_line or random.random() < G_LOG_PROB: + first_line = False + line = '' if G_IS_WIN else nonblock_read(tfile.name) + if line: + self.callback([line]) + + time_diff = time.time() - os.path.getmtime(tfile.name) + if time_diff > self.timeout: + raise CmdTimedOut(['Timeout!']) + + thrd.join(0.5) + + tfile.seek(0) + result = [line.decode('utf-8', 'replace').rstrip() for line in tfile] + + if self.proc.returncode != 0: + raise CmdFailed([''] + result) + + return result + except: + self.terminate() + raise + + def terminate(self): + """ Terminate process and cleanup. """ + if self.alive: + if G_IS_WIN: + os.kill(self.proc.pid, signal.SIGINT) + else: + os.killpg(self.proc.pid, signal.SIGTERM) + self.clean() + +class Plugin(object): + def __init__(self, name, args, buf_q, lock): + self.name = name + self.args = args + self.buf_q = buf_q + self.lock = lock + self.tag = args.get('tag', 0) + + def manage(self): + try: + if os.path.exists(self.args['dir']): + self.update() + else: + self.install() + with self.lock: + thread_vim_command("let s:update.new['{0}'] = 1".format(self.name)) + except PlugError as exc: + self.write(Action.ERROR, self.name, exc.msg) + except KeyboardInterrupt: + G_STOP.set() + self.write(Action.ERROR, self.name, ['Interrupted!']) + except: + # Any exception except those above print stack trace + msg = 'Trace:\n{0}'.format(traceback.format_exc().rstrip()) + self.write(Action.ERROR, self.name, msg.split('\n')) + raise + + def install(self): + target = self.args['dir'] + if target[-1] == '\\': + target = target[0:-1] + + def clean(target): + def _clean(): + try: + shutil.rmtree(target) + except OSError: + pass + return _clean + + self.write(Action.INSTALL, self.name, ['Installing ...']) + callback = functools.partial(self.write, Action.INSTALL, self.name) + cmd = 'git clone {0} {1} {2} {3} 2>&1'.format( + '' if self.tag else G_CLONE_OPT, G_PROGRESS, self.args['uri'], + esc(target)) + com = Command(cmd, None, G_TIMEOUT, callback, clean(target)) + result = com.execute(G_RETRIES) + self.write(Action.DONE, self.name, result[-1:]) + + def repo_uri(self): + cmd = 'git rev-parse --abbrev-ref HEAD 2>&1 && git config -f .git/config remote.origin.url' + command = Command(cmd, self.args['dir'], G_TIMEOUT,) + result = command.execute(G_RETRIES) + return result[-1] + + def update(self): + actual_uri = self.repo_uri() + expect_uri = self.args['uri'] + regex = re.compile(r'^(?:\w+://)?(?:[^@/]*@)?([^:/]*(?::[0-9]*)?)[:/](.*?)(?:\.git)?/?$') + ma = regex.match(actual_uri) + mb = regex.match(expect_uri) + if ma is None or mb is None or ma.groups() != mb.groups(): + msg = ['', + 'Invalid URI: {0}'.format(actual_uri), + 'Expected {0}'.format(expect_uri), + 'PlugClean required.'] + raise InvalidURI(msg) + + if G_PULL: + self.write(Action.UPDATE, self.name, ['Updating ...']) + callback = functools.partial(self.write, Action.UPDATE, self.name) + fetch_opt = '--depth 99999999' if self.tag and os.path.isfile(os.path.join(self.args['dir'], '.git/shallow')) else '' + cmd = 'git fetch {0} {1} 2>&1'.format(fetch_opt, G_PROGRESS) + com = Command(cmd, self.args['dir'], G_TIMEOUT, callback) + result = com.execute(G_RETRIES) + self.write(Action.DONE, self.name, result[-1:]) + else: + self.write(Action.DONE, self.name, ['Already installed']) + + def write(self, action, name, msg): + self.buf_q.put((action, name, msg)) + +class PlugThread(thr.Thread): + def __init__(self, tname, args): + super(PlugThread, self).__init__() + self.tname = tname + self.args = args + + def run(self): + thr.current_thread().name = self.tname + buf_q, work_q, lock = self.args + + try: + while not G_STOP.is_set(): + name, args = work_q.get_nowait() + plug = Plugin(name, args, buf_q, lock) + plug.manage() + work_q.task_done() + except queue.Empty: + pass + +class RefreshThread(thr.Thread): + def __init__(self, lock): + super(RefreshThread, self).__init__() + self.lock = lock + self.running = True + + def run(self): + while self.running: + with self.lock: + thread_vim_command('noautocmd normal! a') + time.sleep(0.33) + + def stop(self): + self.running = False + +if G_NVIM: + def thread_vim_command(cmd): + vim.session.threadsafe_call(lambda: vim.command(cmd)) +else: + def thread_vim_command(cmd): + vim.command(cmd) + +def esc(name): + return '"' + name.replace('"', '\"') + '"' + +def nonblock_read(fname): + """ Read a file with nonblock flag. Return the last line. """ + fread = os.open(fname, os.O_RDONLY | os.O_NONBLOCK) + buf = os.read(fread, 100000).decode('utf-8', 'replace') + os.close(fread) + + line = buf.rstrip('\r\n') + left = max(line.rfind('\r'), line.rfind('\n')) + if left != -1: + left += 1 + line = line[left:] + + return line + +def main(): + thr.current_thread().name = 'main' + nthreads = int(vim.eval('s:update.threads')) + plugs = vim.eval('s:update.todo') + mac_gui = vim.eval('s:mac_gui') == '1' + + lock = thr.Lock() + buf = Buffer(lock, len(plugs), G_PULL) + buf_q, work_q = queue.Queue(), queue.Queue() + for work in plugs.items(): + work_q.put(work) + + start_cnt = thr.active_count() + for num in range(nthreads): + tname = 'PlugT-{0:02}'.format(num) + thread = PlugThread(tname, (buf_q, work_q, lock)) + thread.start() + if mac_gui: + rthread = RefreshThread(lock) + rthread.start() + + while not buf_q.empty() or thr.active_count() != start_cnt: + try: + action, name, msg = buf_q.get(True, 0.25) + buf.write(action, name, ['OK'] if not msg else msg) + buf_q.task_done() + except queue.Empty: + pass + except KeyboardInterrupt: + G_STOP.set() + + if mac_gui: + rthread.stop() + rthread.join() + +main() +EOF +endfunction + +function! s:update_ruby() + ruby << EOF + module PlugStream + SEP = ["\r", "\n", nil] + def get_line + buffer = '' + loop do + char = readchar rescue return + if SEP.include? char.chr + buffer << $/ + break + else + buffer << char + end + end + buffer + end + end unless defined?(PlugStream) + + def esc arg + %["#{arg.gsub('"', '\"')}"] + end + + def killall pid + pids = [pid] + if /mswin|mingw|bccwin/ =~ RUBY_PLATFORM + pids.each { |pid| Process.kill 'INT', pid.to_i rescue nil } + else + unless `which pgrep 2> /dev/null`.empty? + children = pids + until children.empty? + children = children.map { |pid| + `pgrep -P #{pid}`.lines.map { |l| l.chomp } + }.flatten + pids += children + end + end + pids.each { |pid| Process.kill 'TERM', pid.to_i rescue nil } + end + end + + def compare_git_uri a, b + regex = %r{^(?:\w+://)?(?:[^@/]*@)?([^:/]*(?::[0-9]*)?)[:/](.*?)(?:\.git)?/?$} + regex.match(a).to_a.drop(1) == regex.match(b).to_a.drop(1) + end + + require 'thread' + require 'fileutils' + require 'timeout' + running = true + iswin = VIM::evaluate('s:is_win').to_i == 1 + pull = VIM::evaluate('s:update.pull').to_i == 1 + base = VIM::evaluate('g:plug_home') + all = VIM::evaluate('s:update.todo') + limit = VIM::evaluate('get(g:, "plug_timeout", 60)') + tries = VIM::evaluate('get(g:, "plug_retries", 2)') + 1 + nthr = VIM::evaluate('s:update.threads').to_i + maxy = VIM::evaluate('winheight(".")').to_i + vim7 = VIM::evaluate('v:version').to_i <= 703 && RUBY_PLATFORM =~ /darwin/ + cd = iswin ? 'cd /d' : 'cd' + tot = VIM::evaluate('len(s:update.todo)') || 0 + bar = '' + skip = 'Already installed' + mtx = Mutex.new + take1 = proc { mtx.synchronize { running && all.shift } } + logh = proc { + cnt = bar.length + $curbuf[1] = "#{pull ? 'Updating' : 'Installing'} plugins (#{cnt}/#{tot})" + $curbuf[2] = '[' + bar.ljust(tot) + ']' + VIM::command('normal! 2G') + VIM::command('redraw') + } + where = proc { |name| (1..($curbuf.length)).find { |l| $curbuf[l] =~ /^[-+x*] #{name}:/ } } + log = proc { |name, result, type| + mtx.synchronize do + ing = ![true, false].include?(type) + bar += type ? '=' : 'x' unless ing + b = case type + when :install then '+' when :update then '*' + when true, nil then '-' else + VIM::command("call add(s:update.errors, '#{name}')") + 'x' + end + result = + if type || type.nil? + ["#{b} #{name}: #{result.lines.to_a.last || 'OK'}"] + elsif result =~ /^Interrupted|^Timeout/ + ["#{b} #{name}: #{result}"] + else + ["#{b} #{name}"] + result.lines.map { |l| " " << l } + end + if lnum = where.call(name) + $curbuf.delete lnum + lnum = 4 if ing && lnum > maxy + end + result.each_with_index do |line, offset| + $curbuf.append((lnum || 4) - 1 + offset, line.gsub(/\e\[./, '').chomp) + end + logh.call + end + } + bt = proc { |cmd, name, type, cleanup| + tried = timeout = 0 + begin + tried += 1 + timeout += limit + fd = nil + data = '' + if iswin + Timeout::timeout(timeout) do + tmp = VIM::evaluate('tempname()') + system("(#{cmd}) > #{tmp}") + data = File.read(tmp).chomp + File.unlink tmp rescue nil + end + else + fd = IO.popen(cmd).extend(PlugStream) + first_line = true + log_prob = 1.0 / nthr + while line = Timeout::timeout(timeout) { fd.get_line } + data << line + log.call name, line.chomp, type if name && (first_line || rand < log_prob) + first_line = false + end + fd.close + end + [$? == 0, data.chomp] + rescue Timeout::Error, Interrupt => e + if fd && !fd.closed? + killall fd.pid + fd.close + end + cleanup.call if cleanup + if e.is_a?(Timeout::Error) && tried < tries + 3.downto(1) do |countdown| + s = countdown > 1 ? 's' : '' + log.call name, "Timeout. Will retry in #{countdown} second#{s} ...", type + sleep 1 + end + log.call name, 'Retrying ...', type + retry + end + [false, e.is_a?(Interrupt) ? "Interrupted!" : "Timeout!"] + end + } + main = Thread.current + threads = [] + watcher = Thread.new { + if vim7 + while VIM::evaluate('getchar(1)') + sleep 0.1 + end + else + require 'io/console' # >= Ruby 1.9 + nil until IO.console.getch == 3.chr + end + mtx.synchronize do + running = false + threads.each { |t| t.raise Interrupt } unless vim7 + end + threads.each { |t| t.join rescue nil } + main.kill + } + refresh = Thread.new { + while true + mtx.synchronize do + break unless running + VIM::command('noautocmd normal! a') + end + sleep 0.2 + end + } if VIM::evaluate('s:mac_gui') == 1 + + clone_opt = VIM::evaluate('s:clone_opt').join(' ') + progress = VIM::evaluate('s:progress_opt(1)') + nthr.times do + mtx.synchronize do + threads << Thread.new { + while pair = take1.call + name = pair.first + dir, uri, tag = pair.last.values_at *%w[dir uri tag] + exists = File.directory? dir + ok, result = + if exists + chdir = "#{cd} #{iswin ? dir : esc(dir)}" + ret, data = bt.call "#{chdir} && git rev-parse --abbrev-ref HEAD 2>&1 && git config -f .git/config remote.origin.url", nil, nil, nil + current_uri = data.lines.to_a.last + if !ret + if data =~ /^Interrupted|^Timeout/ + [false, data] + else + [false, [data.chomp, "PlugClean required."].join($/)] + end + elsif !compare_git_uri(current_uri, uri) + [false, ["Invalid URI: #{current_uri}", + "Expected: #{uri}", + "PlugClean required."].join($/)] + else + if pull + log.call name, 'Updating ...', :update + fetch_opt = (tag && File.exist?(File.join(dir, '.git/shallow'))) ? '--depth 99999999' : '' + bt.call "#{chdir} && git fetch #{fetch_opt} #{progress} 2>&1", name, :update, nil + else + [true, skip] + end + end + else + d = esc dir.sub(%r{[\\/]+$}, '') + log.call name, 'Installing ...', :install + bt.call "git clone #{clone_opt unless tag} #{progress} #{uri} #{d} 2>&1", name, :install, proc { + FileUtils.rm_rf dir + } + end + mtx.synchronize { VIM::command("let s:update.new['#{name}'] = 1") } if !exists && ok + log.call name, result, ok + end + } if running + end + end + threads.each { |t| t.join rescue nil } + logh.call + refresh.kill if refresh + watcher.kill +EOF +endfunction + +function! s:shellesc_cmd(arg, script) + let escaped = substitute('"'.a:arg.'"', '[&|<>()@^!"]', '^&', 'g') + return substitute(escaped, '%', (a:script ? '%' : '^') . '&', 'g') +endfunction + +function! s:shellesc_ps1(arg) + return "'".substitute(escape(a:arg, '\"'), "'", "''", 'g')."'" +endfunction + +function! s:shellesc_sh(arg) + return "'".substitute(a:arg, "'", "'\\\\''", 'g')."'" +endfunction + +" Escape the shell argument based on the shell. +" Vim and Neovim's shellescape() are insufficient. +" 1. shellslash determines whether to use single/double quotes. +" Double-quote escaping is fragile for cmd.exe. +" 2. It does not work for powershell. +" 3. It does not work for *sh shells if the command is executed +" via cmd.exe (ie. cmd.exe /c sh -c command command_args) +" 4. It does not support batchfile syntax. +" +" Accepts an optional dictionary with the following keys: +" - shell: same as Vim/Neovim 'shell' option. +" If unset, fallback to 'cmd.exe' on Windows or 'sh'. +" - script: If truthy and shell is cmd.exe, escape for batchfile syntax. +function! plug#shellescape(arg, ...) + if a:arg =~# '^[A-Za-z0-9_/:.-]\+$' + return a:arg + endif + let opts = a:0 > 0 && type(a:1) == s:TYPE.dict ? a:1 : {} + let shell = get(opts, 'shell', s:is_win ? 'cmd.exe' : 'sh') + let script = get(opts, 'script', 1) + if shell =~# 'cmd\(\.exe\)\?$' + return s:shellesc_cmd(a:arg, script) + elseif s:is_powershell(shell) + return s:shellesc_ps1(a:arg) + endif + return s:shellesc_sh(a:arg) +endfunction + +function! s:glob_dir(path) + return map(filter(s:glob(a:path, '**'), 'isdirectory(v:val)'), 's:dirpath(v:val)') +endfunction + +function! s:progress_bar(line, bar, total) + call setline(a:line, '[' . s:lpad(a:bar, a:total) . ']') +endfunction + +function! s:compare_git_uri(a, b) + " See `git help clone' + " https:// [user@] github.com[:port] / junegunn/vim-plug [.git] + " [git@] github.com[:port] : junegunn/vim-plug [.git] + " file:// / junegunn/vim-plug [/] + " / junegunn/vim-plug [/] + let pat = '^\%(\w\+://\)\='.'\%([^@/]*@\)\='.'\([^:/]*\%(:[0-9]*\)\=\)'.'[:/]'.'\(.\{-}\)'.'\%(\.git\)\=/\?$' + let ma = matchlist(a:a, pat) + let mb = matchlist(a:b, pat) + return ma[1:2] ==# mb[1:2] +endfunction + +function! s:format_message(bullet, name, message) + if a:bullet != 'x' + return [printf('%s %s: %s', a:bullet, a:name, s:lastline(a:message))] + else + let lines = map(s:lines(a:message), '" ".v:val') + return extend([printf('x %s:', a:name)], lines) + endif +endfunction + +function! s:with_cd(cmd, dir, ...) + let script = a:0 > 0 ? a:1 : 1 + let pwsh = s:is_powershell(&shell) + let cd = s:is_win && !pwsh ? 'cd /d' : 'cd' + let sep = pwsh ? ';' : '&&' + return printf('%s %s %s %s', cd, plug#shellescape(a:dir, {'script': script, 'shell': &shell}), sep, a:cmd) +endfunction + +function! s:system(cmd, ...) + let batchfile = '' + try + let [sh, shellcmdflag, shrd] = s:chsh(1) + if type(a:cmd) == s:TYPE.list + " Neovim's system() supports list argument to bypass the shell + " but it cannot set the working directory for the command. + " Assume that the command does not rely on the shell. + if has('nvim') && a:0 == 0 + return system(a:cmd) + endif + let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})')) + if s:is_powershell(&shell) + let cmd = '& ' . cmd + endif + else + let cmd = a:cmd + endif + if a:0 > 0 + let cmd = s:with_cd(cmd, a:1, type(a:cmd) != s:TYPE.list) + endif + if s:is_win && type(a:cmd) != s:TYPE.list + let [batchfile, cmd] = s:batchfile(cmd) + endif + return system(cmd) + finally + let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] + if s:is_win && filereadable(batchfile) + call delete(batchfile) + endif + endtry +endfunction + +function! s:system_chomp(...) + let ret = call('s:system', a:000) + return v:shell_error ? '' : substitute(ret, '\n$', '', '') +endfunction + +function! s:git_validate(spec, check_branch) + let err = '' + if isdirectory(a:spec.dir) + let result = [s:git_local_branch(a:spec.dir), s:git_origin_url(a:spec.dir)] + let remote = result[-1] + if empty(remote) + let err = join([remote, 'PlugClean required.'], "\n") + elseif !s:compare_git_uri(remote, a:spec.uri) + let err = join(['Invalid URI: '.remote, + \ 'Expected: '.a:spec.uri, + \ 'PlugClean required.'], "\n") + elseif a:check_branch && has_key(a:spec, 'commit') + let sha = s:git_revision(a:spec.dir) + if empty(sha) + let err = join(add(result, 'PlugClean required.'), "\n") + elseif !s:hash_match(sha, a:spec.commit) + let err = join([printf('Invalid HEAD (expected: %s, actual: %s)', + \ a:spec.commit[:6], sha[:6]), + \ 'PlugUpdate required.'], "\n") + endif + elseif a:check_branch + let current_branch = result[0] + " Check tag + let origin_branch = s:git_origin_branch(a:spec) + if has_key(a:spec, 'tag') + let tag = s:system_chomp('git describe --exact-match --tags HEAD 2>&1', a:spec.dir) + if a:spec.tag !=# tag && a:spec.tag !~ '\*' + let err = printf('Invalid tag: %s (expected: %s). Try PlugUpdate.', + \ (empty(tag) ? 'N/A' : tag), a:spec.tag) + endif + " Check branch + elseif origin_branch !=# current_branch + let err = printf('Invalid branch: %s (expected: %s). Try PlugUpdate.', + \ current_branch, origin_branch) + endif + if empty(err) + let ahead_behind = split(s:lastline(s:system([ + \ 'git', 'rev-list', '--count', '--left-right', + \ printf('HEAD...origin/%s', origin_branch) + \ ], a:spec.dir)), '\t') + if v:shell_error || len(ahead_behind) != 2 + let err = "Failed to compare with the origin. The default branch might have changed.\nPlugClean required." + else + let [ahead, behind] = ahead_behind + if ahead && behind + " Only mention PlugClean if diverged, otherwise it's likely to be + " pushable (and probably not that messed up). + let err = printf( + \ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n" + \ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', origin_branch, ahead, behind) + elseif ahead + let err = printf("Ahead of origin/%s by %d commit(s).\n" + \ .'Cannot update until local changes are pushed.', + \ origin_branch, ahead) + endif + endif + endif + endif + else + let err = 'Not found' + endif + return [err, err =~# 'PlugClean'] +endfunction + +function! s:rm_rf(dir) + if isdirectory(a:dir) + return s:system(s:is_win + \ ? 'rmdir /S /Q '.plug#shellescape(a:dir) + \ : ['rm', '-rf', a:dir]) + endif +endfunction + +function! s:clean(force) + call s:prepare() + call append(0, 'Searching for invalid plugins in '.g:plug_home) + call append(1, '') + + " List of valid directories + let dirs = [] + let errs = {} + let [cnt, total] = [0, len(g:plugs)] + for [name, spec] in items(g:plugs) + if !s:is_managed(name) || get(spec, 'frozen', 0) + call add(dirs, spec.dir) + else + let [err, clean] = s:git_validate(spec, 1) + if clean + let errs[spec.dir] = s:lines(err)[0] + else + call add(dirs, spec.dir) + endif + endif + let cnt += 1 + call s:progress_bar(2, repeat('=', cnt), total) + normal! 2G + redraw + endfor + + let allowed = {} + for dir in dirs + let allowed[s:dirpath(s:plug_fnamemodify(dir, ':h:h'))] = 1 + let allowed[dir] = 1 + for child in s:glob_dir(dir) + let allowed[child] = 1 + endfor + endfor + + let todo = [] + let found = sort(s:glob_dir(g:plug_home)) + while !empty(found) + let f = remove(found, 0) + if !has_key(allowed, f) && isdirectory(f) + call add(todo, f) + call append(line('$'), '- ' . f) + if has_key(errs, f) + call append(line('$'), ' ' . errs[f]) + endif + let found = filter(found, 'stridx(v:val, f) != 0') + end + endwhile + + 4 + redraw + if empty(todo) + call append(line('$'), 'Already clean.') + else + let s:clean_count = 0 + call append(3, ['Directories to delete:', '']) + redraw! + if a:force || s:ask_no_interrupt('Delete all directories?') + call s:delete([6, line('$')], 1) + else + call setline(4, 'Cancelled.') + nnoremap d :set opfunc=delete_opg@ + nmap dd d_ + xnoremap d :call delete_op(visualmode(), 1) + echo 'Delete the lines (d{motion}) to delete the corresponding directories' + endif + endif + 4 + setlocal nomodifiable +endfunction + +function! s:delete_op(type, ...) + call s:delete(a:0 ? [line("'<"), line("'>")] : [line("'["), line("']")], 0) +endfunction + +function! s:delete(range, force) + let [l1, l2] = a:range + let force = a:force + let err_count = 0 + while l1 <= l2 + let line = getline(l1) + if line =~ '^- ' && isdirectory(line[2:]) + execute l1 + redraw! + let answer = force ? 1 : s:ask('Delete '.line[2:].'?', 1) + let force = force || answer > 1 + if answer + let err = s:rm_rf(line[2:]) + setlocal modifiable + if empty(err) + call setline(l1, '~'.line[1:]) + let s:clean_count += 1 + else + delete _ + call append(l1 - 1, s:format_message('x', line[1:], err)) + let l2 += len(s:lines(err)) + let err_count += 1 + endif + let msg = printf('Removed %d directories.', s:clean_count) + if err_count > 0 + let msg .= printf(' Failed to remove %d directories.', err_count) + endif + call setline(4, msg) + setlocal nomodifiable + endif + endif + let l1 += 1 + endwhile +endfunction + +function! s:upgrade() + echo 'Downloading the latest version of vim-plug' + redraw + let tmp = s:plug_tempname() + let new = tmp . '/plug.vim' + + try + let out = s:system(['git', 'clone', '--depth', '1', s:plug_src, tmp]) + if v:shell_error + return s:err('Error upgrading vim-plug: '. out) + endif + + if readfile(s:me) ==# readfile(new) + echo 'vim-plug is already up-to-date' + return 0 + else + call rename(s:me, s:me . '.old') + call rename(new, s:me) + unlet g:loaded_plug + echo 'vim-plug has been upgraded' + return 1 + endif + finally + silent! call s:rm_rf(tmp) + endtry +endfunction + +function! s:upgrade_specs() + for spec in values(g:plugs) + let spec.frozen = get(spec, 'frozen', 0) + endfor +endfunction + +function! s:status() + call s:prepare() + call append(0, 'Checking plugins') + call append(1, '') + + let ecnt = 0 + let unloaded = 0 + let [cnt, total] = [0, len(g:plugs)] + for [name, spec] in items(g:plugs) + let is_dir = isdirectory(spec.dir) + if has_key(spec, 'uri') + if is_dir + let [err, _] = s:git_validate(spec, 1) + let [valid, msg] = [empty(err), empty(err) ? 'OK' : err] + else + let [valid, msg] = [0, 'Not found. Try PlugInstall.'] + endif + else + if is_dir + let [valid, msg] = [1, 'OK'] + else + let [valid, msg] = [0, 'Not found.'] + endif + endif + let cnt += 1 + let ecnt += !valid + " `s:loaded` entry can be missing if PlugUpgraded + if is_dir && get(s:loaded, name, -1) == 0 + let unloaded = 1 + let msg .= ' (not loaded)' + endif + call s:progress_bar(2, repeat('=', cnt), total) + call append(3, s:format_message(valid ? '-' : 'x', name, msg)) + normal! 2G + redraw + endfor + call setline(1, 'Finished. '.ecnt.' error(s).') + normal! gg + setlocal nomodifiable + if unloaded + echo "Press 'L' on each line to load plugin, or 'U' to update" + nnoremap L :call status_load(line('.')) + xnoremap L :call status_load(line('.')) + end +endfunction + +function! s:extract_name(str, prefix, suffix) + return matchstr(a:str, '^'.a:prefix.' \zs[^:]\+\ze:.*'.a:suffix.'$') +endfunction + +function! s:status_load(lnum) + let line = getline(a:lnum) + let name = s:extract_name(line, '-', '(not loaded)') + if !empty(name) + call plug#load(name) + setlocal modifiable + call setline(a:lnum, substitute(line, ' (not loaded)$', '', '')) + setlocal nomodifiable + endif +endfunction + +function! s:status_update() range + let lines = getline(a:firstline, a:lastline) + let names = filter(map(lines, 's:extract_name(v:val, "[x-]", "")'), '!empty(v:val)') + if !empty(names) + echo + execute 'PlugUpdate' join(names) + endif +endfunction + +function! s:is_preview_window_open() + silent! wincmd P + if &previewwindow + wincmd p + return 1 + endif +endfunction + +function! s:find_name(lnum) + for lnum in reverse(range(1, a:lnum)) + let line = getline(lnum) + if empty(line) + return '' + endif + let name = s:extract_name(line, '-', '') + if !empty(name) + return name + endif + endfor + return '' +endfunction + +function! s:preview_commit() + if b:plug_preview < 0 + let b:plug_preview = !s:is_preview_window_open() + endif + + let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}') + if empty(sha) + let name = matchstr(getline('.'), '^- \zs[^:]*\ze:$') + if empty(name) + return + endif + let title = 'HEAD@{1}..' + let command = 'git diff --no-color HEAD@{1}' + else + let title = sha + let command = 'git show --no-color --pretty=medium '.sha + let name = s:find_name(line('.')) + endif + + if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir) + return + endif + + if !s:is_preview_window_open() + execute get(g:, 'plug_pwindow', 'vertical rightbelow new') + execute 'e' title + else + execute 'pedit' title + wincmd P + endif + setlocal previewwindow filetype=git buftype=nofile bufhidden=wipe nobuflisted modifiable + let batchfile = '' + try + let [sh, shellcmdflag, shrd] = s:chsh(1) + let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && '.command + if s:is_win + let [batchfile, cmd] = s:batchfile(cmd) + endif + execute 'silent %!' cmd + finally + let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] + if s:is_win && filereadable(batchfile) + call delete(batchfile) + endif + endtry + setlocal nomodifiable + nnoremap q :q + wincmd p +endfunction + +function! s:section(flags) + call search('\(^[x-] \)\@<=[^:]\+:', a:flags) +endfunction + +function! s:format_git_log(line) + let indent = ' ' + let tokens = split(a:line, nr2char(1)) + if len(tokens) != 5 + return indent.substitute(a:line, '\s*$', '', '') + endif + let [graph, sha, refs, subject, date] = tokens + let tag = matchstr(refs, 'tag: [^,)]\+') + let tag = empty(tag) ? ' ' : ' ('.tag.') ' + return printf('%s%s%s%s%s (%s)', indent, graph, sha, tag, subject, date) +endfunction + +function! s:append_ul(lnum, text) + call append(a:lnum, ['', a:text, repeat('-', len(a:text))]) +endfunction + +function! s:diff() + call s:prepare() + call append(0, ['Collecting changes ...', '']) + let cnts = [0, 0] + let bar = '' + let total = filter(copy(g:plugs), 's:is_managed(v:key) && isdirectory(v:val.dir)') + call s:progress_bar(2, bar, len(total)) + for origin in [1, 0] + let plugs = reverse(sort(items(filter(copy(total), (origin ? '' : '!').'(has_key(v:val, "commit") || has_key(v:val, "tag"))')))) + if empty(plugs) + continue + endif + call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:') + for [k, v] in plugs + let branch = s:git_origin_branch(v) + if len(branch) + let range = origin ? '..origin/'.branch : 'HEAD@{1}..' + let cmd = ['git', 'log', '--graph', '--color=never'] + if s:git_version_requirement(2, 10, 0) + call add(cmd, '--no-show-signature') + endif + call extend(cmd, ['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range]) + if has_key(v, 'rtp') + call extend(cmd, ['--', v.rtp]) + endif + let diff = s:system_chomp(cmd, v.dir) + if !empty(diff) + let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : '' + call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)'))) + let cnts[origin] += 1 + endif + endif + let bar .= '=' + call s:progress_bar(2, bar, len(total)) + normal! 2G + redraw + endfor + if !cnts[origin] + call append(5, ['', 'N/A']) + endif + endfor + call setline(1, printf('%d plugin(s) updated.', cnts[0]) + \ . (cnts[1] ? printf(' %d plugin(s) have pending updates.', cnts[1]) : '')) + + if cnts[0] || cnts[1] + nnoremap (plug-preview) :silent! call preview_commit() + if empty(maparg("\", 'n')) + nmap (plug-preview) + endif + if empty(maparg('o', 'n')) + nmap o (plug-preview) + endif + endif + if cnts[0] + nnoremap X :call revert() + echo "Press 'X' on each block to revert the update" + endif + normal! gg + setlocal nomodifiable +endfunction + +function! s:revert() + if search('^Pending updates', 'bnW') + return + endif + + let name = s:find_name(line('.')) + if empty(name) || !has_key(g:plugs, name) || + \ input(printf('Revert the update of %s? (y/N) ', name)) !~? '^y' + return + endif + + call s:system('git reset --hard HEAD@{1} && git checkout '.plug#shellescape(g:plugs[name].branch).' --', g:plugs[name].dir) + setlocal modifiable + normal! "_dap + setlocal nomodifiable + echo 'Reverted' +endfunction + +function! s:snapshot(force, ...) abort + call s:prepare() + setf vim + call append(0, ['" Generated by vim-plug', + \ '" '.strftime("%c"), + \ '" :source this file in vim to restore the snapshot', + \ '" or execute: vim -S snapshot.vim', + \ '', '', 'PlugUpdate!']) + 1 + let anchor = line('$') - 3 + let names = sort(keys(filter(copy(g:plugs), + \'has_key(v:val, "uri") && isdirectory(v:val.dir)'))) + for name in reverse(names) + let sha = has_key(g:plugs[name], 'commit') ? g:plugs[name].commit : s:git_revision(g:plugs[name].dir) + if !empty(sha) + call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha)) + redraw + endif + endfor + + if a:0 > 0 + let fn = s:plug_expand(a:1) + if filereadable(fn) && !(a:force || s:ask(a:1.' already exists. Overwrite?')) + return + endif + call writefile(getline(1, '$'), fn) + echo 'Saved as '.a:1 + silent execute 'e' s:esc(fn) + setf vim + endif +endfunction + +function! s:split_rtp() + return split(&rtp, '\\\@ +# For yt ads: place the greasemonkey script yt-ads.js in your greasemonkey folder (~/.config/qutebrowser/greasemonkey). +# The script skips through the entire ad, so all you have to do is click the skip button. +# Yeah it's not ublock origin, but if you want a minimal browser, this is a solution for the tradeoff. +# You can also watch yt vids directly in mpv, see qutebrowser FAQ for how to do that. +# If you want additional blocklists, you can get the python-adblock package, or you can uncomment the ublock lists here. +c.content.blocking.enabled = True +# c.content.blocking.method = 'adblock' # uncomment this if you install python-adblock +# c.content.blocking.adblock.lists = [ +# "https://github.com/ewpratten/youtube_ad_blocklist/blob/master/blocklist.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/legacy.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2020.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2021.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2022.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2023.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2024.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/badware.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/privacy.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/badlists.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/annoyances.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/annoyances-cookies.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/annoyances-others.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/badlists.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/quick-fixes.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/resource-abuse.txt", +# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/unbreak.txt"] + diff --git a/config/qutebrowser/greasemonkey/yt-ads.js b/config/qutebrowser/greasemonkey/yt-ads.js new file mode 100755 index 0000000..932fd29 --- /dev/null +++ b/config/qutebrowser/greasemonkey/yt-ads.js @@ -0,0 +1,19 @@ +// ==UserScript== +// @name Auto Skip YouTube Ads +// @version 1.1.0 +// @description Speed up and skip YouTube ads automatically +// @author jso8910 and others +// @match *://*.youtube.com/* +// ==/UserScript== + + +document.addEventListener('load', () => { + const btn = document.querySelector('.videoAdUiSkipButton,.ytp-ad-skip-button-modern') + if (btn) { + btn.click() + } + const ad = [...document.querySelectorAll('.ad-showing')][0]; + if (ad) { + document.querySelector('video').currentTime = 9999999999; + } +}, true); diff --git a/config/qutebrowser/quickmarks b/config/qutebrowser/quickmarks new file mode 100755 index 0000000..e69de29 diff --git a/config/rofi/config.rasi b/config/rofi/config.rasi new file mode 100755 index 0000000..88e4ad0 --- /dev/null +++ b/config/rofi/config.rasi @@ -0,0 +1,64 @@ +* { + highlight: bold italic; + scrollbar: true; + + base-bg: #1e1e2e; + base-bg-soft: #181825; + base-bg-alt: #11111b; + + base-fg: #cdd6f4; + base-fg-dim: #6c7086; + + accent: #f5c2e7; + accent-light: #cba6f7; + accent-dark: #f38ba8; + + border-gray: #313244; + + background: @base-bg; + background-color: @background; + foreground: @base-fg; + border-color: @border-gray; + separatorcolor: @border-color; + scrollbar-handle: @border-color; + + normal-background: @background; + normal-foreground: @foreground; + alternate-normal-background: @base-bg-soft; + alternate-normal-foreground: @foreground; + + selected-normal-background: @accent; + selected-normal-foreground: @base-bg-alt; + + active-background: @accent; + active-foreground: @base-bg-alt; + alternate-active-background: @accent; + alternate-active-foreground: @active-foreground; + + selected-active-background: @accent-light; + selected-active-foreground: @active-foreground; + + urgent-background: @accent-dark; + urgent-foreground: @base-bg-alt; + alternate-urgent-background: @accent-dark; + alternate-urgent-foreground: @urgent-foreground; + + selected-urgent-background: @accent-light; + selected-urgent-foreground: @urgent-foreground; + + padding: 6px 6px; +} + +configuration { + font: "JetBrainsMono Nerd Font 14"; + show-icons: true; + terminal: "foot"; +} + +element-icon { + size: 20px; +} + +window { + border-radius: 0px; +} diff --git a/config/rofi/gruvbox.rasi b/config/rofi/gruvbox.rasi new file mode 100755 index 0000000..4941db9 --- /dev/null +++ b/config/rofi/gruvbox.rasi @@ -0,0 +1,61 @@ +* { + highlight: bold italic; + scrollbar: true; + + base-bg: #0f0f0f; + base-bg-soft: #1a1a1a; + base-bg-alt: #2a2a2a; + base-fg: #e0def4; + base-fg-dim: #6e6a86; + + accent: #ebbcba; + accent-light: #ea9a97; + accent-dark: #d7827e; + + border-gray: #454545; + + background: @base-bg; + background-color: @background; + foreground: @base-fg; + border-color: @border-gray; + separatorcolor: @border-color; + scrollbar-handle: @border-color; + + normal-background: @background; + normal-foreground: @foreground; + alternate-normal-background: @base-bg-soft; + alternate-normal-foreground: @foreground; + selected-normal-background: @accent; + selected-normal-foreground: @base-bg; + + active-background: @accent; + active-foreground: @base-bg; + alternate-active-background: @accent; + alternate-active-foreground: @active-foreground; + selected-active-background: @accent-light; + selected-active-foreground: @active-foreground; + + urgent-background: @accent-dark; + urgent-foreground: @base-bg; + alternate-urgent-background: @accent-dark; + alternate-urgent-foreground: @urgent-foreground; + selected-urgent-background: @accent-light; + selected-urgent-foreground: @urgent-foreground; + + padding: 6px 6px; +} + +configuration { + font: "JetBrainsMono Nerd Font 14"; + show-icons: true; + terminal: "footclient"; +} + +element-icon { + size: 20px; +} + +window { + border-radius: 10px; +} + diff --git a/config/rofi/rofi/config.rasi b/config/rofi/rofi/config.rasi new file mode 100755 index 0000000..d99eab8 --- /dev/null +++ b/config/rofi/rofi/config.rasi @@ -0,0 +1,61 @@ +* { + highlight: bold italic; + scrollbar: true; + + base-bg: #000000; + base-bg-soft: #1a1a1a; + base-bg-alt: #0d0d0d; + base-fg: #f5f5f5; + base-fg-dim: #808080; + accent: #ffffff; + accent-light: #e0e0e0; + accent-dark: #4d4d4d; + border-gray: #333333; + + background: @base-bg; + background-color: @background; + foreground: @base-fg; + border-color: @border-gray; + separatorcolor: @border-color; + scrollbar-handle: @border-color; + + normal-background: @background; + normal-foreground: @foreground; + alternate-normal-background: @base-bg-soft; + alternate-normal-foreground: @foreground; + + selected-normal-background: @accent; + selected-normal-foreground: @base-bg-alt; + + active-background: @accent; + active-foreground: @base-bg-alt; + alternate-active-background: @accent; + alternate-active-foreground: @active-foreground; + + selected-active-background: @accent-light; + selected-active-foreground: @active-foreground; + + urgent-background: @accent-dark; + urgent-foreground: @base-bg-alt; + alternate-urgent-background: @accent-dark; + alternate-urgent-foreground: @urgent-foreground; + + selected-urgent-background: @accent-light; + selected-urgent-foreground: @urgent-foreground; + + padding: 6px 6px; +} + +configuration { + font: "JetBrainsMono Nerd Font 14"; + show-icons: true; + terminal: "foot"; +} + +element-icon { + size: 20px; +} + +window { + border-radius: 10px; +} diff --git a/config/shell/aliases b/config/shell/aliases new file mode 100755 index 0000000..a882dec --- /dev/null +++ b/config/shell/aliases @@ -0,0 +1,45 @@ +#!/bin/sh +#general aliases +alias forge="su forgejo" +alias cst="emacs ~/.suckless/st/config.h" +alias resmacs="systemctl --user restart emacsd" +alias smi="nvidia-smi" +alias src="source ~/.zshrc" +alias bat="sb-battery" +alias battery="sb-battery" +alias vimrc="vim .vimrc" +alias ri="ranger" +alias rim="ranger" +alias quit="exit" +alias :q="exit" +alias :q!="exit" +alias :Q="exit" +alias :Q!="exit" +alias :quit="exit" +alias :quit!="exit" +alias :QUIT="exit" +alias :QUIT!="exit" +alias q="exit" +alias fnl="fennel" +alias "git push -u origin main"="push" +alias irc="irssi" +alias hsw="home-manager switch --flake ~/.config/home-manager" +alias hsc="emacs ~/.config/home-manager/home.nix" +alias yell="echo" +alias chm="ecop cat ~/.config/home-manager/home.nix" +if [ -n "$ZSH_VERSION" ]; then + alias ed="ed -p '%: '" +else + alias ed="ed -p '$: '" +fi +alias weather="curl wttr.in/masjedsoleyman" +#typo/shortcut +alias c="clear" +alias cear="clear" +alias "cd.."="cd .." +alias claer="clear" +alias claer="clear" +alias clare="clear" +alias cleae="clear" +alias clera="clear" +alias hotp="htop" diff --git a/config/shell/exports b/config/shell/exports new file mode 100755 index 0000000..9ca27a9 --- /dev/null +++ b/config/shell/exports @@ -0,0 +1,7 @@ +export PATH=$HOME/.local/bin:$PATH +export PATH=$HOME/.luarocks/bin:$PATH +if [ -n "$ZSH_VERSION" ]; then + export ZSH="/home/avery/.oh-my-zsh" +fi +export NIXPKGS_ALLOW_UNFREE=1 +export EDITOR="emacs" diff --git a/config/shell/shell/aliases b/config/shell/shell/aliases new file mode 100755 index 0000000..d53e7b2 --- /dev/null +++ b/config/shell/shell/aliases @@ -0,0 +1,53 @@ + #!/bin/sh + #general aliases + alias xi="doas xbps-install -S $1" + alias nf="clear && fastfetch" + alias ascdis="fastfetch --logo $1" + alias forge="su forgejo" + alias emoji="cat ~/.local/share/emoji | grep $1" + alias cst="emacs ~/.suckless/st/config.h" + alias las="ls" + alias lasa="ls -a" + alias lasal="ls -al" + alias anal="ls -ahl" + alias resmacs="systemctl --user restart emacsd" + alias smi="nvidia-smi" + alias src="source ~/.zshrc" + alias bat="sb-battery" + alias battery="sb-battery" + alias vimrc="vim .vimrc" + alias ri="ranger" + alias rim="ranger" + alias quit="exit" + alias :q="exit" + alias :q!="exit" + alias :Q="exit" + alias :Q!="exit" + alias :quit="exit" + alias :quit!="exit" + alias :QUIT="exit" + alias :QUIT!="exit" + alias q="exit" + alias fnl="fennel" + alias "push"="git push -u origin main" + alias irc="irssi" + alias hsw="home-manager switch --flake ~/.config/home-manager" + alias hsc="emacs ~/.config/home-manager/home.nix" + alias yell="echo" + alias chm="ecop cat ~/.config/home-manager/home.nix" + if [ -n "$ZSH_VERSION" ]; then + alias ed="ed -p '%: '" + else + alias ed="ed -p '$: '" + fi + alias weather="curl wttr.in/masjedsoleyman" + #typo/shortcut + alias c="clear" + alias cear="clear" + alias "cd.."="cd .." + alias claer="clear" + alias claer="clear" + alias clare="clear" + alias cleae="clear" + alias clera="clear" + alias hotp="htop" diff --git a/config/shell/shell/aliases.backup b/config/shell/shell/aliases.backup new file mode 100755 index 0000000..c8f86ac --- /dev/null +++ b/config/shell/shell/aliases.backup @@ -0,0 +1,27 @@ +#!/bin/zsh +#general aliases +alias emacs="emacsclient -c" +alias vimrc="edsc .vimrc" +alias ri="ranger" +alias rim="ranger" +alias :q="exit" +alias :q!="exit" +alias :Q="exit" +alias :Q!="exit" +alias :quit="exit" +alias :quit!="exit" +alias :QUIT="exit" +alias :QUIT!="exit" +alias fnl="fennel" +alias irc="irssi" +alias hsw="home-manager switch" +#typo/shortcut +alias c="clear" +alias cear="clear" +alias "cd.."="cd .." +alias claer="clear" +alias claer="clear" +alias clare="clear" +alias cleae="clear" +alias clera="clear" +alias hotp="htop" diff --git a/config/shell/shell/exports b/config/shell/shell/exports new file mode 100755 index 0000000..9ed30bc --- /dev/null +++ b/config/shell/shell/exports @@ -0,0 +1,8 @@ +export PATH=$HOME/.local/bin:$PATH +export PATH=$HOME/.luarocks/bin:$PATH +if [ -n "$ZSH_VERSION" ]; then + export ZSH="/home/avery/.oh-my-zsh" +fi +export NIXPKGS_ALLOW_UNFREE=1 +export EDITOR="emacs" +export BROWSER="brave" diff --git a/config/shell/shell/exports.backup b/config/shell/shell/exports.backup new file mode 100755 index 0000000..c1d9f0e --- /dev/null +++ b/config/shell/shell/exports.backup @@ -0,0 +1,4 @@ +export PATH=$HOME/.local/bin:$PATH +export PATH=$HOME/.luarocks/bin:$PATH +export ZSH="/home/avery/.oh-my-zsh" +export NIXPKGS_ALLOW_UNFREE=1 diff --git a/config/starship.toml b/config/starship.toml new file mode 100755 index 0000000..119021d --- /dev/null +++ b/config/starship.toml @@ -0,0 +1,36 @@ +format = """ +[](#0f0f0f)\ +$username\ +[](bg:#1a1a1a fg:#0f0f0f)\ +$directory\ +[](bg:#2a2a2a fg:#1a1a1a)\ +$all_langs\ +[](bg:#1a1a1a fg:#2a2a2a)\ +$time\ +[](fg:#1a1a1a) +""" + +add_newline = false + +[username] +show_always = true +style_user = "bg:#0f0f0f fg:#ebbcba" +style_root = "bg:#0f0f0f fg:#eb6f92" +format = '[$user]($style)' +disabled = false + +[os] +style = "bg:#1a1a1a fg:#ebbcba" +disabled = true + +[directory] +style = "fg:#ebbcba bg:#1a1a1a" +format = "[ $path ]($style)" +truncation_length = 3 +truncation_symbol = "…/" + +[directory.substitutions] +"Documents" = "󰈙 " +"Downloads" = " " +"Music" = " " +"Pictures" = " " diff --git a/config/sway/config b/config/sway/config new file mode 100755 index 0000000..d7c5c04 --- /dev/null +++ b/config/sway/config @@ -0,0 +1,131 @@ +exec "foot --server" +exec "wbg /home/coast/Pictures/walls/wallhaven-yq5dmg_1920x1080.png" +exec "dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=Sway" +exec "gnome-keyring-daemon --start --components=secrets" +exec "waybar" +exec "mpd ~/.mpdconf" +exec "mpc add /" +exec "flatpak override --env=GTK_THEME=Catppuccin-B-MB-Dark --user" +exec "mako" + +set $mod Mod4 +set $left h +set $down j +set $up k +set $right l + +set $term footclient +set $menu rofi -show drun -config /home/coast/.config/rofi/config.rasi +set $webBrowser firefox-bin +set $discordApp vesktop-bin --proxy-server="socks5://127.0.0.1:65000" +set $restartWaybar "pkill waybar; waybar &" +set $fileManager pcmanfm + + +output HDMI-A-1 resolution 1920x1080@100Hz position 0,0 + +workspace 2 output HDMI-A-1 + +output * bg /home/coast/Pictures/walls/wallhaven-yq5dmg_1920x1080.png fill + + exec swayidle -w \ + timeout 300 'hyprlock' \ + timeout 600 'swaymsg "output * power off"' \ + resume 'swaymsg "output * power on"' \ + before-sleep 'hyprlock' + +input type:keyboard { + xkb_layout us +} + +gaps inner 5 +gaps outer 9 + +default_border pixel 1 + +client.focused #6c6c9d #6c6c9d #ffffff #6c6c9d #6c6c9d +client.unfocused #1e1e2e #1e1e2e #5c5c5c #1e1e2e #1e1e2e +client.focused_inactive #1e1e2e #1e1e2e #5c5c5c #1e1e2e #1e1e2e + +bindsym $mod+Return exec $term +bindsym $mod+s kill +bindsym $mod+r exec $menu +bindsym $mod+Shift+q exec swaymsg exit +bindsym $mod+ctrl+r reload + +floating_modifier $mod normal + +bindsym $mod+space exec swaymsg floating toggle && swaymsg resize set 1000 800 && swaymsg move position center + +bindsym $mod+backslash move position center + +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right focus right + +bindsym $mod+Shift+$left move left +bindsym $mod+Shift+$down move down +bindsym $mod+Shift+$up move up +bindsym $mod+Shift+$right move right + +bindsym $mod+Mod1+$left resize shrink width 30px +bindsym $mod+Mod1+$right resize grow width 30px +bindsym $mod+Mod1+$up resize shrink height 30px +bindsym $mod+Mod1+$down resize grow height 30px + +bindsym $mod+Left move left 40px +bindsym $mod+Right move right 40px +bindsym $mod+Up move up 40px +bindsym $mod+Down move down 40px + +bindsym $mod+Shift+Left resize shrink width 40px +bindsym $mod+Shift+Right resize grow width 40px +bindsym $mod+Shift+Up resize shrink height 40px +bindsym $mod+Shift+Down resize grow height 40px + +bindsym $mod+1 workspace number 1 +bindsym $mod+2 workspace number 2 +bindsym $mod+3 workspace number 3 +bindsym $mod+4 workspace number 4 +bindsym $mod+5 workspace number 5 +bindsym $mod+6 workspace number 6 +bindsym $mod+7 workspace number 7 +bindsym $mod+8 workspace number 8 +bindsym $mod+9 workspace number 9 + +bindsym $mod+Shift+1 move container to workspace number 1 +bindsym $mod+Shift+2 move container to workspace number 2 +bindsym $mod+Shift+3 move container to workspace number 3 +bindsym $mod+Shift+4 move container to workspace number 4 +bindsym $mod+Shift+5 move container to workspace number 5 +bindsym $mod+Shift+6 move container to workspace number 6 +bindsym $mod+Shift+7 move container to workspace number 7 +bindsym $mod+Shift+8 move container to workspace number 8 +bindsym $mod+Shift+9 move container to workspace number 9 + +bindsym $mod+c scratchpad show +bindsym $mod+Shift+c move scratchpad + +bindsym $mod+Shift+b exec $webBrowser +bindsym $mod+Shift+v exec $discordApp +bindsym $mod+f exec $fileManager +bindsym $mod+Shift+p exec $restartWaybar +bindsym $mod+ctrl+l exec hyprlock + +bindsym $mod+Shift+s exec screenie-wlr + +bindsym $mod+Mod1+Up exec /home/coast/.local/bin/mpc-shuf.sh shuf +bindsym $mod+Mod1+Down exec /home/coast/.local/bin/mpc-shuf.sh shufno +bindsym $mod+Mod1+Right exec /home/coast/.local/bin/mpc-shuf.sh next +bindsym $mod+Mod1+Left exec /home/coast/.local/bin/mpc-shuf.sh prev +bindsym $mod+Shift+r exec /home/coast/.local/bin/mpc-shuf.sh search +bindsym $mod+ctrl+a exec /home/coast/.local/bin/mpc-shuf.sh album +bindsym $mod+Mod1+r exec /home/coast/.local/bin/mpc-shuf.sh artist +bindsym $mod+slash exec /home/coast/.local/bin/mpc-shuf.sh info +bindsym $mod+comma exec mpc volume -5 +bindsym $mod+period exec mpc volume +5 +bindsym $mod+bracketright exec /home/coast/.local/bin/mpc-shuf.sh toggle +bindsym $mod+ctrl+Up exec /home/coast/.local/bin/mpc-shuf.sh reload + +xwayland enable diff --git a/config/sxhkd/sxhkdrc b/config/sxhkd/sxhkdrc new file mode 100755 index 0000000..a44e11d --- /dev/null +++ b/config/sxhkd/sxhkdrc @@ -0,0 +1,18 @@ +super + shift + r + brwmenu +super + shift + b + mullvad-browser-bin +super + f + pcmanfm +super + shift + f + st -e ranger +super + shift + t + torbrowser-launcher +super + shift + i + mullvad-browser-bin --private-window +super + shift + n + nekoray +super + shift + v + vesktop-bin +super + shift + g + st -e htop diff --git a/config/systemd/emacsd.service b/config/systemd/emacsd.service new file mode 100755 index 0000000..950f2c6 --- /dev/null +++ b/config/systemd/emacsd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Emacs daemon + +[Service] +Type=forking +ExecStart=/usr/bin/emacs --daemon +ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)" +Restart=on-failure + +[Install] +WantedBy=default.target diff --git a/config/tmux/tmux.conf b/config/tmux/tmux.conf new file mode 100755 index 0000000..7bd46dc --- /dev/null +++ b/config/tmux/tmux.conf @@ -0,0 +1,67 @@ +set -g default-terminal "tmux-256color" +set -ga terminal-overrides ",*:RGB" +set -g mouse on +set -g set-clipboard on + +unbind C-b +set -g prefix C-a +bind-key C-a send-prefix + +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + +unbind % +bind | split-window -h -c "#{pane_current_path}" + +unbind '"' +bind - split-window -v -c "#{pane_current_path}" + +unbind r +bind r source-file $HOME/.config/tmux/tmux.conf + +set -g base-index 1 +set -g pane-base-index 1 +set -g renumber-windows on + +set -g mode-keys vi +bind-key -T copy-mode-vi v send-keys -X begin-selection +bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle +bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel +unbind -T copy-mode-vi MouseDragEnd1Pane + +bind -n M-h select-pane -L +bind -n M-j select-pane -D +bind -n M-k select-pane -U +bind -n M-l select-pane -R + +bind -n M-1 select-window -t 1 +bind -n M-2 select-window -t 2 +bind -n M-3 select-window -t 3 +bind -n M-4 select-window -t 4 +bind -n M-5 select-window -t 5 +bind -n M-6 select-window -t 6 +bind -n M-7 select-window -t 7 +bind -n M-8 select-window -t 8 +bind -n M-9 select-window -t 9 + +set -g status on +set -g status-justify centre +set -g status-bg "#1a1a1a" +set -g status-fg "#ebbcba" +set -g status-style "bg=#1a1a1a,fg=#ebbcba" + +set -g status-left "#[bg=#ebbcba,fg=#1a1a1a,bold] #S " +set -g status-right " #[bg=#ebbcba,fg=#1a1a1a,bold] %H:%M " +set -g window-status-current-format "#[fg=#ebbcba]#[bg=#ebbcba,fg=#1a1a1a,bold] #I: #W #[fg=#ebbcba,bg=#1a1a1a]" +set -g window-status-format "#[fg=#ebbcba]#[bg=#ebbcba,fg=#111111] #I #[fg=#ebbcba,bg=#1a1a1a]" + +set -g pane-border-style "fg=#ebbcba" +set -g pane-active-border-style "fg=#ebbcba" + +set -g mode-style "bg=#ebbcba,fg=#ebbcba" + +set -g message-style "fg=#ebbcba,bg=#1a1a1a,bold" +set -g message-command-style "fg=#ebbcba,bg=#1a1a1a,bold" + diff --git a/config/waybar-2/config.jsonc b/config/waybar-2/config.jsonc new file mode 100644 index 0000000..a2ed085 --- /dev/null +++ b/config/waybar-2/config.jsonc @@ -0,0 +1,27 @@ +{ + "layer": "top", + "position": "bottom", + "height": 35, + "spacing": 4, + "modules-left": ["hyprland/workspaces"], + "modules-center": ["hyprland/window"], + "modules-right": ["clock"], + + "hyprland/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "format": "{id}", + "on-click": "activate" + }, + + "hyprland/window": { + "format": "{}", + "max-length": 40, + "separate-outputs": true + }, + + "clock": { + "format": "{:%I:%M %p}", + "tooltip": false + } +} diff --git a/config/waybar-2/style.css b/config/waybar-2/style.css new file mode 100644 index 0000000..10b2071 --- /dev/null +++ b/config/waybar-2/style.css @@ -0,0 +1,42 @@ +* { + border: none; + border-radius: 0; + font-family: "JetBrainsMono Nerd Font"; + font-size: 15px; + min-height: 0; +} + +window#waybar { + background-color: rgba(30, 30, 46, 0.8); + color: #cdd6f4; +} + +#workspaces { + margin: 0 4px; +} + +#workspaces button { + padding: 0 8px; + margin: 0 4px; + color: #6c7086; +} + +#workspaces button.active { + color: #89b4fa; + border-bottom: 2px solid #89b4fa; +} + +#workspaces button:hover { + background: rgba(137, 180, 250, 0.1); + box-shadow: inherit; + text-shadow: inherit; +} + +#window { + color: #cdd6f4; +} + +#clock { + font-weight: bold; + padding-right: 15px; +} diff --git a/config/waybar-2/waybar/config.jsonc b/config/waybar-2/waybar/config.jsonc new file mode 100755 index 0000000..8d04fac --- /dev/null +++ b/config/waybar-2/waybar/config.jsonc @@ -0,0 +1,154 @@ +{ + "reload-style-on-change": true, + "layer": "top", + "position": "top", + "output": "HDMI-A-1", + "spacing": 0, + "height": 35, + "border-radius": 25, + + "modules-left": ["niri/workspaces"], + "modules-center": [], + "modules-right": ["group/right"], + + "group/right": { + "orientation": "inherit", + "modules": [ + "clock" + ] + }, + + "custom/active_window": { + "exec": "~/.config/waybar/window.sh", + "return-type": "json", + "markup": true + }, + + "niri/workspaces": { + "on-click": "activate", + "format": "{icon}", + "format-icons": { + "default": "", + "active": "", + "urgent": "", + "empty": "" + }, + "persistent-workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [], + "6": [], + "7": [], + "8": [] + } + }, + + "custom/wbmenu": { + "format": "", + "on-click": "rofi -show drun -config ~/.config/rofi/gruvbox.rasi", + "on-click-right": "xdg-terminal-exec", + "tooltip-format": "Menu\n\nSuper + Return" + }, + + "cpu": { + "interval": 2, + "format": "{icon} ", + "format-icons": ["󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥"] + }, + + "memory": { + "interval": 2, + "format": "{icon}", + "format-icons": ["󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥"] + }, + + "clock": { + "format": " {:%I:%M %p • %a, %d/%m} ", + "format-alt": "{:%A, %d %B %Y}", + "tooltip-format": "{:%Y %B}\n{calendar}" + }, + + "network": { + "format-icons": ["󰤯", "󰤟", "󰤢", "󰤥", "󰤨"], + "format": "{icon}", + "format-wifi": "{icon}", + "format-ethernet": "󰌘", + "format-disconnected": "󰤮", + "tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}", + "tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}", + "tooltip-format-disconnected": "Disconnected", + "interval": 3, + "spacing": 1 + }, + + "battery": { + "format": "{capacity}% {icon}", + "format-discharging": "{icon}", + "format-charging": "{icon}", + "format-plugged": "", + "format-icons": { + "charging": ["󰢜", "󰂆", "󰂇", "󰂈", "󰢝", "󰂉", "󰢞", "󰂊", "󰂋", "󰂅"], + "default": ["󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"] + }, + "format-full": "󰂅", + "tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%", + "tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%", + "interval": 5, + "states": { + "warning": 20, + "critical": 10 + } + }, + + "bluetooth": { + "format": "󰂯", + "format-disabled": "󰂲", + "format-connected": "", + "format-no-controller": "", + "tooltip-format": "Devices connected: {num_connections}" + }, + + "pulseaudio": { + "format": "{icon}", + "on-click-right": "pamixer -t", + "tooltip-format": "Playing at {volume}%", + "scroll-step": 5, + "format-muted": "", + "format-icons": { + "default": [" ", " ", " "] + } + }, + + "group/tray-expander": { + "orientation": "inherit", + "drawer": { + "transition-duration": 600, + "children-class": "tray-group-item" + }, + "modules": ["custom/expand-icon", "tray"] + }, + + "custom/expand-icon": { + "format": "", + "tooltip": false + }, + + "tray": { + "icon-size": 16, + "spacing": 8 + }, + + "custom/separator#blank": { + "format": " ", + "interval": "once", + "tooltip": false + }, + + "custom/separator#dot": { + "format": " ", + "interval": "once", + "tooltip": false + } +} diff --git a/config/waybar-2/waybar/style.css b/config/waybar-2/waybar/style.css new file mode 100755 index 0000000..7f63e4b --- /dev/null +++ b/config/waybar-2/waybar/style.css @@ -0,0 +1,207 @@ +@define-color background #0E0F12; +@define-color foreground #E6DAD1; +@define-color accent #A07A6A; +@define-color muted #6E5A52; +@define-color subtle #15161A; + +* { + color: @foreground; + border: none; + border-radius: 0; + min-height: 0; + font-family: 'JetBrainsMono Nerd Font Propo'; + font-size: 12px; +} + +window#waybar { + background-color: @background; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar > box { + background-color: @background; + border-radius: 32px; + margin: 2px 10px 0px 10px; +} + +window#waybar.empty #window { + background: transparent; + background-color: transparent; + border: none; + border-radius: 0; + color: transparent; + padding: 0; + margin: 0; +} + +#waybar.empty .modules-center { + opacity: 0; +} + +.modules-left { + margin-left: 8px; +} +.modules-right { + margin-right: 8px; +} + +#workspaces { + padding: 0px 5px; + margin: 3.5px 3.5px; + border-radius: 11px; + background-color: alpha(@foreground, 0.06); + opacity: 0.95; +} + +#workspaces button { + all: initial; + color: @foreground; + padding: 0 6px; + margin: 0 1.5px; + min-width: 9px; +} + +#workspaces button.empty { + opacity: 0.45; +} + +#workspaces button.active { + border-radius: 18px; + background: alpha(@foreground, 0.14); + opacity: 1; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 5px; + padding-right: 5px; + padding-left: 5px; +} + +#workspaces button:hover { + border-radius: 18px; + background: alpha(@foreground, 0.08); + opacity: 1; +} + +#workspaces button.urgent { + border-radius: 18px; + background: alpha(#f13333, 0.4); + opacity: 1; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 5px; + padding-right: 5px; + padding-left: 5px; +} + +#clock { + font-size: 13px; + font-weight: 700; +} + +#battery, +#pulseaudio, +#custom-screenrecording-indicator, +#custom-update { + min-width: 12px; + margin: 0 7.5px; +} + +#pulseaudio { + margin-right: 5px; +} + +#bluetooth { + margin-right: 12px; +} + +#network { + margin-right: 9px; +} + +#custom-idle-indicator, +#custom-notification-silencing-indicator { + margin-right: 2px; + min-width: 15px; +} + +#custom-update { + font-size: 10px; +} + +#custom-screenrecording-indicator { + min-width: 12px; + margin-left: 8.75px; + font-size: 10px; +} + +#custom-screenrecording-indicator.active { + color: red; +} + +#tray { + background: alpha(@foreground, 0.0); + border-radius: 16px; + padding: 0px 5px; + margin: 3.5px 2px; + margin-right: 4px; +} + +#custom-omarchy { + background: alpha(@foreground, 0.08); + border-radius: 99px; + margin-top: 4px; + margin-bottom: 4px; + margin-left: -3px; + margin-right: 5px; + padding-right: 7px; + padding-left: 7px; +} + +#cpu, #memory { + font-size: 18px; + padding: 2px 1px; +} + +#custom-active_window { + padding: 3px 6px; + border-radius: 14px; + background: alpha(@foreground, 0.06); + font-size: 12px; +} + +#group-right1, +#group_right1, +#right1 { + font-weight: 800; + background: transparent; + padding: 0px 5px; + margin: 3.5px 2px; +} + +#group-left, +#group_left, +#left, +#group-right, +#group_right, +#right { + font-weight: 800; + background: alpha(@foreground, 0.06); + border-radius: 12px; + padding: 0px 5px; + margin: 3.5px 2px; +} + +tooltip { + background: @subtle; + border: 1px solid alpha(@foreground, 0.12); + border-radius: 4px 4px 11px 11px; +} + +tooltip label { + color: alpha(@foreground, 0.92); +} + +.hidden { + opacity: 0; +} diff --git a/config/waybar-2/waybar/window.sh b/config/waybar-2/waybar/window.sh new file mode 100755 index 0000000..abf1e39 --- /dev/null +++ b/config/waybar-2/waybar/window.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash + +MAX_TITLE_LEN=20 + +print_status() { + window=$(hyprctl activewindow -j 2>/dev/null) + address=$(jq -r '.address // empty' <<< "$window") + + # No active window → show Desktop + Workspace + if [[ -z "$address" || "$address" == "null" ]]; then + ws=$(hyprctl activeworkspace -j | jq -r '.id') + + top_line="Desktop" + bottom_line="Workspace $ws" + + esc_top=$(sed 's/&/&/g; s//>/g' <<< "$top_line") + esc_bottom=$(sed 's/&/&/g; s//>/g' <<< "$bottom_line") + + text="$esc_top +$esc_bottom" + + jq -nc \ + --arg text "$text" \ + --arg tooltip "$bottom_line" \ + '{ text: $text, class: "custom-window", tooltip: $tooltip }' + return + fi + + class=$(jq -r '.class // "Unknown"' <<< "$window") + title=$(jq -r '.title // ""' <<< "$window") + + app_class="${class,,}" + + # Discord / Vesktop cleanup + if [[ "$app_class" == *discord* || "$app_class" == *vesktop* ]]; then + title=$(sed -E 's/^\([0-9]+\)[[:space:]]*//' <<< "$title") + title=$(sed -E 's/^Discord[[:space:]]*\|[[:space:]]*//' <<< "$title") + fi + + # Truncate title + if (( ${#title} > MAX_TITLE_LEN )); then + title="${title:0:$((MAX_TITLE_LEN-3))}..." + fi + + esc_top=$(sed 's/&/&/g; s//>/g' <<< "$class") + esc_bottom=$(sed 's/&/&/g; s//>/g' <<< "$title") + + text="$esc_top +$esc_bottom" + + tooltip="$class: $title" + + jq -nc \ + --arg text "$text" \ + --arg tooltip "$tooltip" \ + '{ text: $text, class: "custom-window", tooltip: $tooltip }' +} + +# Initial output +print_status + +last="" + +# Update only when state changes +while true; do + current_window=$(hyprctl activewindow -j 2>/dev/null) + current_ws=$(hyprctl activeworkspace -j 2>/dev/null) + + current="$current_window$current_ws" + + if [[ "$current" != "$last" ]]; then + print_status + last="$current" + fi + + sleep 0.5 +done diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc new file mode 100755 index 0000000..6907e47 --- /dev/null +++ b/config/waybar/config.jsonc @@ -0,0 +1,107 @@ +{ + "position": "top", +// "output": "HDMI-A-1", + "layer": "top", + "modules-left": [ +// "custom/distro", + "niri/workspaces", + "niri/window" + ], + "modules-center": [ + ], + "modules-right": [ + "network", + "pulseaudio", + "clock" + ], + "pulseaudio": { + "tooltip": false, + "scroll-step": 5, + "format": " {volume}%", + "format-muted": "muted", + "format-icons": { + "default": [ + "", + "", + "" + ] + } + }, + "privacy": { + "icon-spacing": 10, + "icon-size": 18, + "transition-duration": 250, + "tooltip": false, + "modules": [ + { + "type": "screenshare", + "tooltip": true, + "tooltip-icon-size": 24 + }, + { + "type": "audio-out", + "tooltip": true, + "tooltip-icon-size": 24 + }, + { + "type": "audio-in", + "tooltip": true, + "tooltip-icon-size": 24 + } + ] + }, + "custom/distro": { + "format": "󱄅", + "on-click": "sh -c 'rofi -show drun -config ~/.config/rofi/gruvbox.rasi'", + "tooltip": false + }, + "bluetooth": { + "format": " {status}", + "format-connected": " CONN", + "tooltip": true, + "on-click": "footclient -e bluetoothctl", + "tooltip-format-connected": "{device_alias}" + }, + "clock": { + "format": "󰥔 {:%I:%M %p}", + "tooltip": true, + "tooltip-format": "{:%a, %b %d, :%I:%M:%S %p}" + }, + "niri/workspaces": { + "format": "●", + "active-format": "{icon} ●", + "window-icons": true, + "icon-size": 20 + }, + "niri/window": { + "icon": false, + "icon-size": 20 + }, + "niri/mode": { + "format": "{}" + }, + "network": { + // "interface": "wlo1", + "interface": "eno1", + "format-wifi": "󰖩 {essid}", + "format-ethernet": "󰛳 {ipaddr}/{cidr}", + "format-disconnected": "󱚼 disconnected", + "tooltip": true, + "tooltip-format": "Click to copy", + "max-length": 50, + "on-click": "sh -c 'ip addr show eno1 | grep \"inet \" | awk \"{print \\$2}\" | sed \"s#/.*##\" | wl-copy'" + }, + "battery": { + "format": "BAT {capacity}%", + "interval": 10, + "states": { + "warning": 20, + "critical": 10 + }, + "format-time": "{H}:{m}", + "format-charging": "BAT {capacity}%", + "format-discharging": "BAT {capacity}%", + "tooltip-format": "{power}W, {cycles} cycles" + } +} + diff --git a/config/waybar/style.css b/config/waybar/style.css new file mode 100755 index 0000000..601dd6d --- /dev/null +++ b/config/waybar/style.css @@ -0,0 +1,82 @@ +@define-color border #211e1e; +@define-color background #111111; +@define-color surface0 #151111; +@define-color overlay0 #161515; +@define-color text #e0def4; +@define-color text_dim #6e6a86; +@define-color blue #31748f; +@define-color green #9ccfd8; +@define-color yellow #f6c177; +@define-color peach #ebbcba; +@define-color maroon #e79591; +@define-color lavender #c4a7e7; +@define-color pink #eb6f92; +@define-color teal #9ccfd8; +@define-color grey #6e6a86; + +* { + border: none; + font-family: "JetBrainsMono Nerd Font"; + font-size: 15px; + min-height: 10px; +} + +window#waybar { + background: transparent; +} + +#disk, +#pulseaudio, +#window, +#clock, +#network, +#battery, +#privacy, +#memory, +#cpu, +#workspaces, +#tray, +#bluetooth, +#tray menu { + margin-top: 0; + padding: 5px 10px; + margin: 3px 0 13px 10px; + background: @surface0; + color: @peach; + transition: 0.3s; + border: 1.5px solid @border; + border-radius: 8px; +} + +#window { transition: none; } + +window#waybar.empty #window { + background: transparent; + box-shadow: none; + border: none; +} + +#network { color: @peach; } +#clock { margin-right: 12px; color: @peach; } +#pulseaudio { color: @peach; } + +#workspaces { + margin-left: 12px; + color: @peach; +} + +#workspaces button { + margin: 0; + padding: 1px 3px; + color: @peach; + transition: none; +} + +#workspaces button.empty { color: @peach; } +#workspaces button.active { color: @maroon; } +#workspaces button.urgent { color: @peach; } + +#workspaces button:hover { + background: @overlay0; + color: @peach; +} diff --git a/config/wofi/config b/config/wofi/config new file mode 100755 index 0000000..0f7e7ba --- /dev/null +++ b/config/wofi/config @@ -0,0 +1,32 @@ +# mode & placement +show=drun +location=top +width=700 +lines=8 +columns=2 +dynamic_lines=false + +# icons +allow_images=true +image_size=36 + +# search & UX +matching=fuzzy +insensitive=true +hide_scroll=false +prompt= + +# terminal +term=foot + +# keybinds (vim-ish) +key_up=Ctrl-k +key_down=Ctrl-j +key_left=Ctrl-h +key_right=Ctrl-l +key_submit=Return +key_forward=Tab +key_backward=Shift-ISO_Left_Tab + +# stylesheet +style=/home/tony/.config/wofi/style.css diff --git a/config/wofi/style.css b/config/wofi/style.css new file mode 100755 index 0000000..4ee72bd --- /dev/null +++ b/config/wofi/style.css @@ -0,0 +1,59 @@ +* { + font-family: "UbuntuMono", monospace; + font-size: 16px; + font-weight: bold; +} + +window { + margin: 0px; + border: 2px solid #7f7f7f; /* Bright grey */ + border-radius: 5px; + background-color: #1c1c1c; /* Dark grey */ + font-family: monospace; + font-size: 12px; +} + +#input { + margin: 5px; + border: 1px solid #1c1c1c; /* Dark grey */ + color: #d3d3d3; /* Light grey */ + background-color: #1c1c1c; /* Dark grey */ +} + +#input image { + color: #d3d3d3; /* Light grey */ +} + +#inner-box { + margin: 5px; + border: none; + background-color: #1c1c1c; /* Dark grey */ +} + +#outer-box { + margin: 5px; + border: none; + background-color: #1c1c1c; /* Dark grey */ +} + +#scroll { + margin: 0px; + border: none; +} + +#text { + margin: 5px; + border: none; + color: #d3d3d3; /* Light grey */ +} + +#entry:selected { + background-color: #7f7f7f; /* Bright grey */ + font-weight: normal; +} + +#text:selected { + background-color: #7f7f7f; /* Bright grey */ + font-weight: normal; +} + diff --git a/config/xmobar/xmobarrc b/config/xmobar/xmobarrc new file mode 100755 index 0000000..8d75d19 --- /dev/null +++ b/config/xmobar/xmobarrc @@ -0,0 +1,13 @@ +Config { + font = "xft:JetBrainsMono Nerd Font-12", + bgColor = "#282828", + fgColor = "#EBDBB2", + position = TopSize L 100 30, + commands = [ + Run XMonadLog, + Run Date "TIME %I:%M %p" "date" 10, + Run Com "sh" ["-c", "ip -4 addr show | grep inet | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1 | head -n1"] "localip" 50 + ], + alignSep = "}{", + template = " %XMonadLog%}{ NET %localip% : %date% " + } diff --git a/config/xmonad/xmonad.hs b/config/xmonad/xmonad.hs new file mode 100755 index 0000000..efec589 --- /dev/null +++ b/config/xmonad/xmonad.hs @@ -0,0 +1,51 @@ +import XMonad +import XMonad.Util.EZConfig (additionalKeysP) +import XMonad.Util.Run +import XMonad.Hooks.DynamicLog +import XMonad.Hooks.StatusBar +import XMonad.Hooks.ManageDocks +import XMonad.Layout.Spacing +import System.IO + +keybinds = + [ + ("M-", spawn "alacritty"), + ("M-r", spawn "rofi -show drun -config ~/.config/rofi/gruvbox.rasi"), + ("M-S-s", spawn "flameshot gui"), + ("M-s", kill) + ] + +cLayoutHook = avoidStruts $ spacing 5 $ layoutHook def + +cXMobarPP :: PP +cXMobarPP = def + { + ppCurrent = xmobarColor "#83A598" "" , + ppHidden = xmobarColor "#EBDBB2" "", + ppHiddenNoWindows = xmobarColor "#EBDBB2" "", + ppTitle = xmobarColor "#EBDBB2" "" . shorten 60 . wrap "[" "]", + ppLayout = \layout -> "" + } + +cXStatusBar = statusBarProp "xmobar" (pure cXMobarPP) + +logHook = dynamicLogWithPP $ def + { ppOutput = \s -> return (), + ppCurrent = id, + ppVisible = id, + ppHidden = id, + ppUrgent = id, + ppTitle = id + } + +main = xmonad . withSB (statusBarProp "xmobar -f 'xft:JetBrainsMono Nerd Font-14'" (pure cXMobarPP)) $ withEasySB cXStatusBar defToggleStrutsKey $ def + { + modMask = mod4Mask, + terminal = "alacritty", + borderWidth = 2, + normalBorderColor = "#282828", + focusedBorderColor = "#383838", + workspaces = map show [1..9], + layoutHook = cLayoutHook + } + `additionalKeysP` keybinds -- cgit v1.2.3