├── LICENSE ├── README.md ├── config ├── Kvantum │ ├── Dracula │ │ ├── Dracula.kvconfig │ │ └── Dracula.svg │ ├── Nordic-Darker │ │ ├── Nordic-Darker.kvconfig │ │ └── Nordic-Darker.svg │ ├── Relax-Light-Kvantum │ │ ├── Relax-Light-Kvantum.kvconfig │ │ └── Relax-Light-Kvantum.svg │ └── kvantum.kvconfig ├── fastfetch │ ├── ascii │ │ └── cat.txt │ ├── images │ │ ├── aisaka.icon │ │ ├── hypr.png │ │ └── ryuzaki.icon │ └── presets │ │ ├── ascii-art.jsonc │ │ ├── hypr.jsonc │ │ ├── minimal.jsonc │ │ ├── nyarch.jsonc │ │ ├── os.jsonc │ │ ├── simple.jsonc │ │ └── small-box.jsonc ├── fish │ ├── aliases.fish │ ├── change_style.sh │ ├── config.fish │ ├── ffstyle.sh │ ├── fish_variables │ ├── functions.fish │ └── starship │ │ ├── starship-gruvbox.toml │ │ ├── starship-os_logo.toml │ │ ├── starship-simple.toml │ │ └── starship-tokyonight.toml ├── gtk-3.0 │ ├── bookmarks │ ├── colors.css │ ├── gtk.css │ └── settings.ini ├── gtk-4.0 │ ├── colors.css │ ├── gtk.css │ └── settings.ini ├── hypr │ ├── .cache │ │ └── user.png │ ├── .keybinds │ ├── Wallpapers │ │ ├── Catppuccin │ │ │ ├── apex_octane.jpg │ │ │ ├── cabin.png │ │ │ ├── firewatch.jpg │ │ │ ├── forest_dark_winter.jpg │ │ │ └── space.png │ │ ├── Everforest │ │ │ ├── abandoned_buildings_2.png │ │ │ ├── fog_forest_alt_2.png │ │ │ └── foggy_valley_2.png │ │ ├── Gruvbox │ │ │ ├── 5m5kLI9.png │ │ │ ├── ALLqk82.png │ │ │ ├── among-us.jpg │ │ │ ├── dead-robot.jpg │ │ │ ├── gruvbox_spac.jpg │ │ │ └── wall.jpg │ │ ├── Neon │ │ │ ├── guts-neon-iconic-5120x2880-21415.png │ │ │ ├── kakashi-hatake-ai-7680x4320-18785.jpg │ │ │ └── okarun-dandadan-5120x2880-19863.png │ │ └── TokyoNight │ │ │ ├── 7674881.jpg │ │ │ ├── aw383-wallpaper.cam.jpg │ │ │ ├── edger_lucy_neon.jpg │ │ │ ├── lowpoly_street.png │ │ │ ├── street.jpg │ │ │ └── un174-wallpaper.cam.jpg │ ├── assets │ │ ├── Catppuccin.png │ │ ├── Everforest.png │ │ ├── Gruvbox.png │ │ ├── Neon.png │ │ └── TokyoNight.png │ ├── confs │ │ ├── animations.conf │ │ ├── configs.conf │ │ ├── decoration.conf │ │ ├── decoration.conf.back │ │ ├── env.conf │ │ ├── keybinds.conf │ │ ├── monitor-vbox.conf │ │ ├── monitor.conf │ │ ├── settings.conf │ │ ├── startup.conf │ │ ├── tags.conf │ │ ├── themes │ │ │ ├── Catppuccin.conf │ │ │ ├── Everforest.conf │ │ │ ├── Gruvbox.conf │ │ │ ├── Neon.conf │ │ │ └── TokyoNight.conf │ │ └── windowrules.conf │ ├── hypridle.conf │ ├── hyprland.conf │ ├── icons │ │ ├── done.png │ │ ├── error.png │ │ ├── monitor.png │ │ ├── update.png │ │ └── warning.png │ ├── lockscreens │ │ ├── hyprlock-1.conf │ │ ├── hyprlock-2.conf │ │ └── hyprlock-3.conf │ ├── pyprland.toml │ ├── scripts │ │ ├── Refresh.sh │ │ ├── Wallpaper.sh │ │ ├── WallpaperSelect.sh │ │ ├── Weather.sh │ │ ├── add_user.sh │ │ ├── apps.sh │ │ ├── brightness.sh │ │ ├── browser.sh │ │ ├── cava.sh │ │ ├── change_wallpaper_engine.sh │ │ ├── cliphist.sh │ │ ├── default_browser.sh │ │ ├── edit-dotfiles.sh │ │ ├── hyprconf-v2.sh │ │ ├── hyprlock.sh │ │ ├── keybinds.sh │ │ ├── menu.sh │ │ ├── monitor.sh │ │ ├── nightlight.sh │ │ ├── notification.sh │ │ ├── pkgupdate.sh │ │ ├── polkit.sh │ │ ├── power.sh │ │ ├── powermenu.sh │ │ ├── powermenu_theme_select.sh │ │ ├── rofi-emoji.sh │ │ ├── rofi_theme.sh │ │ ├── screenshot.sh │ │ ├── sddm_theme.sh │ │ ├── settings.sh │ │ ├── startup.sh │ │ ├── system.sh │ │ ├── systemupdate.sh │ │ ├── theme_select.sh │ │ ├── uninstall.sh │ │ ├── uptime.sh │ │ ├── volumecontrol.sh │ │ ├── wallcache.sh │ │ ├── waybar-layout.sh │ │ └── waybar-reload.sh │ └── sounds │ │ ├── error.wav │ │ ├── poweroff.mp3 │ │ ├── screen-capture.oga │ │ ├── system-startup.wav │ │ └── update.wav ├── kitty │ ├── colors │ │ ├── Catppuccin.conf │ │ ├── Everforest.conf │ │ ├── Gruvbox.conf │ │ ├── Neon.conf │ │ └── TokyoNight.conf │ ├── kitty.conf │ └── theme.conf ├── nvim │ ├── README.md │ ├── init.lua │ ├── keymaps.md │ ├── lazy-lock.json │ └── lua │ │ └── shell-ninja │ │ ├── core │ │ ├── init.lua │ │ ├── keymaps.lua │ │ └── options.lua │ │ ├── lazy.lua │ │ └── plugins │ │ ├── alpha.lua │ │ ├── auto-session.lua │ │ ├── autopairs.lua │ │ ├── blink.lua │ │ ├── bufferline.lua │ │ ├── color-hithlighter.lua │ │ ├── colorscheme.lua │ │ ├── comment.lua │ │ ├── dressing.lua │ │ ├── formatting.lua │ │ ├── gitsigns.lua │ │ ├── indent-blankline.lua │ │ ├── init.lua │ │ ├── lazygit.lua │ │ ├── linting.lua │ │ ├── lsp │ │ ├── lspconfig.lua │ │ └── mason.lua │ │ ├── lualine.lua │ │ ├── nvim-cmp.lua │ │ ├── nvim-notify.lua │ │ ├── nvim-tree.lua │ │ ├── nvim-treesitter-text-objects.lua │ │ ├── substitute.lua │ │ ├── surround.lua │ │ ├── telescope.lua │ │ ├── todo-comments.lua │ │ ├── toggleterminal.lua │ │ ├── treesitter.lua │ │ ├── trouble.lua │ │ ├── vim-maximizer.lua │ │ └── which-key.lua ├── nwg-look │ └── config ├── qt5ct │ └── qt5ct.conf ├── qt6ct │ └── qt6ct.conf ├── rofi │ ├── assets │ │ ├── style-1.png │ │ ├── style-2.png │ │ └── style-3.png │ ├── colors │ │ ├── Catppuccin.rasi │ │ ├── Everforest.rasi │ │ ├── Gruvbox.rasi │ │ ├── Neon.rasi │ │ └── TokyoNight.rasi │ ├── menu │ │ ├── menu.rasi │ │ ├── style-1.rasi │ │ ├── style-2.rasi │ │ └── style-3.rasi │ ├── power_option │ │ ├── fullscreen.rasi │ │ └── small.rasi │ ├── rofi-confirm.rasi │ ├── rofi-vars.rasi │ └── themes │ │ ├── README.md │ │ ├── rofi-clipboard.rasi │ │ ├── rofi-colors.rasi │ │ ├── rofi-edit-dots.rasi │ │ ├── rofi-emoji.rasi │ │ ├── rofi-hyprlock-theme.rasi │ │ ├── rofi-keybinds.rasi │ │ ├── rofi-powertheme.rasi │ │ ├── rofi-screenshots.rasi │ │ ├── rofi-select_theme.rasi │ │ ├── rofi-theme-select.rasi │ │ ├── rofi-wall-2.rasi │ │ ├── rofi-wall-engine.rasi │ │ ├── rofi-wall.rasi │ │ ├── rofi-waybar.rasi │ │ └── rofi-window.rasi ├── swaync │ ├── colors.css │ ├── colors │ │ ├── Catppuccin.css │ │ ├── Everforest.css │ │ ├── Gruvbox.css │ │ ├── Neon.css │ │ └── TokyoNight.css │ ├── config.json │ ├── icons │ │ ├── brightness │ │ │ ├── brightness-100.png │ │ │ ├── brightness-20.png │ │ │ ├── brightness-40.png │ │ │ ├── brightness-60.png │ │ │ └── brightness-80.png │ │ └── vol │ │ │ ├── muted-mic.svg │ │ │ ├── muted-speaker.svg │ │ │ ├── unmuted-mic.svg │ │ │ ├── unmuted-speaker.svg │ │ │ ├── vol-0.svg │ │ │ ├── vol-10.svg │ │ │ ├── vol-100.svg │ │ │ ├── vol-15.svg │ │ │ ├── vol-20.svg │ │ │ ├── vol-25.svg │ │ │ ├── vol-30.svg │ │ │ ├── vol-35.svg │ │ │ ├── vol-40.svg │ │ │ ├── vol-45.svg │ │ │ ├── vol-5.svg │ │ │ ├── vol-50.svg │ │ │ ├── vol-55.svg │ │ │ ├── vol-60.svg │ │ │ ├── vol-65.svg │ │ │ ├── vol-70.svg │ │ │ ├── vol-75.svg │ │ │ ├── vol-80.svg │ │ │ ├── vol-85.svg │ │ │ ├── vol-90.svg │ │ │ └── vol-95.svg │ └── style.css ├── waybar │ ├── README.md │ ├── colors │ │ ├── Catppuccin.css │ │ ├── Everforest.css │ │ ├── Gruvbox.css │ │ ├── Neon.css │ │ └── TokyoNight.css │ ├── config │ ├── configs │ │ ├── bar-left │ │ ├── catppuccin-top │ │ ├── dual-tone-top │ │ ├── full-top │ │ ├── rounded-top │ │ └── skew-left │ ├── modules │ │ ├── modules-catppuccin.jsonc │ │ ├── modules-custom.jsonc │ │ ├── modules-dual-tone.jsonc │ │ ├── modules-groups.jsonc │ │ ├── modules-main.jsonc │ │ └── modules-virt.jsonc │ ├── style.css │ └── style │ │ ├── bar-left.css │ │ ├── catppuccin-top.css │ │ ├── dual-tone-top.css │ │ ├── full-top.css │ │ ├── mocha.css │ │ ├── rounded-top.css │ │ ├── skew-left.css │ │ └── theme.css ├── xfce4 │ ├── helpers.rc │ └── xfconf │ │ └── xfce-perchannel-xml │ │ └── thunar.xml └── yazi │ ├── keymap.toml │ ├── theme.toml │ └── yazi.toml ├── extras ├── fonts │ ├── GrapeNuts-Regular.ttf │ ├── Icomoon-Feather.ttf │ ├── Iosevka-Nerd-Font-Complete.ttf │ ├── JetBrains-Mono-Nerd-Font-Complete.ttf │ ├── Montserrat-Bold.ttf │ ├── Montserrat-BoldItalic.ttf │ └── Pacifico-Regular.ttf └── hyprland.desktop └── hyprconf-v2.sh /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Shell Ninja 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /config/Kvantum/kvantum.kvconfig: -------------------------------------------------------------------------------- 1 | [General] 2 | theme=Nordic-Darker 3 | -------------------------------------------------------------------------------- /config/fastfetch/ascii/cat.txt: -------------------------------------------------------------------------------- 1 | /\___/\ 2 | ) ( 3 | =\ /= 4 | ) ( 5 | / \ 6 | ) ( 7 | / \ 8 | \ / 9 | \__ __/ 10 | )) 11 | // 12 | (( 13 | \) 14 | 15 | 16 | -------------------------------------------------------------------------------- /config/fastfetch/images/aisaka.icon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/fastfetch/images/aisaka.icon -------------------------------------------------------------------------------- /config/fastfetch/images/hypr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/fastfetch/images/hypr.png -------------------------------------------------------------------------------- /config/fastfetch/images/ryuzaki.icon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/fastfetch/images/ryuzaki.icon -------------------------------------------------------------------------------- /config/fastfetch/presets/ascii-art.jsonc: -------------------------------------------------------------------------------- 1 | // _____ _____ _____ _____ _____ _____ _____ _____ _____ 2 | // | __| _ | __|_ _| __| __|_ _| | | | 3 | // | __| |__ | | | | __| __| | | | --| | 4 | // |__| |__|__|_____| |_| |__| |_____| |_| |_____|__|__| ASCII-ART 5 | // 6 | // by Bina 7 | 8 | 9 | { 10 | "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 11 | "logo": { 12 | "source": "~/.local/share/fastfetch/ascii/cat.txt", 13 | "padding": { 14 | "top": 2, 15 | "right": 6 16 | } 17 | }, 18 | "display": { 19 | "separator": " • " 20 | }, 21 | "modules": [ 22 | "break", 23 | "break", 24 | { 25 | "type": "title", 26 | "color": { 27 | "user": "32", // = color2 28 | "at": "37", 29 | "host": "32" 30 | } 31 | }, 32 | "break", 33 | { 34 | "type": "os", 35 | "key": "distribution ", 36 | "keyColor": "33", 37 | }, 38 | { 39 | "type": "kernel", 40 | "key": "linux kernel ", 41 | "keyColor": "33", 42 | }, 43 | { 44 | "type": "packages", 45 | "format": "{} (pacman)", 46 | "key": "packages ", 47 | "keyColor": "33", 48 | }, 49 | { 50 | "type": "shell", 51 | "key": "unix shell ", 52 | "keyColor": "33", 53 | }, 54 | { 55 | "type": "terminal", 56 | "key": "terminal ", 57 | "keyColor": "33", 58 | }, 59 | { 60 | "type": "wm", 61 | "format": "{} ({3})", 62 | "key": "window manager ", 63 | "keyColor": "33", 64 | }, 65 | "break", 66 | { 67 | "type": "colors", 68 | "symbol": "circle", 69 | }, 70 | "break", 71 | "break", 72 | ] 73 | } 74 | -------------------------------------------------------------------------------- /config/fastfetch/presets/hypr.jsonc: -------------------------------------------------------------------------------- 1 | // _____ _____ _____ _____ _____ _____ _____ _____ _____ 2 | // | __| _ | __|_ _| __| __|_ _| | | | 3 | // | __| |__ | | | | __| __| | | | --| | 4 | // |__| |__|__|_____| |_| |__| |_____| |_| |_____|__|__| HYPRLAND 5 | // 6 | // by Bina 7 | 8 | 9 | { 10 | "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 11 | "logo": { 12 | "source": "~/.local/share/fastfetch/images/hypr.png", 13 | "type": "kitty", 14 | "height": 18, 15 | "padding": { 16 | "top": 2 17 | } 18 | }, 19 | "display": { 20 | "separator": " " 21 | }, 22 | "modules": [ 23 | "break", 24 | "break", 25 | "break", 26 | { 27 | "type": "custom", 28 | "format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m" 29 | }, 30 | "break", 31 | { 32 | "type": "title", 33 | "keyWidth": 10 34 | }, 35 | "break", 36 | { 37 | "type": "os", 38 | "key": " ", 39 | "keyColor": "34", // = color4 40 | }, 41 | { 42 | "type": "kernel", 43 | "key": " ", 44 | "keyColor": "34", 45 | }, 46 | { 47 | "type": "packages", 48 | "format": "{} (pacman)", 49 | "key": " ", 50 | "keyColor": "34", 51 | }, 52 | { 53 | "type": "shell", 54 | "key": " ", 55 | "keyColor": "34", 56 | }, 57 | { 58 | "type": "terminal", 59 | "key": " ", 60 | "keyColor": "34", 61 | }, 62 | { 63 | "type": "wm", 64 | "key": " ", 65 | "keyColor": "34", 66 | }, 67 | { 68 | "type": "cursor", 69 | "key": " ", 70 | "keyColor": "34", 71 | }, 72 | { 73 | "type": "terminalfont", 74 | "key": " ", 75 | "keyColor": "34", 76 | }, 77 | { 78 | "type": "uptime", 79 | "key": " ", 80 | "keyColor": "34", 81 | }, 82 | { 83 | "type": "datetime", 84 | "format": "{1}-{3}-{11}", 85 | "key": " ", 86 | "keyColor": "34", 87 | }, 88 | { 89 | "type": "media", 90 | "key": "󰝚 ", 91 | "keyColor": "34", 92 | }, 93 | { 94 | "type": "player", 95 | "key": " ", 96 | "keyColor": "34", 97 | }, 98 | "break", 99 | { 100 | "type": "custom", 101 | "format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m" 102 | }, 103 | "break", 104 | "break", 105 | ] 106 | } 107 | -------------------------------------------------------------------------------- /config/fastfetch/presets/minimal.jsonc: -------------------------------------------------------------------------------- 1 | // _____ _____ _____ _____ _____ _____ _____ _____ _____ 2 | // | __| _ | __|_ _| __| __|_ _| | | | 3 | // | __| |__ | | | | __| __| | | | --| | 4 | // |__| |__|__|_____| |_| |__| |_____| |_| |_____|__|__| MINIMAL 5 | // 6 | // by Bina 7 | 8 | 9 | { 10 | "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 11 | "logo": { 12 | "source": "~/.local/share/fastfetch/images/ryuzaki.icon", 13 | "type": "kitty", 14 | "height": 11, 15 | "padding": { 16 | "top": 1, 17 | "left": 2 18 | } 19 | }, 20 | "display": { 21 | "separator": "  " 22 | }, 23 | "modules": [ 24 | "break", 25 | { 26 | "type": "custom", 27 | "format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m " 28 | }, 29 | "break", 30 | { 31 | "type": "os", 32 | "key": " ", 33 | "keyColor": "31", // = color1 34 | }, 35 | { 36 | "type": "kernel", 37 | "key": " ", 38 | "keyColor": "32", 39 | }, 40 | { 41 | "type": "packages", 42 | "format": "{} (pacman)", 43 | "key": " ", 44 | "keyColor": "33", 45 | }, 46 | { 47 | "type": "shell", 48 | "key": " ", 49 | "keyColor": "34", 50 | }, 51 | { 52 | "type": "terminal", 53 | "key": " ", 54 | "keyColor": "35", 55 | }, 56 | { 57 | "type": "wm", 58 | "key": " ", 59 | "keyColor": "36", 60 | }, 61 | "break", 62 | { 63 | "type": "custom", 64 | "format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m " 65 | }, 66 | "break", 67 | ] 68 | } 69 | -------------------------------------------------------------------------------- /config/fastfetch/presets/nyarch.jsonc: -------------------------------------------------------------------------------- 1 | // _____ _____ _____ _____ _____ _____ _____ _____ _____ 2 | // | __| _ | __|_ _| __| __|_ _| | | | 3 | // | __| |__ | | | | __| __| | | | --| | 4 | // |__| |__|__|_____| |_| |__| |_____| |_| |_____|__|__| NYARCH 5 | // 6 | // by Bina 7 | 8 | 9 | { 10 | "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 11 | "logo": { 12 | "source": "~/.config/fastfetch/images/nyarch.png", 13 | "type": "kitty", 14 | "height": 14, 15 | "padding": { 16 | "top": 1 17 | } 18 | }, 19 | "display": { 20 | "separator": " " 21 | }, 22 | "modules": [ 23 | "break", 24 | "break", 25 | "break", 26 | { 27 | "type": "title", 28 | "keyWidth": 10 29 | }, 30 | { 31 | "type": "custom", 32 | "format": "~~~~~~~~~~~~~~~~~~~~~~~~~~", 33 | }, 34 | { 35 | "type": "os", 36 | "key": "~ ", 37 | "keyColor": "34", // = color4 38 | }, 39 | { 40 | "type": "kernel", 41 | "key": "~ ", 42 | "keyColor": "34", 43 | }, 44 | { 45 | "type": "packages", 46 | "format": "{} (pacman)", 47 | "key": "~ ", 48 | "keyColor": "34", 49 | }, 50 | { 51 | "type": "shell", 52 | "key": "~ ", 53 | "keyColor": "34", 54 | }, 55 | { 56 | "type": "terminal", 57 | "key": "~ ", 58 | "keyColor": "34", 59 | }, 60 | { 61 | "type": "wm", 62 | "key": "~ ", 63 | "keyColor": "34", 64 | }, 65 | { 66 | "type": "uptime", 67 | "key": "~ ", 68 | "keyColor": "34", 69 | }, 70 | { 71 | "type": "media", 72 | "key": "~ ", 73 | "keyColor": "34", 74 | }, 75 | { 76 | "type": "player", 77 | "key": "~ ", 78 | "keyColor": "34", 79 | }, 80 | "break", 81 | ] 82 | } 83 | -------------------------------------------------------------------------------- /config/fastfetch/presets/os.jsonc: -------------------------------------------------------------------------------- 1 | // _____ _____ _____ _____ _____ _____ _____ _____ _____ 2 | // | __| _ | __|_ _| __| __|_ _| | | | 3 | // | __| |__ | | | | __| __| | | | --| | 4 | // |__| |__|__|_____| |_| |__| |_____| |_| |_____|__|__| OS 5 | // 6 | // by Bina 7 | 8 | 9 | { 10 | "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 11 | "logo": { 12 | "source": "arch_small", // search for logos: fastfetch --list-logos or --print-logos 13 | "padding": { 14 | "top": 1 15 | }, 16 | }, 17 | "display": { 18 | "separator": " " 19 | }, 20 | "modules": [ 21 | "break", 22 | "title", 23 | { 24 | "type": "os", 25 | "key": "os ", 26 | "keyColor": "33", // = color3 27 | }, 28 | { 29 | "type": "kernel", 30 | "key": "kernel", 31 | "keyColor": "33", 32 | }, 33 | { 34 | "type": "host", 35 | "format": "{5} {1}", 36 | "key": "host ", 37 | "keyColor": "33", 38 | }, 39 | { 40 | "type": "packages", 41 | "format": "{} (pacman)", 42 | "key": "pkgs ", 43 | "keyColor": "33", 44 | }, 45 | { 46 | "type": "uptime", 47 | "format": "{2}h {3}m", 48 | "key": "uptime", 49 | "keyColor": "33", 50 | }, 51 | { 52 | "type": "memory", 53 | "key": "memory", 54 | "keyColor": "33", 55 | }, 56 | "break", 57 | ] 58 | } 59 | -------------------------------------------------------------------------------- /config/fastfetch/presets/small-box.jsonc: -------------------------------------------------------------------------------- 1 | // Inspired by Catnap 2 | { 3 | "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 4 | "logo": { 5 | "type": "small", 6 | "padding": { 7 | "top": 2, 8 | "right": 2 9 | } 10 | }, 11 | "display": { 12 | "separator": " ", 13 | "key": { 14 | "width": 16 15 | } 16 | }, 17 | "modules": [ 18 | { 19 | "key": "╭───────────╮", 20 | "type": "custom" 21 | }, 22 | { 23 | // draw borders first to make colors of left and right border consistant 24 | "key": "│ │\u001b[11D{#31} user", 25 | "type": "title", 26 | "format": "{1}" 27 | }, 28 | { 29 | "key": "├───────────┤", 30 | "type": "custom" 31 | }, 32 | // { 33 | // "key": "│ │\u001b[11D{#32}󰇅 hname", 34 | // "type": "title", 35 | // "format": "{2}" 36 | // }, 37 | // { 38 | // "key": "│ │\u001b[11D{#33}󰅐 uptime", 39 | // "type": "uptime" 40 | // }, 41 | { 42 | "key": "│ │\u001b[11D{#34}󰟾 distro", 43 | "type": "os" 44 | }, 45 | { 46 | "key": "│ │\u001b[11D{#35} kernel", 47 | "type": "kernel" 48 | }, 49 | { 50 | "key": "│ │\u001b[11D{#36}󰇄 desktop", 51 | "type": "de" 52 | }, 53 | { 54 | "key": "│ │\u001b[11D{#31} term", 55 | "type": "terminal" 56 | }, 57 | { 58 | "key": "│ │\u001b[11D{#31} wm", 59 | "type": "wm" 60 | }, 61 | { 62 | "key": "│ │\u001b[11D{#32} shell", 63 | "type": "shell" 64 | }, 65 | // { 66 | // "key": "│ │\u001b[11D{#33}󰍛 cpu", 67 | // "type": "cpu", 68 | // "showPeCoreCount": true 69 | // }, 70 | { 71 | "key": "│ │\u001b[11D{#34}󰉉 disk", 72 | "type": "disk", 73 | "folders": "/" 74 | }, 75 | { 76 | "key": "│ │\u001b[11D{#35} memory", 77 | "type": "memory" 78 | }, 79 | // { 80 | // "key": "│ │\u001b[11D{#36}󰩟 network", 81 | // "type": "localip", 82 | // "format": "{1} ({4})" 83 | // }, 84 | // { 85 | // "key": "├───────────┤", 86 | // "type": "custom" 87 | // }, 88 | // { 89 | // "key": "│ │\u001b[11D{#39} colors", 90 | // "type": "colors", 91 | // "symbol": "circle" 92 | // }, 93 | { 94 | "key": "╰───────────╯", 95 | "type": "custom" 96 | } 97 | ] 98 | } -------------------------------------------------------------------------------- /config/fish/change_style.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # change starship style. 4 | fish_config="$HOME/.config/fish/config.fish" 5 | starship_dir="$HOME/.config/fish/starship" 6 | styles=($(ls "$starship_dir" | awk -F '[-.]' '{print $2}')) 7 | 8 | style() { 9 | choose_style() { 10 | echo -e "=> Choose a style..." 11 | local i=1 12 | for style in "${styles[@]}"; do 13 | echo -e " $i. $style" 14 | ((i ++)) 15 | done 16 | } 17 | 18 | choose_style 19 | read -p "Choose: " stl 20 | 21 | if [[ "$stl" -gt 0 && "$stl" -le "${#styles[@]}" ]]; then 22 | __selected="${styles[$((stl - 1))]}" 23 | __prompt="starship-${__selected}.toml" 24 | echo -e "-> Setting prompt: $__selected" 25 | 26 | # sed -i "s|starship/starship-[^.]*.toml|starship/$__prompt/g" "$fish_config" 27 | sed -i "s|starship/starship-[^.]*.toml|starship/$__prompt|g" "$fish_config" 28 | 29 | echo -e "-> Now type 'src'. It will source fish config." 30 | fi 31 | } 32 | 33 | style 34 | -------------------------------------------------------------------------------- /config/fish/config.fish: -------------------------------------------------------------------------------- 1 | # disable fish greeting and vi mode 2 | set fish_greeting 3 | fish_vi_key_bindings 4 | 5 | #===============================================# 6 | # enable starship prompt 7 | #===============================================# 8 | set --export STARSHIP_CONFIG ~/.config/fish/starship/starship-simple.toml 9 | 10 | if status is-interactive 11 | function starship_transient_prompt_func 12 | starship module character 13 | end 14 | starship init fish | source 15 | enable_transience 16 | end 17 | 18 | 19 | #===============================================# 20 | # aliases and functions 21 | #===============================================# 22 | source ~/.config/fish/aliases.fish 23 | source ~/.config/fish/functions.fish 24 | 25 | 26 | #===============================================# 27 | # zoxide and thefuck 28 | #===============================================# 29 | zoxide init fish | source 30 | thefuck --alias | source 31 | 32 | 33 | if command -v fastfetch > /dev/null 34 | # Only run fastfetch if we're in an interactive shell 35 | if status --is-interactive 36 | if test -d "$HOME/.local/share/fastfetch" 37 | set ffconfig minimal 38 | fastfetch --config "$ffconfig" 39 | else 40 | fastfetch 41 | end 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /config/fish/ffstyle.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # change fastfetch style 4 | 5 | ffstyle() { 6 | preferredDir="$HOME/.local/share/fastfetch/presets" 7 | 8 | if [[ ! -d "$preferredDir" ]]; then 9 | exit 0 10 | fi 11 | 12 | presets=() 13 | 14 | for preset in "$preferredDir"/*.jsonc; do 15 | [[ -f "$preset" ]] || continue # Skip if no matching file 16 | presets+=("${preset##*/}") # Extract filename 17 | done 18 | 19 | # Remove .jsonc extension from all entries 20 | presets=("${presets[@]%.jsonc}") 21 | 22 | echo "-> Choose Fastfetch style you want" 23 | 24 | local i=1 25 | for prst in "${presets[@]}"; do 26 | echo -e "$i. $prst" 27 | ((i++)) 28 | done 29 | 30 | read -p "Select: " stl 31 | 32 | if [[ "$stl" -gt 0 && "$stl" -le "${#presets[@]}" ]]; then 33 | __selected="${presets[$((stl - 1))]}" 34 | echo "Setting $__selected as fastfetch style..." 35 | sed -i "s|ffconfig .*$|ffconfig $__selected|g" "$HOME/.config/fish/config.fish" 36 | fi 37 | 38 | } 39 | 40 | ffstyle 41 | -------------------------------------------------------------------------------- /config/fish/fish_variables: -------------------------------------------------------------------------------- 1 | # This file contains fish universal variable definitions. 2 | # VERSION: 3.0 3 | SETUVAR --export STARSHIP_CONFIG:/home/shell\x2dninja/\x2econfig/fish/starship/starship\x2dsimple\x2etoml 4 | SETUVAR __fish_initialized:3800 5 | SETUVAR fish_color_autosuggestion:brblack 6 | SETUVAR fish_color_cancel:\x2dr 7 | SETUVAR fish_color_command:blue 8 | SETUVAR fish_color_comment:red 9 | SETUVAR fish_color_cwd:green 10 | SETUVAR fish_color_cwd_root:red 11 | SETUVAR fish_color_end:green 12 | SETUVAR fish_color_error:brred 13 | SETUVAR fish_color_escape:brcyan 14 | SETUVAR fish_color_history_current:\x2d\x2dbold 15 | SETUVAR fish_color_host:normal 16 | SETUVAR fish_color_host_remote:yellow 17 | SETUVAR fish_color_normal:normal 18 | SETUVAR fish_color_operator:brcyan 19 | SETUVAR fish_color_param:cyan 20 | SETUVAR fish_color_quote:yellow 21 | SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold 22 | SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack 23 | SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack 24 | SETUVAR fish_color_status:red 25 | SETUVAR fish_color_user:brgreen 26 | SETUVAR fish_color_valid_path:\x2d\x2dunderline 27 | SETUVAR fish_key_bindings:fish_vi_key_bindings 28 | SETUVAR fish_pager_color_completion:normal 29 | SETUVAR fish_pager_color_description:yellow\x1e\x2di 30 | SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline 31 | SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan 32 | SETUVAR fish_pager_color_selected_background:\x2dr 33 | -------------------------------------------------------------------------------- /config/fish/starship/starship-simple.toml: -------------------------------------------------------------------------------- 1 | format = """ 2 | $directory\ 3 | $fill\ 4 | $git_branch\ 5 | $git_status\ 6 | $git_metrics\ 7 | $python\ 8 | $lua\ 9 | $nodejs\ 10 | $cmd_duration\ 11 | $line_break\ 12 | $character""" 13 | 14 | # add_newline = true 15 | palette = 'catppuccin_mocha' 16 | 17 | [username] 18 | style_user = 'bold green' 19 | style_root = 'bold red' 20 | format = '[$user]($style) ' 21 | disabled = false 22 | show_always = true 23 | 24 | [hostname] 25 | style = 'bold blue' 26 | ssh_only = false 27 | format = 'in [$hostname]($style) ' 28 | 29 | [character] 30 | success_symbol = '[❯](bold green)' 31 | error_symbol = '[❯](bold red)' 32 | 33 | [directory] 34 | style = 'bold fg:peach' 35 | format = '[$path ]($style)' 36 | truncation_length = 3 37 | truncation_symbol = '../' 38 | truncate_to_repo = false 39 | 40 | [directory.substitutions] 41 | 'Documents' = '󰈙' 42 | 'Downloads' = ' ' 43 | 'Music' = ' ' 44 | 'Pictures' = ' ' 45 | 46 | [git_branch] 47 | style = 'italic fg:maroon' 48 | symbol = ' ' 49 | format = '[on](flamingo) [$symbol$branch ]($style)' 50 | 51 | [git_status] 52 | style = 'fg:green' 53 | format = '([$all_status$ahead_behind]($style) )' 54 | 55 | [git_metrics] 56 | added_style = 'bold green' 57 | deleted_style = 'bold red' 58 | format = '[+$added]($added_style)/[-deleted]($deleted_style)' 59 | 60 | [fill] 61 | symbol = ' ' 62 | 63 | [python] 64 | style = 'blue' 65 | symbol = ' ' 66 | format = '[${symbol}${pyenv_prefix}(${version} )(\($virtualenv\) )]($style)' 67 | pyenv_version_name = true 68 | python_binary = 'python3' 69 | pyenv_prefix = '' 70 | 71 | [lua] 72 | style = 'peach' 73 | format = '[ $version]($style)' 74 | 75 | [nodejs] 76 | style = 'green' 77 | format = '[ $version]($style)' 78 | 79 | [shell] 80 | bash_indicator = ' ' 81 | fish_indicator = '󰈺 ' 82 | zsh_indicator = '' 83 | powershell_indicator = '_' 84 | unknown_indicator = 'mystery shell' 85 | style = 'cyan bold' 86 | disabled = false 87 | 88 | [cmd_duration] 89 | min_time = 500 90 | format = '  [$duration](bold italic dimmed rosewater)' 91 | 92 | [palettes.nord] 93 | dark_blue = '#5E81AC' 94 | blue = '#81A1C1' 95 | teal = '#88C0D0' 96 | red = '#BF616A' 97 | orange = '#D08770' 98 | green = '#A3BE8C' 99 | yellow = '#EBCB8B' 100 | purple = '#B48EAD' 101 | gray = '#434C5E' 102 | black = '#2E3440' 103 | white='#D8DEE9' 104 | 105 | [palettes.onedark] 106 | dark_blue='#61afef' 107 | blue='#56b6c2' 108 | red='#e06c75' 109 | green='#98c379' 110 | purple='#c678dd' 111 | cyan='#56b6c2' 112 | orange='#be5046' 113 | yellow='#e5c07b' 114 | gray='#828997' 115 | white ='#abb2bf' 116 | black='#2c323c' 117 | 118 | [palettes.catppuccin_mocha] 119 | rosewater = "#f5e0dc" 120 | flamingo = "#f2cdcd" 121 | pink = "#f5c2e7" 122 | mauve = "#cba6f7" 123 | red = "#f38ba8" 124 | maroon = "#eba0ac" 125 | peach = "#fab387" 126 | yellow = "#f9e2af" 127 | green = "#a6e3a1" 128 | teal = "#94e2d5" 129 | sky = "#89dceb" 130 | sapphire = "#74c7ec" 131 | blue = "#89b4fa" 132 | lavender = "#b4befe" 133 | text = "#cdd6f4" 134 | subtext1 = "#bac2de" 135 | subtext0 = "#a6adc8" 136 | overlay2 = "#9399b2" 137 | overlay1 = "#7f849c" 138 | overlay0 = "#6c7086" 139 | surface2 = "#585b70" 140 | surface1 = "#45475a" 141 | surface0 = "#313244" 142 | base = "#1e1e2e" 143 | mantle = "#181825" 144 | crust = "#11111b" 145 | -------------------------------------------------------------------------------- /config/fish/starship/starship-tokyonight.toml: -------------------------------------------------------------------------------- 1 | format = """ 2 | [░▒▓](#a3aed2)\ 3 | $os\ 4 | [](bg:#769ff0 fg:#a3aed2)\ 5 | $directory\ 6 | [](fg:#769ff0 bg:#394260)\ 7 | $git_branch\ 8 | $git_status\ 9 | [](fg:#394260 bg:#212736)\ 10 | $nodejs\ 11 | $rust\ 12 | $golang\ 13 | $php\ 14 | $java\ 15 | $julia\ 16 | $ocaml\ 17 | $zig\ 18 | $lua\ 19 | $python\ 20 | $ruby\ 21 | $dart\ 22 | $c\ 23 | [](fg:#212736 bg:#1d2230)\ 24 | $time\ 25 | [ ](fg:#1d2230)\ 26 | \n$character""" 27 | 28 | [directory] 29 | style = "fg:#e3e5e5 bg:#769ff0" 30 | format = "[ $path ]($style)" 31 | truncation_length = 3 32 | truncation_symbol = "…/" 33 | 34 | [directory.substitutions] 35 | "Documents" = "󰈙 " 36 | "Downloads" = " " 37 | "Music" = " " 38 | "Pictures" = " " 39 | 40 | [os] 41 | disabled = false 42 | style = 'bg:#a3aed2 fg:#090c0c' 43 | 44 | [os.symbols] 45 | Windows = " 󰍲 " 46 | Ubuntu = " 󰕈 " 47 | SUSE = "  " 48 | Raspbian = " 󰐿 " 49 | Mint = " 󰣭 " 50 | Macos = " 󰀵 " 51 | Manjaro = "  " 52 | Linux = " 󰌽 " 53 | Gentoo = " 󰣨 " 54 | Fedora = " 󰣛 " 55 | Alpine = "  " 56 | Amazon = "  " 57 | Android = "  " 58 | Arch = " 󰣇 " 59 | Artix = " 󰣇 " 60 | CentOS = "  " 61 | Debian = " 󰣚 " 62 | Redhat = " 󱄛 " 63 | RedHatEnterprise = " 󱄛 " 64 | Pop = "  " 65 | 66 | [git_branch] 67 | symbol = "" 68 | style = "bg:#394260" 69 | format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)' 70 | 71 | [git_status] 72 | style = "bg:#394260" 73 | format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)' 74 | 75 | [nodejs] 76 | symbol = "" 77 | style = "bg:#212736" 78 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 79 | 80 | [rust] 81 | symbol = "" 82 | style = "bg:#212736" 83 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 84 | 85 | [golang] 86 | symbol = "" 87 | style = "bg:#212736" 88 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 89 | 90 | [php] 91 | symbol = "" 92 | style = "bg:#212736" 93 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 94 | 95 | [java] 96 | symbol = "" 97 | style = "bg:#212736" 98 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 99 | 100 | [julia] 101 | symbol = "" 102 | style = "bg:#212736" 103 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 104 | 105 | [ocaml] 106 | symbol = "" 107 | style = "bg:#212736" 108 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 109 | 110 | [zig] 111 | symbol = "" 112 | style = "bg:#212736" 113 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 114 | 115 | [lua] 116 | symbol = "" 117 | style = "bg:#212736" 118 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 119 | 120 | [python] 121 | symbol = "" 122 | style = "bg:#212736" 123 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 124 | 125 | [ruby] 126 | symbol = "" 127 | style = "bg:#212736" 128 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 129 | 130 | [dart] 131 | symbol = "" 132 | style = "bg:#212736" 133 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 134 | 135 | [c] 136 | symbol = "󰬊" 137 | style = "bg:#212736" 138 | format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' 139 | 140 | [time] 141 | disabled = false 142 | time_format = "%R" # Hour:Minute Format 143 | style = "bg:#1d2230" 144 | format = '[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)' 145 | -------------------------------------------------------------------------------- /config/gtk-3.0/bookmarks: -------------------------------------------------------------------------------- 1 | file:///main 2 | -------------------------------------------------------------------------------- /config/gtk-3.0/gtk.css: -------------------------------------------------------------------------------- 1 | @import 'colors.css'; -------------------------------------------------------------------------------- /config/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name=Dracula 3 | gtk-icon-theme-name=Tela-circle-dracula 4 | gtk-font-name=Cantarell 11 5 | gtk-cursor-theme-name=Bibata-Modern-Ice 6 | gtk-cursor-theme-size=24 7 | gtk-toolbar-style=GTK_TOOLBAR_BOTH 8 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 9 | gtk-button-images=1 10 | gtk-menu-images=1 11 | gtk-enable-event-sounds=1 12 | gtk-enable-input-feedback-sounds=0 13 | gtk-xft-antialias=1 14 | gtk-xft-hinting=1 15 | gtk-xft-hintstyle=hintslight 16 | gtk-xft-rgba=rgb 17 | gtk-application-prefer-dark-theme=0 18 | -------------------------------------------------------------------------------- /config/gtk-4.0/gtk.css: -------------------------------------------------------------------------------- 1 | @import 'colors.css'; -------------------------------------------------------------------------------- /config/gtk-4.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-application-prefer-dark-theme=true 3 | gtk-button-images=true 4 | gtk-theme-name=theme 5 | gtk-icon-theme-name=TokyoNight-SE 6 | gtk-font-name=Cantarell 11 7 | gtk-cursor-theme-name=Bibata-Modern-Ice 8 | gtk-cursor-theme-size=0 9 | gtk-toolbar-style=GTK_TOOLBAR_BOTH 10 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 11 | gtk-button-images=1 12 | gtk-menu-images=1 13 | gtk-enable-event-sounds=1 14 | gtk-enable-input-feedback-sounds=1 15 | gtk-xft-antialias=1 16 | gtk-xft-hinting=1 17 | gtk-xft-hintstyle=hintfull 18 | -------------------------------------------------------------------------------- /config/hypr/.cache/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/.cache/user.png -------------------------------------------------------------------------------- /config/hypr/.keybinds: -------------------------------------------------------------------------------- 1 |  =  2 |  + Return | open terminal (kitty) 3 |  + SHIFT + Return | open floating terminal (kitty) 4 |  + Q | kill active window 5 |  + D | launch app menu (rofi) 6 |  + W | change wallpaper (Wallpaper.sh) 7 |  + T | change theme 8 |  + SHIFT + W | select wallpaper (WallpaperSelect.sh) 9 |  + ALT + E | switch wallpaper engine (swww/hyprpaper) 10 |  + E | open file manager (Thunar) 11 |  + SHIFT + E | open terminal file manager (Yazi) 12 |  + V | toggle floating window 13 |  + ALT + V | toggle all windows to float 14 |  + F | toggle fullscreen 15 |  + ALT + D | switch Rofi theme 16 |  + ALT + C | clipboard manager 17 |  + ALT + W | wipe clipboard history 18 |  + SHIFT + D | open emoji picker 19 |  + SHIFT + P | toggle pseudo-tiling 20 |  + X | open power menu 21 |  + ALT + X | switch power menu theme 22 |  + C | open VS Code 23 |  + B | open browser (Default) 24 | ALT + B | reset default browser 25 | CTRL + ESCAPE | reload Waybar 26 | CTRL + ALT + ESCAPE | toggle Waybar visibility 27 |  + SHIFT + L | lockscreen (hyprlock) 28 |  + ALT + L | lockscreen theme (hyprlock) 29 |  + CTRL + W | switch Waybar layout 30 |  + CTRL + E | edit dotfiles 31 |  + CTRL + R | reload Hyprland 32 | CTRL + U | system update 33 |  + CTRL + U | updated hyprconf 34 | PRINT | take screenshot 35 |  + SHIFT + H | show keybind help 36 |  + SHIFT + M | exit Hyprland 37 |  + N | toggle special minimized (pyprland) 38 |  + SHIFT + N | toggle minimized (pyprland) 39 |  + SHIFT + O | shift monitor (pyprland) 40 |  + SHIFT + R | run startup script 41 |  + SHIFT + Z | ++ zoom 42 |  + Z | zoom 43 |  + S | open settings in terminal 44 |  + TAB | switch windows with Rofi 45 | ALT + TAB | Cycle through Windows 46 | F9 | toggle audio mute 47 | F10 | decrease volume 48 | F11 | increase volume 49 |  + F1 | decrease nightlight 50 |  + F2 | increase nightlight 51 |  + F3 | reset nightlight 52 | F3 | increase brightness 53 | F2 | decrease brightness 54 |  + J | move focus down 55 |  + K | move focus up 56 |  + L | move focus right 57 |  + H | move focus left 58 |  + CTRL + J | move window down 59 |  + CTRL + K | move window up 60 |  + CTRL + L | move window right 61 |  + CTRL + H | move window left 62 |  + 1-0 | switch workspace 1-10 63 |  + SHIFT + 1-0 | move window to workspace 1-10 64 |  + ALT + 1-0 | move window silently to workspace 1-10 65 |  + mouse scroll | cycle workspaces 66 |  + left click | move window 67 |  + right click | resize window 68 | -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Catppuccin/apex_octane.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Catppuccin/apex_octane.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Catppuccin/cabin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Catppuccin/cabin.png -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Catppuccin/firewatch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Catppuccin/firewatch.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Catppuccin/forest_dark_winter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Catppuccin/forest_dark_winter.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Catppuccin/space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Catppuccin/space.png -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Everforest/abandoned_buildings_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Everforest/abandoned_buildings_2.png -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Everforest/fog_forest_alt_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Everforest/fog_forest_alt_2.png -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Everforest/foggy_valley_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Everforest/foggy_valley_2.png -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Gruvbox/5m5kLI9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Gruvbox/5m5kLI9.png -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Gruvbox/ALLqk82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Gruvbox/ALLqk82.png -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Gruvbox/among-us.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Gruvbox/among-us.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Gruvbox/dead-robot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Gruvbox/dead-robot.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Gruvbox/gruvbox_spac.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Gruvbox/gruvbox_spac.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Gruvbox/wall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Gruvbox/wall.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Neon/guts-neon-iconic-5120x2880-21415.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Neon/guts-neon-iconic-5120x2880-21415.png -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Neon/kakashi-hatake-ai-7680x4320-18785.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Neon/kakashi-hatake-ai-7680x4320-18785.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/Neon/okarun-dandadan-5120x2880-19863.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/Neon/okarun-dandadan-5120x2880-19863.png -------------------------------------------------------------------------------- /config/hypr/Wallpapers/TokyoNight/7674881.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/TokyoNight/7674881.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/TokyoNight/aw383-wallpaper.cam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/TokyoNight/aw383-wallpaper.cam.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/TokyoNight/edger_lucy_neon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/TokyoNight/edger_lucy_neon.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/TokyoNight/lowpoly_street.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/TokyoNight/lowpoly_street.png -------------------------------------------------------------------------------- /config/hypr/Wallpapers/TokyoNight/street.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/TokyoNight/street.jpg -------------------------------------------------------------------------------- /config/hypr/Wallpapers/TokyoNight/un174-wallpaper.cam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/Wallpapers/TokyoNight/un174-wallpaper.cam.jpg -------------------------------------------------------------------------------- /config/hypr/assets/Catppuccin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/assets/Catppuccin.png -------------------------------------------------------------------------------- /config/hypr/assets/Everforest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/assets/Everforest.png -------------------------------------------------------------------------------- /config/hypr/assets/Gruvbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/assets/Gruvbox.png -------------------------------------------------------------------------------- /config/hypr/assets/Neon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/assets/Neon.png -------------------------------------------------------------------------------- /config/hypr/assets/TokyoNight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/assets/TokyoNight.png -------------------------------------------------------------------------------- /config/hypr/confs/animations.conf: -------------------------------------------------------------------------------- 1 | ############## 2 | # ANIMATIONS # 3 | ############## 4 | 5 | animations { 6 | enabled = 1 7 | bezier = overshot,0.13,0.99,0.29,1.15 8 | bezier = win, 0.15,0.90,0.25,1.2 9 | bezier = wind, 0.05, 0.9, 0.1, 1.05 10 | bezier = winIn, 0.1, 1.1, 0.1, 1.1 11 | bezier = winOut, 0.3, -0.3, 0, 1 12 | bezier = liner, 1, 1, 1, 1 13 | 14 | # animation = windows, 1, 6, wind, slide 15 | animation = windowsIn, 1, 5, overshot, slide 16 | animation = windowsOut, 1, 5, overshot, slide 17 | animation = windowsMove, 1, 5, wind, slide 18 | animation = border, 1, 1, liner 19 | animation = fade, 1, 10, default 20 | animation = workspaces, 1, 5, overshot, slide 21 | animation = layersIn, 1, 4, overshot, slide 22 | animation = layersOut, 1, 7, overshot, slide 10% 23 | } 24 | -------------------------------------------------------------------------------- /config/hypr/confs/configs.conf: -------------------------------------------------------------------------------- 1 | $opacity_act = 0.9 2 | $opacity_deact = 0.8 3 | $blur_size = 5 4 | $blur_pass = 3 5 | $shadow_range = 0 6 | $rounding = 8 7 | $border = 2 8 | $inner_gap = 10 9 | $outer_gap = 20 10 | -------------------------------------------------------------------------------- /config/hypr/confs/decoration.conf: -------------------------------------------------------------------------------- 1 | /home/shell-ninja/.config/hypr/confs/themes/Catppuccin.conf -------------------------------------------------------------------------------- /config/hypr/confs/decoration.conf.back: -------------------------------------------------------------------------------- 1 | ############## 2 | # DECORATION # 3 | ############## 4 | 5 | source=~/.config/hypr/confs/configs.conf 6 | 7 | general { 8 | layout = dwindle 9 | gaps_in = $inner_gap 10 | gaps_out = $outer_gap 11 | border_size = $border 12 | col.active_border = $active 13 | col.inactive_border = $inactive 14 | resize_on_border = false 15 | allow_tearing = false 16 | } 17 | 18 | 19 | decoration { 20 | 21 | rounding = $rounding 22 | rounding_power = 2 23 | 24 | active_opacity = $opacity_act 25 | inactive_opacity = $opacity_deact 26 | fullscreen_opacity = 1.0 27 | 28 | dim_inactive = true 29 | dim_strength = 0.1 30 | dim_special = 0.8 31 | 32 | shadow { 33 | enabled = true 34 | range = $shadow_range 35 | render_power = 4 36 | color = $active 37 | color_inactive = $inactive 38 | } 39 | 40 | blur { 41 | enabled = true 42 | size = $blur_size 43 | passes = $blur_pass 44 | ignore_opacity = true 45 | new_optimizations = true 46 | special = true 47 | popups = true 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /config/hypr/confs/env.conf: -------------------------------------------------------------------------------- 1 | ######################### 2 | # ENVIRONMENT VARIABLES # 3 | ######################### 4 | 5 | # Some default env vars. 6 | env = HYRCURSOR_THEME,catppuccin-mocha-light-cursors 7 | env = HYPRCURSOR_SIZE,24 8 | blurls = code-oss 9 | blurls = waybar 10 | 11 | 12 | # copied from JaKooLit -> https://github.com/JaKooLit 13 | # Environment variables. See https://wiki.hyprland.org/Configuring/Environment-variables/ 14 | 15 | #environment-variables 16 | env = CLUTTER_BACKEND,wayland 17 | env = GDK_BACKEND,wayland,x11 18 | env = QT_AUTO_SCREEN_SCALE_FACTOR,1 19 | env = QT_QPA_PLATFORM,wayland;xcb 20 | env = QT_QPA_PLATFORMTHEME,qt5ct 21 | env = QT_QPA_PLATFORMTHEME,qt6ct 22 | env = QT_SCALE_FACTOR,1 23 | env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 24 | env = XDG_CURRENT_DESKTOP,Hyprland 25 | env = XDG_SESSION_DESKTOP,Hyprland 26 | env = XDG_SESSION_TYPE,wayland 27 | 28 | # grimblast screenshot 29 | env = GRIMBLAST_HIDE_CURSOR, 0 #Stops hyprpanel/hyprland from crashing when screenshoting with grimblast 30 | 31 | # xwayland apps scale fix (useful if you are use monitor scaling) 32 | # see https://wiki.hyprland.org/Configuring/XWayland/ 33 | # toolkit-specific scale 34 | # env = GDK_SCALE,2 35 | 36 | 37 | # firefox 38 | env = MOZ_ENABLE_WAYLAND,1 39 | 40 | # electron >28 apps (may help) 41 | env = ELECTRON_OZONE_PLATFORM_HINT,auto 42 | 43 | # NVIDIA 44 | # This is from Hyprland Wiki. As a start, WLR_NO_HARDWARE_CURSORS 1 will be activated if nvidia gpu detected 45 | #env = LIBVA_DRIVER_NAME,nvidia 46 | #env = __GLX_VENDOR_LIBRARY_NAME,nvidia 47 | #env = GBM_BACKEND,nvidia-drm 48 | 49 | #env = __NV_PRIME_RENDER_OFFLOAD,1 50 | #env = __VK_LAYER_NV_optimus,NVIDIA_only 51 | #env = WLR_DRM_NO_ATOMIC,1 52 | #env = NVD_BACKEND,direct 53 | 54 | # FOR VM and POSSIBLY NVIDIA 55 | #env = WLR_NO_HARDWARE_CURSORS,1 56 | #env = WLR_RENDERER_ALLOW_SOFTWARE,1 57 | 58 | # nvidia firefox (for hardware acceleration on FF)? 59 | # check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration 60 | #env = MOZ_DISABLE_RDD_SANDBOX,1 61 | #env = NVD_BACKEND,direct 62 | #env = EGL_PLATFORM,wayland 63 | -------------------------------------------------------------------------------- /config/hypr/confs/monitor-vbox.conf: -------------------------------------------------------------------------------- 1 | ################## 2 | # MONITOR CONFIG # 3 | ################## 4 | 5 | monitor=Virtual-1, 1920x1080@60,auto,1 6 | -------------------------------------------------------------------------------- /config/hypr/confs/monitor.conf: -------------------------------------------------------------------------------- 1 | ################## 2 | # MONITOR CONFIG # 3 | ################## 4 | 5 | #Monitor 6 | monitor=,highres,auto,1 7 | monitor=,highrr,auto,1 8 | -------------------------------------------------------------------------------- /config/hypr/confs/settings.conf: -------------------------------------------------------------------------------- 1 | ############ 2 | # SETTINGS # 3 | ############ 4 | 5 | input { 6 | kb_layout = us 7 | kb_variant = 8 | kb_model = 9 | kb_options = 10 | kb_rules = 11 | repeat_rate = 50 12 | repeat_delay = 300 13 | 14 | numlock_by_default = true 15 | left_handed = false 16 | follow_mouse = true 17 | float_switch_override_focus = false 18 | 19 | follow_mouse = 1 20 | 21 | touchpad { 22 | disable_while_typing=true 23 | natural_scroll=true 24 | clickfinger_behavior=false 25 | middle_button_emulation=true 26 | tap-to-click=true 27 | drag_lock=false 28 | } 29 | 30 | sensitivity = 0 # -1.0 - 1.0, 0 means no modification. 31 | } 32 | 33 | gestures { 34 | workspace_swipe=true 35 | workspace_swipe_fingers=3 36 | workspace_swipe_distance=400 37 | workspace_swipe_invert=true 38 | workspace_swipe_min_speed_to_force=30 39 | workspace_swipe_cancel_ratio=0.5 40 | workspace_swipe_create_new=true 41 | workspace_swipe_forever=true 42 | } 43 | 44 | misc { 45 | disable_hyprland_logo = true 46 | disable_splash_rendering = true 47 | vfr = true 48 | vrr = 2 49 | mouse_move_enables_dpms = true 50 | enable_swallow = true 51 | swallow_regex = ^(kitty)$ 52 | focus_on_activate = false 53 | initial_workspace_tracking = 0 54 | middle_click_paste = false 55 | } 56 | 57 | # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more 58 | # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more 59 | dwindle { 60 | pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below 61 | preserve_split = yes # you probably want this 62 | } 63 | 64 | # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more 65 | master { 66 | new_status = master 67 | } 68 | 69 | 70 | binds { 71 | workspace_back_and_forth=true 72 | allow_workspace_cycles=true 73 | pass_mouse_when_bound=false 74 | } 75 | 76 | #Could help when scaling and not pixelating 77 | xwayland { 78 | enabled = true 79 | force_zero_scaling = true 80 | } 81 | 82 | # render section for Hyprland >= v0.42.0 83 | render { 84 | explicit_sync = 2 85 | explicit_sync_kms = 2 86 | direct_scanout = false 87 | } 88 | 89 | cursor { 90 | sync_gsettings_theme = true 91 | no_hardware_cursors = 2 92 | enable_hyprcursor = true 93 | warp_on_change_workspace = 2 94 | no_warps = true 95 | } 96 | -------------------------------------------------------------------------------- /config/hypr/confs/startup.conf: -------------------------------------------------------------------------------- 1 | ########### 2 | # STARTUP # 3 | ########### 4 | 5 | exec = gsettings set org.gnome.desktop.interface cursor-theme Bibata-Modern-Ice 6 | 7 | $scripts_dir = $HOME/.config/hypr/scripts 8 | 9 | # Startup 10 | exec-once = $scripts_dir/startup.sh 11 | 12 | exec-once = waybar & hypridle & hyprsunset 13 | #exec-once = nm-applet & 14 | 15 | # Pollicykit 16 | exec-once = $scripts_dir/polkit.sh 17 | 18 | # clipboard manager 19 | exec-once = wl-paste --type text --watch cliphist store 20 | exec-once = wl-paste --type image --watch cliphist store 21 | 22 | # pyprland 23 | exec-once = pypr & 24 | -------------------------------------------------------------------------------- /config/hypr/confs/tags.conf: -------------------------------------------------------------------------------- 1 | # all the needed tags here 2 | 3 | # browser tags 4 | windowrulev2 = tag +browser, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$ 5 | windowrulev2 = tag +browser, class:^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$ 6 | windowrulev2 = tag +browser, class:^(chrome-.+-Default)$ # Chrome PWAs 7 | windowrulev2 = tag +browser, class:^([Cc]hromium)$ 8 | windowrulev2 = tag +browser, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$ 9 | windowrulev2 = tag +browser, class:^([Bb]rave-browser(-beta|-dev|-unstable)?)$ 10 | windowrulev2 = tag +browser, class:^([Tt]horium-browser|[Cc]achy-browser)$ 11 | windowrulev2 = tag +browser, class:^(zen-alpha|zen)$ 12 | 13 | # terminal 14 | windowrulev2 = tag +terminal, class:^(Alacritty|kitty|kitty-dropterm)$ 15 | 16 | # file manager 17 | windowrulev2 = tag +file-manager, class:^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$ 18 | 19 | # ide 20 | windowrulev2 = tag +ide, class:^(codium|codium-url-handler|VSCodium)$ 21 | windowrulev2 = tag +ide, class:^(VSCode|code-url-handler|code)$ 22 | windowrulev2 = tag +ide, class:^(jetbrains-.+)$ # JetBrains IDEs 23 | -------------------------------------------------------------------------------- /config/hypr/confs/themes/Catppuccin.conf: -------------------------------------------------------------------------------- 1 | $activeCol = rgba(b4befecc) 2 | $inactiveCol = rgba(6c7086cc) 3 | $icon = Catppuccin-Mocha 4 | $theme = Catppuccin 5 | $color = perfect-dark 6 | 7 | exec = gsettings set org.gnome.desktop.interface icon-theme $icon 8 | exec = gsettings set org.gnome.desktop.interface gtk-theme $theme 9 | exec = gsettings set org.gnome.desktop.interface color-scheme $color 10 | 11 | ############## 12 | # CATPPUCCIN # 13 | ############## 14 | 15 | source=~/.config/hypr/confs/configs.conf 16 | 17 | general { 18 | layout = dwindle 19 | gaps_in = $inner_gap 20 | gaps_out = $outer_gap 21 | border_size = $border 22 | col.active_border = $activeCol 23 | col.inactive_border = $inactiveCol 24 | resize_on_border = false 25 | allow_tearing = false 26 | } 27 | 28 | 29 | decoration { 30 | 31 | rounding = $rounding 32 | rounding_power = 2 33 | 34 | # active_opacity = $opacity_act 35 | # inactive_opacity = $opacity_deact 36 | fullscreen_opacity = 1.0 37 | 38 | # dim_inactive = true 39 | dim_strength = 0.1 40 | dim_special = 0.8 41 | 42 | shadow { 43 | enabled = true 44 | range = $shadow_range 45 | render_power = 4 46 | color = $activeCol 47 | color_inactive = $inactiveCol 48 | } 49 | 50 | blur { 51 | enabled = true 52 | size = $blur_size 53 | passes = $blur_pass 54 | ignore_opacity = true 55 | new_optimizations = true 56 | special = true 57 | popups = true 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /config/hypr/confs/themes/Everforest.conf: -------------------------------------------------------------------------------- 1 | $activeCol = rgba(b4b9bcFF) 2 | $inactiveCol = rgba(928C7AFF) 3 | $icon = Everforest 4 | $theme = Everforest 5 | $color = perfect-dark 6 | 7 | exec = gsettings set org.gnome.desktop.interface icon-theme $icon 8 | exec = gsettings set org.gnome.desktop.interface gtk-theme $theme 9 | exec = gsettings set org.gnome.desktop.interface color-scheme $color 10 | 11 | ############## 12 | # CATPPUCCIN # 13 | ############## 14 | 15 | source=~/.config/hypr/confs/configs.conf 16 | 17 | general { 18 | layout = dwindle 19 | gaps_in = $inner_gap 20 | gaps_out = $outer_gap 21 | border_size = $border 22 | col.active_border = $activeCol 23 | col.inactive_border = $inactiveCol 24 | resize_on_border = false 25 | allow_tearing = false 26 | } 27 | 28 | 29 | decoration { 30 | 31 | rounding = $rounding 32 | rounding_power = 2 33 | 34 | # active_opacity = $opacity_act 35 | # inactive_opacity = $opacity_deact 36 | fullscreen_opacity = 1.0 37 | 38 | # dim_inactive = true 39 | dim_strength = 0.1 40 | dim_special = 0.8 41 | 42 | shadow { 43 | enabled = true 44 | range = $shadow_range 45 | render_power = 4 46 | color = $activeCol 47 | color_inactive = $inactiveCol 48 | } 49 | 50 | blur { 51 | enabled = true 52 | size = $blur_size 53 | passes = $blur_pass 54 | ignore_opacity = true 55 | new_optimizations = true 56 | special = true 57 | popups = true 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /config/hypr/confs/themes/Gruvbox.conf: -------------------------------------------------------------------------------- 1 | $activeCol = rgba(c6b79fFF) 2 | $inactiveCol = rgba(93774CFF) 3 | $icon = Gruvbox-Plus-Dark 4 | $theme = Gruvbox 5 | $color = perfect-dark 6 | 7 | exec = gsettings set org.gnome.desktop.interface icon-theme $icon 8 | exec = gsettings set org.gnome.desktop.interface gtk-theme $theme 9 | exec = gsettings set org.gnome.desktop.interface color-scheme $color 10 | 11 | ############## 12 | # CATPPUCCIN # 13 | ############## 14 | 15 | source=~/.config/hypr/confs/configs.conf 16 | 17 | general { 18 | layout = dwindle 19 | gaps_in = $inner_gap 20 | gaps_out = $outer_gap 21 | border_size = $border 22 | col.active_border = $activeCol 23 | col.inactive_border = $inactiveCol 24 | resize_on_border = false 25 | allow_tearing = false 26 | } 27 | 28 | 29 | decoration { 30 | 31 | rounding = $rounding 32 | rounding_power = 2 33 | 34 | # active_opacity = $opacity_act 35 | # inactive_opacity = $opacity_deact 36 | fullscreen_opacity = 1.0 37 | 38 | # dim_inactive = true 39 | dim_strength = 0.1 40 | dim_special = 0.8 41 | 42 | shadow { 43 | enabled = true 44 | range = $shadow_range 45 | render_power = 4 46 | color = $activeCol 47 | color_inactive = $inactiveCol 48 | } 49 | 50 | blur { 51 | enabled = true 52 | size = $blur_size 53 | passes = $blur_pass 54 | ignore_opacity = true 55 | new_optimizations = true 56 | special = true 57 | popups = true 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /config/hypr/confs/themes/Neon.conf: -------------------------------------------------------------------------------- 1 | $activeCol = rgba(e1c5e1FF) 2 | $inactiveCol = rgba(E25ECFFF) 3 | $icon = candy-icons 4 | $theme = Catppuccin 5 | $color = perfect-dark 6 | 7 | exec = gsettings set org.gnome.desktop.interface icon-theme $icon 8 | exec = gsettings set org.gnome.desktop.interface gtk-theme $theme 9 | exec = gsettings set org.gnome.desktop.interface color-scheme $color 10 | 11 | ############## 12 | # CATPPUCCIN # 13 | ############## 14 | 15 | source=~/.config/hypr/confs/configs.conf 16 | 17 | general { 18 | layout = dwindle 19 | gaps_in = $inner_gap 20 | gaps_out = $outer_gap 21 | border_size = $border 22 | col.active_border = $activeCol 23 | col.inactive_border = $inactiveCol 24 | resize_on_border = false 25 | allow_tearing = false 26 | } 27 | 28 | 29 | decoration { 30 | 31 | rounding = $rounding 32 | rounding_power = 2 33 | 34 | # active_opacity = $opacity_act 35 | # inactive_opacity = $opacity_deact 36 | fullscreen_opacity = 1.0 37 | 38 | # dim_inactive = true 39 | dim_strength = 0.1 40 | dim_special = 0.8 41 | 42 | shadow { 43 | enabled = true 44 | range = $shadow_range 45 | render_power = 4 46 | color = $activeCol 47 | color_inactive = $inactiveCol 48 | } 49 | 50 | blur { 51 | enabled = true 52 | size = $blur_size 53 | passes = $blur_pass 54 | ignore_opacity = true 55 | new_optimizations = true 56 | special = true 57 | popups = true 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /config/hypr/confs/themes/TokyoNight.conf: -------------------------------------------------------------------------------- 1 | $activeCol = rgba(8cc6c8FF) 2 | $inactiveCol = rgba(9C5759FF) 3 | $icon = TokyoNight 4 | $theme = TokyoNight 5 | $color = perfect-dark 6 | 7 | exec = gsettings set org.gnome.desktop.interface icon-theme $icon 8 | exec = gsettings set org.gnome.desktop.interface gtk-theme $theme 9 | exec = gsettings set org.gnome.desktop.interface color-scheme $color 10 | 11 | ############## 12 | # CATPPUCCIN # 13 | ############## 14 | 15 | source=~/.config/hypr/confs/configs.conf 16 | 17 | general { 18 | layout = dwindle 19 | gaps_in = $inner_gap 20 | gaps_out = $outer_gap 21 | border_size = $border 22 | col.active_border = $activeCol 23 | col.inactive_border = $inactiveCol 24 | resize_on_border = false 25 | allow_tearing = false 26 | } 27 | 28 | 29 | decoration { 30 | 31 | rounding = $rounding 32 | rounding_power = 2 33 | 34 | # active_opacity = $opacity_act 35 | # inactive_opacity = $opacity_deact 36 | fullscreen_opacity = 1.0 37 | 38 | # dim_inactive = true 39 | dim_strength = 0.1 40 | dim_special = 0.8 41 | 42 | shadow { 43 | enabled = true 44 | range = $shadow_range 45 | render_power = 4 46 | color = $activeCol 47 | color_inactive = $inactiveCol 48 | } 49 | 50 | blur { 51 | enabled = true 52 | size = $blur_size 53 | passes = $blur_pass 54 | ignore_opacity = true 55 | new_optimizations = true 56 | special = true 57 | popups = true 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /config/hypr/hypridle.conf: -------------------------------------------------------------------------------- 1 | general { 2 | lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. 3 | before_sleep_cmd = loginctl lock-session # lock before suspend. 4 | after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. 5 | } 6 | 7 | listener { 8 | timeout = 150 # 2.5min. 9 | on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor. 10 | on-resume = brightnessctl -r # monitor backlight restore. 11 | } 12 | 13 | # turn off keyboard backlight, comment out this section if you dont have a keyboard backlight. 14 | listener { 15 | timeout = 150 # 2.5min. 16 | on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight. 17 | on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight. 18 | } 19 | 20 | # send notification before locking the screen 21 | listener { 22 | timeout = 295 # 5s before locking 23 | on-timeout = notify-send "Screen Lock" "Locking the screen after 5 seconds." 24 | } 25 | 26 | # locking the screen 27 | listener { 28 | timeout = 300 # 5min 29 | on-timeout = loginctl lock-session # lock screen when timeout has passed 30 | } 31 | 32 | listener { 33 | timeout = 600 # 10min 34 | on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed 35 | on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired. 36 | } 37 | 38 | listener { 39 | timeout = 1800 # 30min 40 | on-timeout = systemctl suspend # suspend pc 41 | } 42 | -------------------------------------------------------------------------------- /config/hypr/icons/done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/icons/done.png -------------------------------------------------------------------------------- /config/hypr/icons/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/icons/error.png -------------------------------------------------------------------------------- /config/hypr/icons/monitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/icons/monitor.png -------------------------------------------------------------------------------- /config/hypr/icons/update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/icons/update.png -------------------------------------------------------------------------------- /config/hypr/icons/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/icons/warning.png -------------------------------------------------------------------------------- /config/hypr/lockscreens/hyprlock-2.conf: -------------------------------------------------------------------------------- 1 | # variables 2 | source = ~/.config/hypr/confs/decoration.conf 3 | 4 | background { 5 | monitor = 6 | path = $HOME/.config/hypr/.cache/current_wallpaper.png # only png supported for now 7 | blur_passes = 2 8 | contrast = 1 9 | brightness = 0.9 10 | vibrancy = 1 11 | vibrancy_darkness = 0.0 12 | } 13 | 14 | # GENERAL 15 | general { 16 | no_fade_in = false 17 | no_fade_out = false 18 | grace = 0 19 | disable_loading_bar = false 20 | } 21 | 22 | input-field { 23 | monitor = 24 | size = 300, 50 25 | outline_thickness = 3 26 | dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8 27 | dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0 28 | dots_center = true 29 | dots_rounding = -1 # -1 default circle, -2 follow input-field rounding 30 | outer_color = $activeCol 31 | inner_color = $activeCol 32 | font_color = $inactiveCol 33 | fade_on_empty = false 34 | fade_timeout = 2000 # Milliseconds before fade_on_empty is triggered. 35 | placeholder_text =  Enter Password... 36 | hide_input = false 37 | rounding = -1 # -1 means complete rounding (circle/oval) 38 | check_color = rgba(d3d4e6FF) 39 | fail_color = rgba(255, 0, 0, 1) 40 | fail_text = $FAIL ($ATTEMPTS) # can be set to empty 41 | fail_transition = 300 42 | capslock_color = rgba(d3d4e6FF) 43 | numlock_color = rgba(d3d4e6FF) 44 | bothlock_color = rgba(d3d4e6FF) 45 | invert_numlock = false # changecolor = rgba(d3d4e6FF) 46 | swap_font_color = $activeCol 47 | position = -40, 40 48 | halign = right 49 | valign = bottom 50 | } 51 | 52 | # time (hour) 53 | label { 54 | monitor = 55 | text = cmd[update:1000] echo "$(date +'%I')" 56 | color = $activeCol 57 | font_size = 200 58 | font_family = Montserrat Italic Bold 59 | position = -50, 250 60 | halign = center 61 | valign = center 62 | shadow_passes = 5 63 | shadow_size = 10 64 | } 65 | 66 | # time (minute) 67 | label { 68 | monitor = 69 | text = cmd[update:1000] echo "$(date +'%M')" 70 | color = $activeCol 71 | font_size = 170 72 | font_family = Montserrat Italic Bold 73 | position = 50, 70 74 | halign = center 75 | valign = center 76 | shadow_passes = 5 77 | shadow_size = 10 78 | } 79 | 80 | # date 81 | label { 82 | monitor = 83 | text = cmd[update:1000] echo "$(date +'%d %B, %Y')" 84 | color = $activeCol 85 | font_size = 25 86 | font_family = Pacifico Regular 87 | position = 0, -75 88 | halign = center 89 | valign = center 90 | shadow_passes = 5 91 | shadow_size = 10 92 | } 93 | 94 | # user 95 | label { 96 | monitor = 97 | text = $USER 98 | color = $activeCol 99 | font_size = 40 100 | font_family = Fira Bold 101 | position = -50, 120 102 | halign = right 103 | valign = bottom 104 | shadow_passes = 5 105 | shadow_size = 10 106 | } 107 | 108 | image { 109 | monitor = 110 | path = $HOME/.config/hypr/.cache/user.png 111 | size = 280 # lesser side if not 1:1 ratio 112 | rounding = -1 # negative values mean circle 113 | border_size = 8 114 | border_color = $activeCol 115 | rotate = 0 # degrees, counter-clockwise 116 | reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2 117 | position = -45, 190 118 | halign = right 119 | valign = bottom 120 | } 121 | -------------------------------------------------------------------------------- /config/hypr/pyprland.toml: -------------------------------------------------------------------------------- 1 | [pyprland] 2 | 3 | plugins = [ 4 | "scratchpads", 5 | "magnify", 6 | ] 7 | 8 | [scratchpads.term] 9 | animation = "fromTop" 10 | command = "kitty --class kitty-dropterm" 11 | class = "kitty-dropterm" 12 | size = "60% 55%" 13 | -------------------------------------------------------------------------------- /config/hypr/scripts/Refresh.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Kill already running processes 4 | _ps=( 5 | swaync 6 | rofi 7 | waybar 8 | ) 9 | for _prs in "${_ps[@]}"; do 10 | if pidof "${_prs}" &> /dev/null; then 11 | pkill "${_prs}" 12 | fi 13 | done 14 | 15 | sleep 0.3 16 | swaync & 17 | waybar & 18 | 19 | sleep 1 20 | hyprctl reload 21 | 22 | exit 0 23 | -------------------------------------------------------------------------------- /config/hypr/scripts/Wallpaper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | scrDir="$HOME/.config/hypr/scripts" 4 | cacheDir="$HOME/.config/hypr/.cache" 5 | themeFile="$cacheDir/.theme" 6 | wallCache="$cacheDir/.wallpaper" 7 | 8 | theme=$(cat "$themeFile") 9 | wallDir="$HOME/.config/hypr/Wallpapers/${theme}" 10 | 11 | [[ ! -f "$wallCache" ]] && touch "$wallCache" 12 | 13 | PICS=($(find ${wallDir} -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.gif" \))) 14 | wallpaper=${PICS[ $RANDOM % ${#PICS[@]} ]} 15 | 16 | # Transition config 17 | FPS=60 18 | TYPE="random" 19 | DURATION=1 20 | BEZIER=".43,1.19,1,.4" 21 | SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION --transition-bezier $BEZIER" 22 | 23 | notify-send -i "${wallpaper}" "Changing wallpaper" -t 1500 24 | swww-daemon & 25 | swww img ${wallpaper} $SWWW_PARAMS 26 | 27 | ln -sf "$wallpaper" "$cacheDir/current_wallpaper.png" 28 | 29 | baseName="$(basename $wallpaper)" 30 | wallName=${baseName%.*} 31 | echo "$wallName" > "$wallCache" 32 | 33 | sleep 0.5 34 | "$scrDir/wallcache.sh" 35 | # "$scrDir/themes.sh" 36 | -------------------------------------------------------------------------------- /config/hypr/scripts/WallpaperSelect.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | scriDir="$HOME/.config/hypr/scripts" 4 | cache_dir="$HOME/.config/hypr/.cache" 5 | wallCache="$cache_dir/.wallpaper" 6 | theme=$(cat "$HOME/.config/hypr/.cache/.theme") 7 | wallDIR="$HOME/.config/hypr/Wallpapers/${theme}" 8 | 9 | [[ ! -f "$wallCache" ]] && touch "$wallCache" 10 | 11 | # Transition config 12 | FPS=60 13 | TYPE="random" 14 | DURATION=1 15 | BEZIER=".43,1.19,1,.4" 16 | SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION" 17 | 18 | 19 | # Retrieve image files 20 | PICS=($(ls "${wallDIR}" | grep -E ".jpg$|.jpeg$|.png$|.gif$")) 21 | RANDOM_PIC="${PICS[$((RANDOM % ${#PICS[@]}))]}" 22 | RANDOM_PIC_NAME="${#PICS[@]}. random" 23 | 24 | # Rofi command ( style ) 25 | rofi_command1="rofi -show -dmenu -config ~/.config/rofi/themes/rofi-wall.rasi" 26 | rofi_command2="rofi -show -dmenu -config ~/.config/rofi/themes/rofi-wall-2.rasi" 27 | 28 | menu() { 29 | for i in "${!PICS[@]}"; do 30 | # Displaying .gif to indicate animated images 31 | if [[ -z $(echo "${PICS[$i]}" | grep .gif$) ]]; then 32 | printf "$(echo "${PICS[$i]}" | cut -d. -f1)\x00icon\x1f${wallDIR}/${PICS[$i]}\n" 33 | else 34 | printf "${PICS[$i]}\n" 35 | fi 36 | done 37 | 38 | printf "$RANDOM_PIC_NAME\n" 39 | } 40 | 41 | case $1 in 42 | thm1) 43 | choice=$(menu | ${rofi_command1}) 44 | ;; 45 | thm2) 46 | choice=$(menu | ${rofi_command2}) 47 | ;; 48 | esac 49 | 50 | swww-daemon & 51 | 52 | # No choice case 53 | if [[ -z $choice ]]; then 54 | exit 0 55 | fi 56 | 57 | # Random choice case 58 | if [ "$choice" = "$RANDOM_PIC_NAME" ]; then 59 | swww img "${wallDIR}/${RANDOM_PIC}" $SWWW_PARAMS 60 | exit 0 61 | fi 62 | 63 | # Find the index of the selected file 64 | pic_index=-1 65 | for i in "${!PICS[@]}"; do 66 | filename=$(basename "${PICS[$i]}") 67 | if [[ "$filename" == "$choice"* ]]; then 68 | pic_index=$i 69 | break 70 | fi 71 | done 72 | 73 | if [[ $pic_index -ne -1 ]]; then 74 | notify-send -i "${wallDIR}/${PICS[$pic_index]}" "Changing wallpaper" -t 1500 75 | swww img "${wallDIR}/${PICS[$pic_index]}" $SWWW_PARAMS 76 | 77 | ln -sf "${wallDIR}/${PICS[$pic_index]}" "$cache_dir/current_wallpaper.png" 78 | basename="$(basename "${wallDIR}/${PICS[$pic_index]}")" 79 | wallName="${basename%.*}" 80 | echo "$wallName" > "$wallCache" 81 | 82 | else 83 | echo "Image not found." 84 | exit 1 85 | fi 86 | 87 | sleep 0.5 88 | "$scriDir/wallcache.sh" 89 | "$scriDir/themes.sh" 90 | -------------------------------------------------------------------------------- /config/hypr/scripts/Weather.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | city=$(timedatectl | grep "Time zone" | awk '{split($3, a, "/"); print a[2]}') 4 | cachedir=~/.cache/rbn 5 | cachefile=${0##*/}-$1 6 | 7 | if [ ! -d $cachedir ]; then 8 | mkdir -p $cachedir 9 | fi 10 | 11 | if [ ! -f $cachedir/$cachefile ]; then 12 | touch $cachedir/$cachefile 13 | fi 14 | 15 | # Save current IFS 16 | SAVEIFS=$IFS 17 | # Change IFS to new line. 18 | IFS=$'\n' 19 | 20 | cacheage=$(($(date +%s) - $(stat -c '%Y' "$cachedir/$cachefile"))) 21 | if [ $cacheage -gt 1740 ] || [ ! -s $cachedir/$cachefile ]; then 22 | data=($(curl -s https://en.wttr.in/"$city"$1\?0qnT 2>&1)) 23 | echo ${data[0]} | cut -f1 -d, > $cachedir/$cachefile 24 | echo ${data[1]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile 25 | echo ${data[2]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile 26 | fi 27 | 28 | weather=($(cat $cachedir/$cachefile)) 29 | 30 | # Restore IFSClear 31 | IFS=$SAVEIFS 32 | 33 | temperature=$(echo ${weather[2]} | sed -E 's/([[:digit:]]+)\.\./\1 to /g') 34 | 35 | #echo ${weather[1]##*,} 36 | 37 | # https://fontawesome.com/icons?s=solid&c=weather 38 | case $(echo ${weather[1]##*,} | tr '[:upper:]' '[:lower:]') in 39 | "clear" | "sunny") 40 | condition="" 41 | ;; 42 | "partly cloudy") 43 | condition="󰖕" 44 | ;; 45 | "cloudy") 46 | condition="" 47 | ;; 48 | "overcast") 49 | condition="" 50 | ;; 51 | "fog" | "freezing fog") 52 | condition="" 53 | ;; 54 | "patchy rain possible" | "patchy light drizzle" | "light drizzle" | "patchy light rain" | "light rain" | "light rain shower" | "mist" | "rain") 55 | condition="󰼳" 56 | ;; 57 | "moderate rain at times" | "moderate rain" | "heavy rain at times" | "heavy rain" | "moderate or heavy rain shower" | "torrential rain shower" | "rain shower") 58 | condition="" 59 | ;; 60 | "patchy snow possible" | "patchy sleet possible" | "patchy freezing drizzle possible" | "freezing drizzle" | "heavy freezing drizzle" | "light freezing rain" | "moderate or heavy freezing rain" | "light sleet" | "ice pellets" | "light sleet showers" | "moderate or heavy sleet showers") 61 | condition="󰼴" 62 | ;; 63 | "blowing snow" | "moderate or heavy sleet" | "patchy light snow" | "light snow" | "light snow showers") 64 | condition="󰙿" 65 | ;; 66 | "blizzard" | "patchy moderate snow" | "moderate snow" | "patchy heavy snow" | "heavy snow" | "moderate or heavy snow with thunder" | "moderate or heavy snow showers") 67 | condition="" 68 | ;; 69 | "thundery outbreaks possible" | "patchy light rain with thunder" | "moderate or heavy rain with thunder" | "patchy light snow with thunder") 70 | condition="" 71 | ;; 72 | *) 73 | condition="" 74 | echo -e "{\"text\":\""$condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" 75 | ;; 76 | esac 77 | 78 | #echo $temp $condition 79 | 80 | echo -e "{\"text\":\""$temperature $condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" 81 | -------------------------------------------------------------------------------- /config/hypr/scripts/add_user.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # asking user for the image path 4 | printf "Write the path of the image to show as a User image in Hyprlock\nfor example: path/to/image.jpg\n" 5 | read -r -p "Paste here: " img_path 6 | 7 | if convert "$img_path" -resize 50% "$HOME/.config/hypr/.cache/user.png" &> /dev/null; then 8 | printf "[ * ] - Image added successfully...\n" 9 | else 10 | printf "[ ! ] - Failed to convert the image. Please check the path and try again.\n" 11 | fi -------------------------------------------------------------------------------- /config/hypr/scripts/apps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | case $1 in 4 | fb) 5 | url="https://www.facebook.com" 6 | ;; 7 | yt) 8 | url="https://www.youtube.com" 9 | ;; 10 | ai) 11 | url="https://chat.openai.com" 12 | ;; 13 | gem) 14 | url="https://gemini.google.com/app" 15 | ;; 16 | wapp) 17 | url="https://web.whatsapp.com" 18 | ;; 19 | github) 20 | url="https://github.com" 21 | ;; 22 | ps) 23 | url="https://www.photopea.com/" 24 | ;; 25 | *) 26 | echo "Usage: $0 {fb|yt|ai|wapp|github}" 27 | exit 1 28 | ;; 29 | esac 30 | 31 | # Define the browsers in the order of preference 32 | browser_cache="$HOME/.config/hypr/.cache/.browser" 33 | browser=$(grep "default" "$browser_cache" | awk -F'=' '{print $2}') 34 | 35 | # Loop through the browsers and try to open the URL with the first available one 36 | if [[ ! "$browser" == "firefox" ]]; then 37 | "$browser" --app="$url" 38 | elif [[ "$browser" == "firefox" || "$browser" == "zen-browser" ]]; then 39 | "$browser" --new-window "$url" 40 | fi 41 | -------------------------------------------------------------------------------- /config/hypr/scripts/brightness.sh: -------------------------------------------------------------------------------- 1 | # #!/bin/bash 2 | # # I copied this script from JaKooLit. https://github.com/JaKooLit. Because I do not have any laptop to test these kinds of features. 3 | 4 | iDIR="$HOME/.config/dunst/icons/brightness" 5 | notification_timeout=1000 6 | 7 | # Get brightness 8 | get_backlight() { 9 | echo $(brightnessctl -m | cut -d, -f4) 10 | } 11 | 12 | # Get icons 13 | get_icon() { 14 | current=$(get_backlight | sed 's/%//') 15 | if [ "$current" -le "20" ]; then 16 | icon="$iDIR/brightness-20.png" 17 | elif [ "$current" -le "40" ]; then 18 | icon="$iDIR/brightness-40.png" 19 | elif [ "$current" -le "60" ]; then 20 | icon="$iDIR/brightness-60.png" 21 | elif [ "$current" -le "80" ]; then 22 | icon="$iDIR/brightness-80.png" 23 | else 24 | icon="$iDIR/brightness-100.png" 25 | fi 26 | } 27 | 28 | # Notify 29 | notify_user() { 30 | notify-send -e -h string:x-canonical-private-synchronous:brightness_notif -h int:value:$current -u low -i "$icon" "Brightness : $current%" 31 | } 32 | 33 | # Change brightness 34 | change_backlight() { 35 | brightnessctl set "$1" -n && get_icon && notify_user 36 | } 37 | 38 | # Execute accordingly 39 | case "$1" in 40 | "--get") 41 | get_backlight 42 | ;; 43 | "up") 44 | change_backlight "+10%" 45 | ;; 46 | "down") 47 | change_backlight "10%-" 48 | ;; 49 | *) 50 | get_backlight 51 | ;; 52 | esac 53 | -------------------------------------------------------------------------------- /config/hypr/scripts/browser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | browser_cache="$HOME/.config/hypr/.cache/.browser" 4 | browser_num=$(grep -v -n "default" "$browser_cache" | wc -l) 5 | browsers=($(grep -v "default" "$browser_cache")) 6 | default=$(grep "default=" "$browser_cache" | awk -F'=' '{print $2}') 7 | scripts_dir="$HOME/.config/hypr/scripts" 8 | 9 | choose_default() { 10 | if [[ "$browser_num" -gt 1 && -z "$default" ]]; then 11 | printf "[ Missing Default Browser ]\n==> You don't have a default browser. Choose which browser you want to set as default.\n\n" 12 | 13 | choose=("${browsers[@]}" "Reset") 14 | # Prompt user to choose a browser 15 | choice=$(gum choose --limit=1 "${choose[@]}") 16 | 17 | # Check if a valid choice was made 18 | if [[ "$choice" == "Reset" ]]; then 19 | sed -i "/^default=/d" "$browser_cache" 20 | notify-send "Default Browser Reset" "Default browser has been reset" 21 | elif [[ -n "$choice" ]]; then 22 | if grep -q "^default=" "$browser_cache"; then 23 | sed -i "s|^default=.*|default=$choice|" "$browser_cache" 24 | notify-send "Default Browser Set" "Default browser updated to: $choice" 25 | else 26 | echo "default=$choice" >> "$browser_cache" 27 | notify-send "Default Browser Set" "Default browser set to: $choice" 28 | fi 29 | else 30 | notify-send "Skipped" "No browser selected. Default browser not set." 31 | fi 32 | 33 | elif [[ "$browser_num" -eq 1 && -z "$default" ]]; then 34 | echo "default=$browsers" >> "$browser_cache" 35 | fi 36 | } 37 | 38 | 39 | open_browser() { 40 | if [[ "$default" == "" ]]; then 41 | "$scripts_dir/default_browser.sh" 42 | elif [[ ! "$default" == "firefox" ]]; then 43 | "$default" --enable-wayland-ime 44 | elif [[ "$default" == "firefox" ]]; then 45 | "$default" 46 | fi 47 | } 48 | 49 | case $1 in 50 | ch) 51 | choose_default 52 | ;; 53 | op) 54 | open_browser 55 | ;; 56 | esac 57 | -------------------------------------------------------------------------------- /config/hypr/scripts/cava.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bar="▁▂▃▄▅▆▇█" 4 | dict="s/;//g;" 5 | 6 | # creating "dictionary" to replace char with bar 7 | i=0 8 | while [ $i -lt ${#bar} ] 9 | do 10 | dict="${dict}s/$i/${bar:$i:1}/g;" 11 | i=$((i=i+1)) 12 | done 13 | 14 | # write cava config 15 | config_file="/tmp/waybarbar_cava_config" 16 | echo " 17 | [general] 18 | bars = 12 19 | 20 | [input] 21 | method = pulse 22 | source = auto 23 | 24 | [output] 25 | method = raw 26 | raw_target = /dev/stdout 27 | data_format = ascii 28 | ascii_max_range = 7 29 | " > $config_file 30 | 31 | # read stdout from cava 32 | cava -p $config_file | while read -r line; do 33 | echo $line | sed $dict 34 | done 35 | -------------------------------------------------------------------------------- /config/hypr/scripts/change_wallpaper_engine.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Wallpaper engine changing script (swww/hyprpaper) 3 | 4 | scripts="$HOME/.config/hypr/scripts" 5 | cache_dir="$HOME/.config/hypr/.cache" 6 | engine="$cache_dir/.engine" 7 | mkdir -p "$cache_dir" 8 | touch "$engine" 9 | 10 | # Function to display the prompt 11 | prompt() { 12 | echo "swww" 13 | echo "hyprpaper" 14 | } 15 | 16 | rofi_command="rofi -i -dmenu -config ~/.config/rofi/themes/rofi-wall-engine.rasi" 17 | 18 | # Main function 19 | main() { 20 | choice=$(prompt | ${rofi_command}) 21 | 22 | # Debugging: Output the choice to see what was selected 23 | echo "Selected choice: '$choice'" 24 | 25 | # If nothing is selected, exit without changing anything 26 | if [ -z "$choice" ]; then 27 | echo "No choice selected, exiting..." 28 | exit 0 29 | fi 30 | 31 | case "$choice" in 32 | "swww") 33 | echo "swww" > "$engine" 34 | killall hyprpaper 35 | ;; 36 | "hyprpaper") 37 | echo "hyprpaper" > "$engine" 38 | killall swww-daemon 39 | ;; 40 | *) 41 | echo "Invalid choice" 42 | exit 1 43 | ;; 44 | esac 45 | 46 | # Debugging: Output the content of the engine file 47 | echo "Engine set to: $(cat $engine)" 48 | } 49 | 50 | main && "$scripts/Wallpaper.sh" 51 | -------------------------------------------------------------------------------- /config/hypr/scripts/cliphist.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | scripts_dir=$HOME/.config/hypr/scripts 4 | 5 | case $1 in 6 | c) cliphist list | rofi -dmenu -theme-str "entry { placeholder: \" Search Clipboard\";} ${pos} ${r_override}" -theme-str "${fnt_override}" -config ~/.config/rofi/themes/rofi-clipboard.rasi | cliphist decode | wl-copy 7 | ;; 8 | w) if [ "$(echo -e "Yes\nNo" | rofi -dmenu -theme-str "entry { placeholder: \" Clear Clipboard History?\";} ${pos} ${r_override}" -theme-str "${fnt_override}" -config ~/.config/rofi/themes/rofi-clipboard.rasi)" == "Yes" ] ; then 9 | cliphist wipe 10 | fi 11 | ;; 12 | l) cliphist list | wc -l 13 | ;; 14 | *) echo -e "cliphist.sh [action]" 15 | echo "c : cliphist list and copy selected" 16 | echo "d : cliphist list and delete selected" 17 | echo "w : cliphist wipe database" 18 | echo "l : show the number of items in the clipboard" 19 | exit 1 20 | ;; 21 | esac 22 | -------------------------------------------------------------------------------- /config/hypr/scripts/default_browser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | browser_cache="$HOME/.config/hypr/.cache/.browser" 4 | scripts_dir="$HOME/.config/hypr/scripts" 5 | 6 | [[ ! -f "$browser_cache" ]] && touch "$browser_cache" 7 | 8 | # List of browsers to check. 9 | chromium_based=$(compgen -c | grep -- '-browser' | grep -E '^(brave|chromium|opera|vivaldi|zen)-browser$' | sed 's/-stable//' | sort -u) 10 | browsers=("firefox" "brave" "google-chrome-stable" "${chromium_based[@]}") 11 | 12 | IFS=$'\n' read -rd '' -a browsers <<<"$chromium_based" 13 | 14 | if [[ -n "$(command -v firefox)" ]]; then 15 | echo "firefox" >> "$browser_cache" 16 | fi 17 | 18 | if [[ -n "$(command -v brave)" ]]; then 19 | echo "brave" >> "$browser_cache" 20 | fi 21 | 22 | if [[ -n "$(command -v chromium)" ]]; then 23 | echo "chromium" >> "$browser_cache" 24 | fi 25 | 26 | if [[ -n "$(command -v google-chrome-stable)" ]]; then 27 | echo "google-chrome-stable" >> "$browser_cache" 28 | fi 29 | 30 | if [[ -n "$(command -v vivaldi)" ]]; then 31 | echo "vivaldi" >> "$browser_cache" 32 | fi 33 | 34 | # Loop through the list and append found browsers to the cache. 35 | for browser in "${browsers[@]}"; do 36 | if command -v "$browser" &>/dev/null && ! grep -qx "$browser" "$browser_cache"; then 37 | echo "Found: $browser" 38 | echo "$browser" >>"$browser_cache" 39 | fi 40 | done 41 | 42 | browsers_num=$(grep -v -n "default" "$browser_cache" | wc -l) 43 | default=$(grep "default=" "$browser_cache" | awk -F'=' '{print $2}') 44 | 45 | if [[ "$browsers_num" -gt 1 && -z "$default" ]]; then 46 | notify-send "Missing Default Browser" "You need to set a default browser. Opening kitty to set a default browser." && sleep 5 47 | kitty --title browser sh -c "$scripts_dir/browser.sh ch" 48 | elif [[ "$browsers_num" -eq 1 && -z "$default" ]]; then 49 | existing=$(grep -v "default=" "$browser_cache") 50 | notify-send "Default browser" "Setting $existing as your default browser." 51 | echo "default=$existing" >>"$browser_cache" 52 | fi 53 | 54 | case $1 in 55 | --reset) 56 | rm ~/.config/hypr/.cache/.browser 57 | notify-send "Reset" "Default browser list has been reset" 58 | "$HOME/.config/hypr/scripts/default_browser.sh" 59 | ;; 60 | esac 61 | -------------------------------------------------------------------------------- /config/hypr/scripts/edit-dotfiles.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Rofi menu for Quick Edit / View of Settings (SUPER E) 3 | 4 | hypr_dir="$HOME/.config/hypr" 5 | hypr_configs="$hypr_dir/configs" 6 | scripts="$hypr_dir/scripts" 7 | rofi="$HOME/.config/rofi" 8 | swaync="$HOME/.config/swaync" 9 | waybar="$HOME/.config/waybar" 10 | kitty="$HOME/.config/kitty" 11 | 12 | menu(){ 13 | printf "Hyprland\n" 14 | printf "Scripts\n" 15 | printf "Kitty\n" 16 | printf "Waybar\n" 17 | printf "Rofi\n" 18 | printf "Swaync\n" 19 | } 20 | 21 | notify() { 22 | if [ -n "$(command -v code)" ]; then 23 | notify-send "Opening with VS Code" "$1" 24 | editor="code" 25 | elif [ -n "$(command -v nvim)" ]; then 26 | notify-send "Opening with Neovim" "$1" 27 | editor="nvim" 28 | else 29 | notify-send "Opening with Nano" "$1" 30 | editor="nano" # Default to nano if neither VS Code nor Neovim is found 31 | fi 32 | } 33 | 34 | main() { 35 | choice=$(menu | rofi -dmenu -config ~/.config/rofi/themes/rofi-edit-dots.rasi) 36 | 37 | case $choice in 38 | "Hyprland") 39 | notify "Hyprland (settings, keybinds and all)" 40 | $editor $hypr_configs 41 | ;; 42 | "Scripts") 43 | notify "Scripts (necessary scripts)" 44 | $editor $scripts 45 | ;; 46 | "Kitty") 47 | notify "Kitty (kitty terminal)" 48 | $editor $kitty 49 | ;; 50 | "Waybar") 51 | notify "Waybar (the top bar)" 52 | $editor $waybar 53 | ;; 54 | "Rofi") 55 | notify "Rofi (the app launcher)" 56 | $editor $rofi 57 | ;; 58 | "Swaync") 59 | notify "Swaync (sway notification center)" 60 | $editor $swaync 61 | ;; 62 | *) 63 | ;; 64 | esac 65 | } 66 | 67 | main 68 | -------------------------------------------------------------------------------- /config/hypr/scripts/hyprconf-v2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # script for updating the hyprconf from the github. 3 | 4 | 5 | # colors code 6 | color="\x1b[38;2;224;255;255m" 7 | end="\x1b[0m" 8 | 9 | # dirs and files 10 | _dir=`pwd` 11 | _cache="$HOME/.cache" 12 | _hyprconf="$_cache/hyprconf-v2" 13 | 14 | clear 15 | 16 | # fn for git actions 17 | _git_clone() { 18 | git clone --depth=1 https://github.com/shell-ninja/hyprconf-v2.git ~/.cache/hyprconf-v2 &> /dev/null 19 | } 20 | 21 | # fn for the process 22 | _upd() { 23 | if [[ -d "$_hyprconf" ]]; then 24 | echo -e ":: hyrconf-v2 dir is available in the cache. Removing it" 25 | echo 26 | rm -rf "$_hyprconf" && sleep 1 27 | fi 28 | 29 | echo -e "${color}=>${end} Now cloning the updated repository..." 30 | _git_clone 31 | 32 | if [[ -d "$_hyprconf" ]]; then 33 | echo -e ":: Successfully cloned repo." 34 | gum spin \ 35 | --spinner dot \ 36 | --title "Now updating in your system locally." -- \ 37 | sleep 2 38 | 39 | cd "$_hyprconf" 40 | chmod +x hyprconf-v2.sh 41 | ./hyprconf-v2.sh 42 | else 43 | echo -e "!! Sorry, could not clone repository..." 44 | gum spin \ 45 | --spinner dot \ 46 | --spinner.foreground "#FF0000" \ 47 | --title.foreground "#FF0000" \ 48 | --title "Exiting the script" -- \ 49 | sleep 3 50 | fi 51 | } 52 | 53 | # asking user for confirmation 54 | choice=$( 55 | gum confirm \ 56 | "Would you like to update your current 'hyprconf-v2'?" \ 57 | --affirmative "Yes! update" \ 58 | --selected.background "#e0ffff" \ 59 | --selected.foreground "#2f4f4f" \ 60 | --unselected.background "#2f4f4f" \ 61 | --unselected.foreground "#e0ffff" \ 62 | --negative "No!, skip" 63 | ) 64 | 65 | if [[ $? -eq 0 ]]; then 66 | gum spin \ 67 | --spinner dot \ 68 | --spinner.foreground "#e0ffff" \ 69 | --title.foreground "#e0ffff" \ 70 | --title "Updating..." -- \ 71 | sleep 2 72 | _upd 73 | else 74 | gum spin \ 75 | --spinner dot \ 76 | --spinner.foreground "#FF0000" \ 77 | --title.foreground "#FF0000" \ 78 | --title "Cancelling..." -- \ 79 | sleep 3 80 | 81 | exit 1 82 | fi 83 | 84 | # running the script 85 | case $1 in 86 | --hyprconf) 87 | kitty --title update sh -c "$HOME/.config/hypr/scripts/hyprconf-v2.sh" 88 | ;; 89 | esac 90 | -------------------------------------------------------------------------------- /config/hypr/scripts/hyprlock.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # hyprlock dir 4 | themes="$HOME/.config/hypr/lockscreens" 5 | rofi_command="rofi -show -dmenu -config ~/.config/rofi/themes/rofi-hyprlock-theme.rasi" 6 | destination="$HOME/.config/hypr/hyprlock.conf" 7 | 8 | 9 | # fn set lockscreen 10 | set_lockscreen() { 11 | local theme=$1 12 | local dest="$destination" 13 | 14 | ln -sf "$theme" "$dest" 15 | } 16 | 17 | # styles 18 | styles() { 19 | echo "Style-1" 20 | echo "Style-2" 21 | echo "Style-3" 22 | } 23 | 24 | # choice 25 | choice=$(styles | ${rofi_command}) 26 | 27 | case "$choice" in 28 | Style-1) 29 | set_lockscreen "$themes/hyprlock-1.conf" 30 | ;; 31 | Style-2) 32 | set_lockscreen "$themes/hyprlock-2.conf" 33 | ;; 34 | Style-3) 35 | set_lockscreen "$themes/hyprlock-3.conf" 36 | ;; 37 | esac 38 | 39 | -------------------------------------------------------------------------------- /config/hypr/scripts/keybinds.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Kill existing rofi instance if running 4 | if pidof rofi > /dev/null; then 5 | pkill rofi 6 | fi 7 | 8 | # Define the keybinds file 9 | KEYBINDS_FILE="$HOME/.config/hypr/.keybinds" 10 | 11 | # Check if the file exists 12 | if [[ ! -f "$KEYBINDS_FILE" ]]; then 13 | notify-send "Keybinds file not found: $KEYBINDS_FILE" 14 | exit 1 15 | fi 16 | 17 | # Format the keybinds for Rofi (replace ' | ' with a proper separator) 18 | formatted_keybinds=$(sed 's/ | / 󰶻 /g' "$KEYBINDS_FILE") 19 | 20 | # Show in Rofi as a single-line list 21 | keybinds=$(echo -e "$formatted_keybinds" | rofi -dmenu -markup -theme ~/.config/rofi/themes/rofi-keybinds.rasi -p "Keybinds") 22 | 23 | # Check if user selected a keybind 24 | if [[ -z "$keybinds" ]]; then 25 | echo ">< No keybind selected." 26 | exit 1 27 | fi 28 | -------------------------------------------------------------------------------- /config/hypr/scripts/menu.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dir="$HOME/.config/rofi/menu" 4 | theme='style-1' 5 | 6 | ## Run 7 | rofi \ 8 | -show drun \ 9 | -theme ${dir}/${theme}.rasi 10 | -------------------------------------------------------------------------------- /config/hypr/scripts/monitor.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | config_file="$HOME/.config/hypr/configs/monitor.conf" 4 | auto_generated_setting=$(cat $config_file | grep "monitor=,preferred,auto,auto") 5 | 6 | display() { 7 | cat << "EOF" 8 | __ ___ _ __ ____ __ 9 | / |/ /__ ___ (_) /____ ____ / __/__ / /___ _____ 10 | / /|_/ / _ \/ _ \/ / __/ _ \/ __/ _\ \/ -_) __/ // / _ \ 11 | /_/ /_/\___/_//_/_/\__/\___/_/ /___/\__/\__/\_,_/ .__/ 12 | /_/ 13 | EOF 14 | } 15 | 16 | if [[ "$auto_generated_setting" ]]; then 17 | 18 | gum spin \ 19 | --spinner minidot \ 20 | --spinner.foreground "#eabbd1" \ 21 | --title.foreground "#eabbd1" \ 22 | --title "Setting up for your Monitor" -- \ 23 | sleep 2 24 | 25 | monitor_name=$(xrandr | grep "connected" | awk '{print $1}') 26 | monitor_resolution=$(xrandr | grep "connected" | awk '{print $3}' | cut -d'+' -f1) 27 | 28 | display 29 | refresh_rate=$(gum choose \ 30 | --header \ 31 | "󰍹 Choose the refresh rate for your '$monitor_name' monitor:" \ 32 | --header.foreground "#eabbd1" \ 33 | --selected.foreground "#eabbd1" \ 34 | --cursor.foreground "#eabbd1" \ 35 | "60Hz" "75Hz" "120Hz" "144Hz" "165Hz" "180Hz" "200Hz" "240Hz" 36 | ) 37 | 38 | case $refresh_rate in 39 | 60Hz) 40 | settings="monitor=${monitor_name},${monitor_resolution}@60, 0x0, 1" 41 | ;; 42 | 75Hz) 43 | settings="monitor=${monitor_name},${monitor_resolution}@75, 0x0, 1" 44 | ;; 45 | 120Hz) 46 | settings="monitor=${monitor_name},${monitor_resolution}@120, 0x0, 1" 47 | ;; 48 | 144Hz) 49 | settings="monitor=${monitor_name},${monitor_resolution}@144, 0x0, 1" 50 | ;; 51 | 165Hz) 52 | settings="monitor=${monitor_name},${monitor_resolution}@165, 0x0, 1" 53 | ;; 54 | 180Hz) 55 | settings="monitor=${monitor_name},${monitor_resolution}@165, 0x0, 1" 56 | ;; 57 | 200Hz) 58 | settings="monitor=${monitor_name},${monitor_resolution}@200, 0x0, 1" 59 | ;; 60 | 240Hz) 61 | settings="monitor=${monitor_name},${monitor_resolution}@240, 0x0, 1" 62 | ;; 63 | *) 64 | echo -e ">< Nothing will be changed. Exiting.." 65 | exit 0 66 | ;; 67 | esac 68 | 69 | sed -i "s/$auto_generated_setting/$settings/" "$config_file" 70 | fi 71 | -------------------------------------------------------------------------------- /config/hypr/scripts/nightlight.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | value_file="$HOME/.config/hypr/.cache/.nightlight" 4 | default=6500 5 | notification_id_file="$HOME/.config/hypr/.cache/.nightlight_notify_id" 6 | 7 | # Initialize the value file if it doesn't exist 8 | if [[ ! -f "$value_file" ]]; then 9 | echo $default > $value_file 10 | fi 11 | 12 | value=$(cat $value_file) 13 | 14 | # Initialize the notification ID file if it doesn't exist 15 | if [[ ! -f "$notification_id_file" ]]; then 16 | echo 0 > $notification_id_file 17 | fi 18 | 19 | notification_id=$(cat $notification_id_file) 20 | 21 | if command -v hyprsunset &> /dev/null; then 22 | fn_change_value() { 23 | case $1 in 24 | --inc) 25 | if (( value + 100 <= 6500 )); then 26 | value=$((value + 100)) 27 | echo "$value" > "$value_file" 28 | notification_id=$(notify-send -p -r "$notification_id" "Nightlight" "Screen temp: ${value}k") 29 | echo "$notification_id" > "$notification_id_file" 30 | hyprsunset -t "$value" 31 | else 32 | notification_id=$(notify-send -p -r "$notification_id" "Nightlight Max Value" "Cannot increase more than ${value}k") 33 | echo "$notification_id" > "$notification_id_file" 34 | fi 35 | ;; 36 | --dec) 37 | if (( value - 100 >= 4000 )); then 38 | value=$((value - 100)) 39 | echo "$value" > "$value_file" 40 | notification_id=$(notify-send -p -r "$notification_id" "Nightlight" "Screen temp: ${value}k") 41 | echo "$notification_id" > "$notification_id_file" 42 | hyprsunset -t "$value" 43 | else 44 | notification_id=$(notify-send -p -r "$notification_id" "Nightlight Min Value" "Cannot decrease more than ${value}k") 45 | echo "$notification_id" > "$notification_id_file" 46 | fi 47 | ;; 48 | --value) 49 | value=5000 50 | echo "$value" > "$value_file" 51 | notification_id=$(notify-send -p -r "$notification_id" "Nightlight" "Screen temp set to 5000K") 52 | echo "$notification_id" > "$notification_id_file" 53 | hyprsunset -t 5000 54 | ;; 55 | --def) 56 | value=$default 57 | echo "$value" > "$value_file" 58 | notification_id=$(notify-send -p -r "$notification_id" "Nightlight" "Screen temp reset to default") 59 | echo "$notification_id" > "$notification_id_file" 60 | killall hyprsunset 61 | ;; 62 | esac 63 | } 64 | 65 | fn_change_value "$1" 66 | else 67 | echo "hyprsunset command not found. Please install it or add it to your PATH." 68 | fi 69 | 70 | printf "${value}K" 71 | -------------------------------------------------------------------------------- /config/hypr/scripts/notification.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Path to the sound files 4 | SOUND_FILE_UPDATE="$HOME/.config/hypr/sounds/update.wav" 5 | SOUND_FILE_SYSTEM="$HOME/.config/hypr/sounds/system-startup.wav" 6 | SOUND_FILE_LOGOUT="$HOME/.config/hypr/sounds/poweroff.mp3" 7 | 8 | # Function to send notification and play sound 9 | notify_with_sound() { 10 | notify-send "$1" 11 | paplay "$SOUND_FILE_UPDATE" 12 | } 13 | 14 | startup_with_sound() { 15 | paplay "$SOUND_FILE_SYSTEM" 16 | } 17 | 18 | logout_with_sound() { 19 | paplay "$SOUND_FILE_LOGOUT" 20 | } 21 | 22 | case $1 in 23 | sys) 24 | startup_with_sound 25 | ;; 26 | logout) 27 | logout_with_sound 28 | ;; 29 | notify) 30 | if [ -n "$2" ]; then 31 | notify_with_sound "$2" 32 | else 33 | echo "Please provide a message for the notification." 34 | fi 35 | ;; 36 | *) 37 | echo "Usage: $0 {sys|notify} [message]" 38 | ;; 39 | esac 40 | -------------------------------------------------------------------------------- /config/hypr/scripts/pkgupdate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | display() { 4 | cat << "EOF" 5 | ____ __ __ __ __ __ 6 | / __/_ _____ / /____ __ _ / / / /__ ___/ /__ _/ /____ 7 | _\ \/ // (_- Please press ENTER to close " 40 | read 41 | else 42 | gum spin \ 43 | --spinner dot \ 44 | --spinner.foreground "#eabbd1" \ 45 | --title "Skipping updating your system..." -- \ 46 | sleep 2 47 | fi 48 | -------------------------------------------------------------------------------- /config/hypr/scripts/polkit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Polkit possible paths files to check 4 | polkit=( 5 | "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1" 6 | "/usr/libexec/hyprpolkitagent" 7 | "/usr/lib/hyprpolkitagent" 8 | "/usr/lib/hyprpolkitagent/hyprpolkitagent" 9 | "/usr/lib/polkit-kde-authentication-agent-1" 10 | "/usr/lib/polkit-gnome-authentication-agent-1" 11 | "/usr/libexec/polkit-gnome-authentication-agent-1" 12 | "/usr/libexec/polkit-mate-authentication-agent-1" 13 | "/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1" 14 | "/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1" 15 | ) 16 | 17 | executed=false # Flag to track if a file has been executed 18 | 19 | # Loop through the list of files 20 | for file in "${polkit[@]}"; do 21 | if [ -e "$file" ]; then 22 | echo "File $file found, executing command..." 23 | exec "$file" 24 | executed=true 25 | break 26 | fi 27 | done 28 | 29 | # If none of the files were found, you can add a fallback command here 30 | if [ "$executed" == false ]; then 31 | echo "None of the specified files were found. Install a Polkit" 32 | fi 33 | -------------------------------------------------------------------------------- /config/hypr/scripts/power.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | case $1 in 4 | --poweroff) 5 | "$HOME/.config/hypr/scripts/uptime.sh" 6 | "$HOME/.config/hypr/scripts/notification.sh" logout 7 | systemctl poweroff --now 8 | ;; 9 | --reboot) 10 | "$HOME/.config/hypr/scripts/uptime.sh" 11 | "$HOME/.config/hypr/scripts/notification.sh" logout 12 | systemctl reboot --now 13 | ;; 14 | --logout) 15 | "$HOME/.config/hypr/scripts/uptime.sh" 16 | "$HOME/.config/hypr/scripts/notification.sh" logout 17 | hyprctl dispatch exit 1 18 | ;; 19 | --lock) 20 | hyprlock 21 | ;; 22 | esac 23 | -------------------------------------------------------------------------------- /config/hypr/scripts/powermenu.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Current Theme 4 | main_dir="$HOME/.config/rofi" 5 | dir="$main_dir/power_option" 6 | theme='small' 7 | 8 | # CMDs 9 | uptime="$(awk '{printf "%d hour, %d minutes\n", $1/3600, ($1%3600)/60}' /proc/uptime)" 10 | host=$(hostname) 11 | 12 | # Options 13 | shutdown='' 14 | reboot='' 15 | lock='' 16 | suspend='' 17 | logout='' 18 | yes='' 19 | no='' 20 | 21 | # Rofi CMD 22 | rofi_cmd() { 23 | rofi -dmenu \ 24 | -p "Goodbye ${USER}" \ 25 | -mesg "Uptime: $uptime" \ 26 | -theme ${dir}/${theme}.rasi 27 | } 28 | 29 | # Confirmation CMD 30 | confirm_cmd() { 31 | rofi -dmenu \ 32 | -p 'Confirmation' \ 33 | -mesg 'Are you Sure?' \ 34 | -theme ${main_dir}/rofi-confirm.rasi 35 | } 36 | 37 | # Ask for confirmation 38 | confirm_exit() { 39 | echo -e "$yes\n$no" | confirm_cmd 40 | } 41 | 42 | # Pass variables to rofi dmenu 43 | run_rofi() { 44 | echo -e "$lock\n$suspend\n$logout\n$reboot\n$shutdown" | rofi_cmd 45 | } 46 | 47 | # Execute Command 48 | run_cmd() { 49 | selected="$(confirm_exit)" 50 | if [[ "$selected" == "$yes" ]]; then 51 | if [[ $1 == '--shutdown' ]]; then 52 | "$HOME/.config/hypr/scripts/uptime.sh" 53 | "$HOME/.config/hypr/scripts/notification.sh" logout 54 | systemctl poweroff --now 55 | elif [[ $1 == '--reboot' ]]; then 56 | "$HOME/.config/hypr/scripts/uptime.sh" 57 | "$HOME/.config/hypr/scripts/notification.sh" logout 58 | systemctl reboot --now 59 | elif [[ $1 == '--lock' ]]; then 60 | hyprlock 61 | elif [[ $1 == '--logout' ]]; then 62 | "$HOME/.config/hypr/scripts/uptime.sh" 63 | "$HOME/.config/hypr/scripts/notification.sh" logout 64 | hyprctl dispatch exit 0 65 | elif [[ $1 == '--suspend' ]]; then 66 | "$HOME/.config/hypr/scripts/uptime.sh" 67 | "$HOME/.config/hypr/scripts/notification.sh" logout 68 | systemctl suspend 69 | fi 70 | else 71 | exit 0 72 | fi 73 | } 74 | 75 | # Actions 76 | chosen="$(run_rofi)" 77 | case ${chosen} in 78 | $shutdown) 79 | run_cmd --shutdown 80 | ;; 81 | $reboot) 82 | run_cmd --reboot 83 | ;; 84 | $lock) 85 | if [[ -x '/usr/bin/betterlockscreen' ]]; then 86 | betterlockscreen -l 87 | elif [[ -x '/usr/bin/hyprlock' ]]; then 88 | run_cmd --lock 89 | elif [[ -x '/usr/bin/swaylock' ]]; then 90 | swaylock 91 | fi 92 | ;; 93 | $suspend) 94 | run_cmd --suspend 95 | ;; 96 | $logout) 97 | run_cmd --logout 98 | ;; 99 | esac 100 | -------------------------------------------------------------------------------- /config/hypr/scripts/powermenu_theme_select.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # rofi them 4 | theme="$HOME/.config/rofi/themes/rofi-powertheme.rasi" 5 | 6 | # # Path to the script where the selected theme is saved 7 | menu_select_script="$HOME/.config/hypr/scripts/powermenu.sh" 8 | 9 | # Function to display the prompt 10 | prompt() { 11 | echo "fullscreen" 12 | echo "small" 13 | } 14 | 15 | rofi_command="rofi -i -dmenu -config $theme" 16 | 17 | # Present the list of styles using Rofi and get the selected style 18 | selected_style=$(prompt | ${rofi_command}) 19 | 20 | if [ -n "$selected_style" ]; then 21 | sed -i "s|^theme=.*|theme='${selected_style%.rasi}'|" "$menu_select_script" 22 | notify-send -t 3000 "Power menu" "Theme applied: ${selected_style}" 23 | fi 24 | -------------------------------------------------------------------------------- /config/hypr/scripts/rofi_theme.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | rofiConf="$HOME/.config/rofi/themes/rofi-wall-2.rasi" 4 | rofiStyleDir="$HOME/.config/rofi/menu" 5 | rofiAssetDir="$HOME/.config/rofi/assets" 6 | menu_select_script="$HOME/.config/hypr/scripts/menu.sh" 7 | 8 | # Set rofi scaling 9 | [[ "${rofiScale}" =~ ^[0-9]+$ ]] || rofiScale=10 10 | r_scale="configuration {font: \"JetBrainsMono Nerd Font ${rofiScale}\";}" 11 | elem_border=$(( hypr_border * 5 )) 12 | icon_border=$(( elem_border - 5 )) 13 | 14 | # Scale for monitor 15 | mon_x_res=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .width') 16 | mon_scale=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .scale' | sed "s/\.//") 17 | mon_x_res=$(( mon_x_res * 100 / mon_scale )) 18 | 19 | # Generate config 20 | elm_width=$(( (20 + 12 + 16 ) * rofiScale )) 21 | max_avail=$(( mon_x_res - (4 * rofiScale) )) 22 | col_count=$(( max_avail / elm_width )) 23 | [[ "${col_count}" -gt 5 ]] && col_count=5 24 | r_override="window{width:100%;} listview{columns:${col_count};} element{orientation:vertical;border-radius:${elem_border}px;} element-icon{border-radius:${icon_border}px;size:20em;} element-text{enabled:false;}" 25 | 26 | # List available styles and present in rofi menu with icons 27 | style_files=($(ls "$rofiAssetDir"/*.png)) 28 | 29 | # Extract only the file names for display 30 | style_names=("${style_files[@]##*/}") 31 | 32 | # Prepare the list for rofi with icons 33 | rofi_list="" 34 | for style_name in "${style_names[@]}"; do 35 | style_num=$(echo "$style_name" | awk -F '-' '{print $2}' | awk -F '.' '{print $1}') 36 | rofi_list+="${style_name}\x00icon\x1f${rofiAssetDir}/${style_name}\n" 37 | done 38 | 39 | # Present the list of styles using rofi and get the selected style 40 | selected_style=$(echo -e "$rofi_list" | rofi -dmenu -markup-rows -theme-str "$r_override" -config "$rofiConf" -p "Select Rofi theme") 41 | echo "selected style: $selected_style" 42 | 43 | # If a selection was made, apply the new style 44 | if [ -n "$selected_style" ]; then 45 | selected_style_number=$(echo "$selected_style" | awk -F '-' '{print $2}' | awk -F '.' '{print $1}') 46 | selected_style_path=$(ls ${rofiStyleDir}/style-${selected_style_number}.rasi) 47 | 48 | notify-send -t 2000 -i "$HOME/.config/rofi/assets/style-${selected_style_number}.png" "Theme applied" 49 | 50 | # Update the menu_select.sh script with the selected theme 51 | sed -i "s|^theme=.*|theme='style-${selected_style_number}'|" "$menu_select_script" 52 | fi 53 | -------------------------------------------------------------------------------- /config/hypr/scripts/screenshot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -z "$XDG_PICTURES_DIR" ] ; then 4 | XDG_PICTURES_DIR="$HOME/Pictures" 5 | fi 6 | 7 | sound_file="/usr/share/sounds/freedesktop/stereo/screen-capture.oga" 8 | swpy_dir="$HOME/.config/swappy" 9 | save_dir="${2:-$XDG_PICTURES_DIR/Screenshots}" 10 | save_file=$(date +'screenshot_%y%m%d_%H%M%S.png') 11 | temp_screenshot="/tmp/screenshot.png" 12 | 13 | mkdir -p $save_dir 14 | mkdir -p $swpy_dir 15 | echo -e "[Default]\nsave_dir=$save_dir\nsave_filename_format=$save_file" > $swpy_dir/config 16 | 17 | function print_error 18 | { 19 | cat << "EOF" 20 | ./screenshot.sh 21 | ...valid actions are... 22 | p : print all screens 23 | s : snip current screen 24 | EOF 25 | } 26 | 27 | ss_sound() { 28 | if [[ -f "$sound_file" ]]; then 29 | paplay "$sound_file" 30 | fi 31 | } 32 | 33 | option1="Fullscreen (delay 3 sec)" 34 | option2="Selected area" 35 | 36 | options="$option1\n$option2" 37 | 38 | choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/.config/rofi/themes/rofi-screenshots.rasi -i -no-show-icons -l 2 -width 30 -p) 39 | 40 | send_notification() { 41 | local msg="$1" 42 | notify-send -e "Taking Screenshot in" "$msg" 43 | sleep 1 44 | pkill swaync 45 | } 46 | 47 | case $choice in 48 | $option1) # full area, 3 sec delay. 49 | for time in 3 2 1; do 50 | send_notification "$time" 51 | done 52 | sleep 1 53 | grimblast copysave screen $temp_screenshot && ss_sound && swappy -f $temp_screenshot 54 | ;; 55 | $option2) # drag to manually snip an area / click on a window to print it 56 | grimblast --freeze copysave area $temp_screenshot && ss_sound && swappy -f $temp_screenshot 57 | sleep 0.5 58 | ;; 59 | *) # invalid option 60 | print_error ;; 61 | esac 62 | 63 | rm "$temp_screenshot" 64 | 65 | if [ -f "$save_dir/$save_file" ] ; then 66 | notify-send "saved in" "$save_dir" -i "$save_dir/$save_file" -r 91190 -t 2200 67 | fi 68 | 69 | swaync & 70 | -------------------------------------------------------------------------------- /config/hypr/scripts/sddm_theme.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Path to your theme.conf file 4 | THEME_CONF="/usr/share/sddm/themes/sequoia-sddm-theme/theme.conf" 5 | 6 | # Wallpaper settings 7 | if [[ -f "$HOME/.config/hypr/.cache/.theme" ]]; then 8 | theme=$(cat "$HOME/.config/hypr/.cache/.theme") 9 | wallDir="$HOME/.config/hypr/Wallpapers/${theme}" 10 | 11 | # Extract colors from pywal 12 | themeCss="$HOME/.config/waybar/colors/${theme}.css" 13 | FG=$(grep '@define-color foreground' "$themeCss" | cut -d ' ' -f3 | tr -d ';') 14 | BG=$(grep '@define-color background' "$themeCss" | cut -d ' ' -f3 | tr -d ';') 15 | else 16 | wallDir="$HOME/.config/hypr/Wallpaper" 17 | 18 | # Extract colors from pywal 19 | FG=$(jq -r '.special.foreground' < ~/.cache/wal/colors.json) 20 | BG=$(jq -r '.special.background' < ~/.cache/wal/colors.json) 21 | fi 22 | 23 | currentWall=$(cat "$HOME/.config/hypr/.cache/.wallpaper") 24 | wall="${wallDir}/${currentWall}.*" 25 | 26 | wallPath=$(ls $wall 2>/dev/null | head -n 1) 27 | wallName=$(basename "$wallPath") 28 | 29 | if [[ -z "$wallPath" || ! -f "$wallPath" ]]; then 30 | echo "Wallpaper not found: $wallPath" 31 | notify-send "SDDM" "❌ Wallpaper not found!" 32 | exit 1 33 | fi 34 | 35 | # Create blurred version of wallpaper 36 | # blurredWallName="blurred_$wallName" 37 | # blurredWallPath="/tmp/$blurredWallName" 38 | # convert "$wallPath" -blur 0x12 "$blurredWallPath" &> /dev/null || { 39 | # notify-send "SDDM" "❌ Failed to blur wallpaper!" 40 | # exit 1 41 | # } 42 | 43 | 44 | # Backup your theme.conf 45 | sudo cp "$THEME_CONF" "${THEME_CONF}.bak" 46 | 47 | # Copy blurred wallpaper to SDDM theme directory 48 | sudo cp "$wallPath" "/usr/share/sddm/themes/sequoia-sddm-theme/backgrounds/${wallName}" 49 | # suod rm -rf "$blurredWallPath" 50 | 51 | # Update theme.conf with new wallpaper and colors 52 | sudo sed -i "s|^wallpaper=.*|wallpaper=\"backgrounds/$wallName\"|g" "$THEME_CONF" 53 | sudo sed -i "s|^backgroundColour=.*|backgroundColour=\"$BG\"|g" "$THEME_CONF" 54 | sudo sed -i "s|^accentColour=.*|accentColour=\"$FG\"|g" "$THEME_CONF" 55 | sudo sed -i "s|^primaryColour=.*|primaryColour=\"$FG\"|g" "$THEME_CONF" 56 | sudo sed -i "s|^popupsForegroundColour=.*|popupsForegroundColour=\"$FG\"|g" "$THEME_CONF" 57 | sudo sed -i "s|^popupsBackgroundColour=.*|popupsBackgroundColour=\"$BG\"|g" "$THEME_CONF" 58 | 59 | notify-send "SDDM" "✅ Blurred wallpaper & colors updated!" 60 | # echo "SDDM theme updated with blurred wallpaper!" 61 | -------------------------------------------------------------------------------- /config/hypr/scripts/startup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | scrDir="$HOME/.config/hypr/scripts" 4 | wallpaper="$HOME/.config/hypr/.cache/current_wallpaper.png" 5 | monitor_config="$HOME/.config/hypr/configs/monitor.conf" 6 | 7 | # Transition config 8 | FPS=60 9 | TYPE="any" 10 | DURATION=2 11 | BEZIER=".43,1.19,1,.4" 12 | SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION --transition-bezier $BEZIER" 13 | 14 | if [ -f "$wallpaper" ]; then 15 | swww-daemon & 16 | swww img ${wallpaper} $SWWW_PARAMS 17 | else 18 | "$scrDir/Wallpaper.sh" 19 | fi 20 | 21 | "$scrDir/notification.sh" sys 22 | "$scrDir/wallcache.sh" 23 | "$scrDir/system.sh" run & 24 | hyprctl reload 25 | 26 | 27 | #_____ setup monitor ( updated teh monitor.conf for the high resolution and higher refresh rate ) 28 | 29 | # monitor_setting=$(cat $monitor_config | grep "monitor") 30 | # monitor_icon="$HOME/.config/hypr/icons/monitor.png" 31 | # if [[ "$monitor_setting" == "monitor=,preferred,auto,auto" ]]; then 32 | # notify-send -i "$monitor_icon" "Monitor Setup" "A popup for your monitor configuration will appear within 5 seconds." && sleep 5 33 | # kitty --title monitor sh -c "$scrDir/monitor.sh" 34 | # fi 35 | # 36 | # sleep 3 37 | 38 | "$scrDir/default_browser.sh" 39 | -------------------------------------------------------------------------------- /config/hypr/scripts/system.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | #-----------------------------------------# 5 | # Memory Usage Notify # 6 | #-----------------------------------------# 7 | notified=false 8 | while true; do 9 | 10 | # memory usage 11 | total_mem=$(free -m | awk 'NR==2 {print $2}') 12 | eighty_percent=$(( total_mem * 80 / 100 )) 13 | 14 | used_mem=$(free -m | awk 'NR==2 {print $3}') 15 | 16 | if [[ "$used_mem" -ge "$eighty_percent" ]]; then 17 | if [[ "$notified" == false ]]; then 18 | notify-send -u "critical" -i "$HOME/.config/hypr/icons/warning.png" \ 19 | "Warning!" "80% of memory used: $used_mem MB in use" 20 | notified=true 21 | fi 22 | else 23 | notified=false 24 | fi 25 | 26 | # Sleep for 60 seconds to reduce CPU usage 27 | sleep 5 28 | done 29 | 30 | 31 | -------------------------------------------------------------------------------- /config/hypr/scripts/theme_select.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Directories and theme file 4 | scrDir="$HOME/.config/hypr/scripts" 5 | assetsDir="$HOME/.config/hypr/assets" 6 | themeFile="$HOME/.config/hypr/.cache/.theme" 7 | 8 | # Retrieve image files 9 | PICS=($(ls "${assetsDir}" | grep -E ".jpg$|.jpeg$|.png$|.gif$")) 10 | 11 | # Rofi command ( style ) 12 | rofi_command2="rofi -show -dmenu -config ~/.config/rofi/themes/rofi-theme-select.rasi" 13 | 14 | menu() { 15 | for i in "${!PICS[@]}"; do 16 | # Displaying .gif to indicate animated images 17 | if [[ -z $(echo "${PICS[$i]}" | grep .gif$) ]]; then 18 | printf "$(echo "${PICS[$i]}" | cut -d. -f1)\x00icon\x1f${assetsDir}/${PICS[$i]}\n" 19 | else 20 | printf "${PICS[$i]}\n" 21 | fi 22 | done 23 | } 24 | 25 | theme=$(menu | ${rofi_command2}) 26 | 27 | # No choice case 28 | if [[ -z $theme ]]; then 29 | exit 0 30 | fi 31 | 32 | pic_index=-1 33 | for i in "${!PICS[@]}"; do 34 | filename=$(basename "${PICS[$i]}") 35 | if [[ "$filename" == "$theme"* ]]; then 36 | pic_index=$i 37 | break 38 | fi 39 | done 40 | 41 | if [[ $pic_index -ne -1 ]]; then 42 | notify-send -i "${assetsDir}/${PICS[$pic_index]}" "Changing to $theme" -t 1500 43 | else 44 | echo "Image not found." 45 | exit 1 46 | fi 47 | 48 | echo "$theme" > "$themeFile" 49 | 50 | "$scrDir/Wallpaper.sh" &> /dev/null 51 | 52 | # hyprland themes 53 | hyprTheme="$HOME/.config/hypr/confs/themes/${theme}.conf" 54 | ln -sf "$hyprTheme" "$HOME/.config/hypr/confs/decoration.conf" 55 | 56 | # rofi themes 57 | rofiTheme="$HOME/.config/rofi/colors/${theme}.rasi" 58 | ln -sf "$rofiTheme" "$HOME/.config/rofi/themes/rofi-colors.rasi" 59 | 60 | # Kitty themes 61 | kittyTheme="$HOME/.config/kitty/colors/${theme}.conf" 62 | ln -sf "$kittyTheme" "$HOME/.config/kitty/theme.conf" 63 | 64 | # Apply new colors dynamically 65 | kill -SIGUSR1 $(pidof kitty) 66 | 67 | # waybar themes 68 | waybarTheme="$HOME/.config/waybar/colors/${theme}.css" 69 | ln -sf "$waybarTheme" "$HOME/.config/waybar/style/theme.css" 70 | 71 | # set swaync colors 72 | swayncTheme="$HOME/.config/swaync/colors/${theme}.css" 73 | ln -sf "$swayncTheme" "$HOME/.config/swaync/colors.css" 74 | 75 | 76 | # Setting VS Code extension based on theme selection 77 | case "$theme" in 78 | Catppuccin) 79 | vscodeTheme="Catppuccin Mocha" 80 | ;; 81 | Everforest) 82 | vscodeTheme="Everforest Dark" 83 | ;; 84 | Gruvbox) 85 | vscodeTheme="Gruvbox Dark Soft" 86 | ;; 87 | Neon) 88 | vscodeTheme="Neon Dark Theme" 89 | ;; 90 | TokyoNight) 91 | vscodeTheme="Tokyo Storm Gogh" 92 | ;; 93 | *) 94 | echo "Warning: Unknown theme selected. No changes applied." 95 | exit 1 96 | ;; 97 | esac 98 | 99 | # Modify VS Code settings.json 100 | settingsFile="$HOME/.config/Code/User/settings.json" 101 | 102 | # Ensure the settings file exists 103 | if [[ ! -f "$settingsFile" ]]; then 104 | echo "[ ERROR ] VS Code settings file not found at $settingsFile" 105 | else 106 | sed -i "s|\"workbench.colorTheme\": \".*\"|\"workbench.colorTheme\": \"$vscodeTheme\"|" "$settingsFile" 107 | fi 108 | 109 | "$scrDir/Refresh.sh" &> /dev/null 110 | -------------------------------------------------------------------------------- /config/hypr/scripts/uptime.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # uptime cache file 4 | uptime_file="$HOME/.config/hypr/.cache/.uptime" 5 | [[ ! -f "$uptime_file" ]] && touch "$uptime_file" 6 | 7 | uptime=$(uptime -p | cut -d' ' -f2-) 8 | time=$(date +%d\/%m\/%Y\,\ %I:%M\ %p) 9 | 10 | notify-send "Pc Usage" "Date: $time\nUsage: $uptime" 11 | echo "$time -> $uptime" >> "$uptime_file" 12 | 13 | exit 0 14 | -------------------------------------------------------------------------------- /config/hypr/scripts/wallcache.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # Set environment variables 4 | export cacheDir="$HOME/.config/hypr/.cache" 5 | export thmbDir="${cacheDir}/thumbs" 6 | currentWall_name="$(cat "${cacheDir}/.wallpaper")" 7 | 8 | # Input file 9 | input_file="${cacheDir}/current_wallpaper.png" 10 | 11 | mkdir -p "${thmbDir}" 12 | chmod u+w "${thmbDir}" 13 | 14 | # Check if the input file exists 15 | if [ ! -f "${input_file}" ]; then 16 | exit 1 17 | fi 18 | 19 | # Define the fn_wallcache function 20 | fn_wallcache() { 21 | local wall_name="${1}" 22 | local x_wall="${2}" 23 | 24 | # Generate square thumbnail 25 | [ ! -e "${thmbDir}/${wall_name}.sqre" ] && \ 26 | magick "${x_wall}"[0] -strip -thumbnail 500x500^ -gravity center -extent 500x500 \ 27 | "${thmbDir}/${wall_name}.sqre" 28 | 29 | # Generate blurred image 30 | [ ! -e "${thmbDir}/${wall_name}.blur" ] && \ 31 | magick "${x_wall}"[0] -strip -scale 70% -blur 0x10 -resize 100% \ 32 | "${thmbDir}/${wall_name}.blur" 33 | 34 | # Generate quad image 35 | [ ! -e "${thmbDir}/${wall_name}.quad" ] && \ 36 | magick "${thmbDir}/${wall_name}.sqre" \ 37 | \( -size 500x500 xc:white -fill "rgba(0,0,0,0.7)" \ 38 | -draw "polygon 400,500 500,500 500,0 450,0" \ 39 | -fill black \ 40 | -draw "polygon 500,500 500,0 450,500" \) \ 41 | -alpha Off -compose CopyOpacity -composite \ 42 | "${thmbDir}/${wall_name}.png" && \ 43 | mv "${thmbDir}/${wall_name}.png" "${thmbDir}/${wall_name}.quad" 44 | 45 | [[ -f "${cacheDir}/${wall_name}.blur" ]] && rm -rf "${cacheDir}/${wall_name}.blur" 46 | cp -r "${thmbDir}/${wall_name}.blur" "${cacheDir}/wall.blur" 47 | 48 | [[ -f "${cacheDir}/${wall_name}.quad" ]] && rm -rf "${cacheDir}/${wall_name}.quad" 49 | cp -r "${thmbDir}/${wall_name}.quad" "${cacheDir}/wall.quad" 50 | } 51 | 52 | # Process the current wallpaper 53 | fn_wallcache "${currentWall_name}" "${input_file}" 54 | 55 | if [ ! -f "${thmbDir}/${currentWall_name}.quad" ]; then 56 | exit 1 57 | fi 58 | -------------------------------------------------------------------------------- /config/hypr/scripts/waybar-reload.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | case "$1" in 5 | --reload) 6 | killall waybar 7 | waybar & 8 | sleep 0.3 9 | hyprctl reload 10 | ;; 11 | --toggle) 12 | killall waybar || waybar & 13 | sleep 0.5 14 | hyprctl reload 15 | ;; 16 | esac 17 | 18 | -------------------------------------------------------------------------------- /config/hypr/sounds/error.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/sounds/error.wav -------------------------------------------------------------------------------- /config/hypr/sounds/poweroff.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/sounds/poweroff.mp3 -------------------------------------------------------------------------------- /config/hypr/sounds/screen-capture.oga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/sounds/screen-capture.oga -------------------------------------------------------------------------------- /config/hypr/sounds/system-startup.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/sounds/system-startup.wav -------------------------------------------------------------------------------- /config/hypr/sounds/update.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/hypr/sounds/update.wav -------------------------------------------------------------------------------- /config/kitty/colors/Catppuccin.conf: -------------------------------------------------------------------------------- 1 | foreground #CDD6F4 2 | background #1E1E2E 3 | selection_foreground #1E1E2E 4 | selection_background #F5E0DC 5 | 6 | # Cursor colors 7 | cursor #F5E0DC 8 | cursor_text_color #1E1E2E 9 | 10 | # URL underline color when hovering with mouse 11 | url_color #B4BEFE 12 | 13 | # Kitty window border colors 14 | active_border_color #CBA6F7 15 | inactive_border_color #8E95B3 16 | bell_border_color #EBA0AC 17 | 18 | # black 19 | color0 #43465A 20 | color8 #43465A 21 | 22 | # red 23 | color1 #F38BA8 24 | color9 #F38BA8 25 | 26 | # green 27 | color2 #A6E3A1 28 | color10 #A6E3A1 29 | 30 | # yellow 31 | color3 #F9E2AF 32 | color11 #F9E2AF 33 | 34 | # blue 35 | color4 #87B0F9 36 | color12 #87B0F9 37 | 38 | # magenta 39 | color5 #F5C2E7 40 | color13 #F5C2E7 41 | 42 | # cyan 43 | color6 #94E2D5 44 | color14 #94E2D5 45 | 46 | # white 47 | color7 #CDD6F4 48 | color15 #A1A8C9 49 | -------------------------------------------------------------------------------- /config/kitty/colors/Everforest.conf: -------------------------------------------------------------------------------- 1 | foreground #b4b9bc 2 | background #121b1c 3 | cursor #b4b9bc 4 | 5 | color0 #121b1c 6 | color8 #7d8183 7 | color1 #5A6669 8 | color9 #5A6669 9 | color2 #6B6D70 10 | color10 #6B6D70 11 | color3 #8D706F 12 | color11 #8D706F 13 | color4 #728970 14 | color12 #728970 15 | color5 #928C7A 16 | color13 #928C7A 17 | color6 #717B83 18 | color14 #717B83 19 | color7 #b4b9bc 20 | color15 #b4b9bc 21 | -------------------------------------------------------------------------------- /config/kitty/colors/Gruvbox.conf: -------------------------------------------------------------------------------- 1 | cursor #928374 2 | cursor_text_color background 3 | 4 | visual_bell_color #8ec07c 5 | bell_border_color #8ec07c 6 | 7 | active_border_color #d3869b 8 | inactive_border_color #665c54 9 | 10 | foreground #ebdbb2 11 | background #272727 12 | selection_foreground #655b53 13 | selection_background #ebdbb2 14 | url_color #d65c0d 15 | 16 | # black 17 | color0 #272727 18 | color8 #928373 19 | 20 | # red 21 | color1 #cc231c 22 | color9 #fb4833 23 | 24 | # green 25 | color2 #989719 26 | color10 #b8ba25 27 | 28 | # yellow 29 | color3 #d79920 30 | color11 #fabc2e 31 | 32 | # blue 33 | color4 #448488 34 | color12 #83a597 35 | 36 | # magenta 37 | color5 #b16185 38 | color13 #d3859a 39 | 40 | # cyan 41 | color6 #689d69 42 | color14 #8ec07b 43 | 44 | # white 45 | color7 #a89983 46 | color15 #ebdbb2 47 | -------------------------------------------------------------------------------- /config/kitty/colors/Neon.conf: -------------------------------------------------------------------------------- 1 | foreground #e1c5e1 2 | background #010001 3 | cursor #e1c5e1 4 | 5 | # Black 6 | color0 #010001 7 | color8 #9d899d 8 | 9 | # Red 10 | color1 #724B8E 11 | color9 #724B8E 12 | 13 | # Green 14 | color2 #A02B93 15 | color10 #A02B93 16 | 17 | # Yellow 18 | color3 #9F58A3 19 | color11 #9F58A3 20 | 21 | # Blue 22 | color4 #CE4AB7 23 | color12 #CE4AB7 24 | 25 | # Magenta 26 | color5 #E25ECF 27 | color13 #E25ECF 28 | 29 | # Cyan 30 | color6 #4A9AAF 31 | color14 #4A9AAF 32 | 33 | # White 34 | color7 #e1c5e1 35 | color15 #e1c5e1 36 | 37 | # Cursor 38 | cursor #c0caf5 39 | cursor_text_color #1a1b26 40 | 41 | # Selection highlight 42 | selection_foreground none 43 | selection_background #28344a 44 | -------------------------------------------------------------------------------- /config/kitty/colors/TokyoNight.conf: -------------------------------------------------------------------------------- 1 | foreground #a9b1d6 2 | background #181a26 3 | 4 | # Black 5 | color0 #414868 6 | color8 #414868 7 | 8 | # Red 9 | color1 #f7768e 10 | color9 #f7768e 11 | 12 | # Green 13 | color2 #73daca 14 | color10 #73daca 15 | 16 | # Yellow 17 | color3 #e0af68 18 | color11 #e0af68 19 | 20 | # Blue 21 | color4 #7aa2f7 22 | color12 #7aa2f7 23 | 24 | # Magenta 25 | color5 #bb9af7 26 | color13 #bb9af7 27 | 28 | # Cyan 29 | color6 #7dcfff 30 | color14 #7dcfff 31 | 32 | # White 33 | color7 #c0caf5 34 | color15 #c0caf5 35 | 36 | # Cursor 37 | cursor #c0caf5 38 | cursor_text_color #1a1b26 39 | 40 | # Selection highlight 41 | selection_foreground none 42 | selection_background #28344a 43 | -------------------------------------------------------------------------------- /config/kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | # include pywal colors 2 | include ~/.config/kitty/theme.conf 3 | 4 | font_family JetBrainsMono Nerd Font 5 | bold_font auto 6 | italic_font auto 7 | bold_italic_font auto 8 | cursor_trail 1 9 | 10 | font_size 14.0 11 | 12 | initial_window_width 95c 13 | initial_window_height 35c 14 | 15 | enable_image_protocol yes 16 | 17 | # window 18 | window_padding_width 5 19 | window_margin_width 5 20 | window_border_width 2px 21 | active_border_color #b4b9bc 22 | inactive_border_color #928C7A 23 | enabled_layouts Tall, * 24 | 25 | map kitty_mod+j third_window 26 | map kitty_mod+l second_window 27 | map kitty_mod+h first_window 28 | map ctrl+shift+[ next_window 29 | -------------------------------------------------------------------------------- /config/kitty/theme.conf: -------------------------------------------------------------------------------- 1 | /home/shell-ninja/.config/kitty/colors/Catppuccin.conf -------------------------------------------------------------------------------- /config/nvim/README.md: -------------------------------------------------------------------------------- 1 | ### This config is a collection of some youtubers. I am trying to make the keymapings little simila to Vs Code. 2 | -------------------------------------------------------------------------------- /config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | require("shell-ninja.core") 2 | require("shell-ninja.lazy") 3 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/core/init.lua: -------------------------------------------------------------------------------- 1 | require("shell-ninja.core.options") 2 | require("shell-ninja.core.keymaps") 3 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/core/keymaps.lua: -------------------------------------------------------------------------------- 1 | vim.g.mapleader = " " 2 | 3 | local keymap = vim.keymap -- for conciseness 4 | 5 | keymap.set("i", "jk", "", { desc = "Exit insert mode with jk" }) 6 | keymap.set("n", "cl", ":nohl", { desc = "Clear search highlights" }) 7 | keymap.set({ "i", "n" }, "", ":wq", { desc = "save and exit" }) 8 | 9 | -- keymaps similar to vs code 10 | keymap.set({ "i", "n" }, "", ":w", { desc = "save with Ctrl + s" }) -- save with ctrl + s 11 | keymap.set({ "i" }, "jf", ":wq", { desc = "save with j+f" }) -- save with ctrl + s 12 | keymap.set({ "i", "n" }, "", "u", { desc = "undo" }) -- undo with ctrl + z 13 | keymap.set({ "i", "n" }, "", "", { desc = "redo" }) -- redo with ctrl + y 14 | 15 | -- Delete a word backwards 16 | keymap.set("n", "dw", 'vb"_di') 17 | keymap.set("n", "", 'vb"_d') 18 | 19 | -- Select all 20 | keymap.set("n", "", "ggG") 21 | 22 | -- window management 23 | keymap.set("n", "v", "v", { desc = "Split window vertically" }) -- split window vertically 24 | keymap.set("n", "h", "s", { desc = "Split window horizontally" }) -- split window horizontally 25 | keymap.set("n", "ee", "=", { desc = "Make splits equal size" }) -- make split windows equal width & height 26 | keymap.set("n", "ex", "close", { desc = "Close current split" }) -- close current split window 27 | 28 | keymap.set("n", "to", "tabnew", { desc = "Open new tab" }) -- open new tab 29 | keymap.set("n", "tx", "tabclose", { desc = "Close current tab" }) -- close current tab 30 | keymap.set("n", "", "tabn", { desc = "Go to next tab" }) -- go to next tab 31 | keymap.set("n", "", "tabp", { desc = "Go to previous tab" }) -- go to previous tab 32 | keymap.set("n", "tf", "tabnew %", { desc = "Open current buffer in new tab" }) -- move current buffer to new tab 33 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/lazy.lua: -------------------------------------------------------------------------------- 1 | local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 2 | if not vim.loop.fs_stat(lazypath) then 3 | vim.fn.system({ 4 | "git", 5 | "clone", 6 | "--filter=blob:none", 7 | "https://github.com/folke/lazy.nvim.git", 8 | "--branch=stable", -- latest stable release 9 | lazypath, 10 | }) 11 | end 12 | vim.opt.rtp:prepend(lazypath) 13 | 14 | require("lazy").setup({ { import = "shell-ninja.plugins" }, { import = "shell-ninja.plugins.lsp" } }, { 15 | checker = { 16 | enabled = true, 17 | notify = false, 18 | }, 19 | change_detection = { 20 | notify = false, 21 | }, 22 | }) 23 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/alpha.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "goolord/alpha-nvim", 3 | event = "VimEnter", 4 | config = function() 5 | local alpha = require("alpha") 6 | local dashboard = require("alpha.themes.dashboard") 7 | 8 | -- Set header 9 | dashboard.section.header.val = { 10 | "┌────────────────────────────────────────────┐", 11 | "│ │", 12 | "│ ███████╗██╗ ██╗███████╗██╗ ██╗ │", 13 | "│ ██╔════╝██║ ██║██╔════╝██║ ██║ │", 14 | "│ ███████╗███████║█████╗ ██║ ██║ │", 15 | "│ ╚════██║██╔══██║██╔══╝ ██║ ██║ │", 16 | "│ ███████║██║ ██║███████╗███████╗███████╗ │", 17 | "│ ╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝ │", 18 | "│ ███╗ ██╗██╗███╗ ██╗ ██╗ █████╗ │", 19 | "│ ████╗ ██║██║████╗ ██║ ██║██╔══██╗ │", 20 | "│ ██╔██╗ ██║██║██╔██╗ ██║ ██║███████║ │", 21 | "│ ██║╚██╗██║██║██║╚██╗██║██ ██║██╔══██║ │", 22 | "│ ██║ ╚████║██║██║ ╚████║╚█████╔╝██║ ██║ │", 23 | "│ ╚═╝ ╚═══╝╚═╝╚═╝ ╚═══╝ ╚════╝ ╚═╝ ╚═╝ │", 24 | "│ │", 25 | "└────────────────────────────────────────────┘", 26 | } 27 | 28 | -- Set menu 29 | dashboard.section.buttons.val = { 30 | -- dashboard.button("e", " > New File", "ene"), 31 | -- dashboard.button("SPC ee", " > Toggle file explorer", "NvimTreeToggle"), 32 | dashboard.button("SPC ff", "󰱼 > Find File", "Telescope find_files"), 33 | dashboard.button("SPC fs", " > Find Word", "Telescope live_grep"), 34 | -- dashboard.button("SPC wr", "󰁯 > Restore Session For Current Directory", "SessionRestore"), 35 | dashboard.button("q", " > Quit NVIM", "qa"), 36 | } 37 | 38 | -- Send config to alpha 39 | alpha.setup(dashboard.opts) 40 | 41 | -- Disable folding on alpha buffer 42 | vim.cmd([[autocmd FileType alpha setlocal nofoldenable]]) 43 | end, 44 | } 45 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/auto-session.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "rmagatti/auto-session", 3 | config = function() 4 | local auto_session = require("auto-session") 5 | 6 | auto_session.setup({ 7 | auto_restore_enabled = false, 8 | auto_session_suppress_dirs = { "~/.config/nvim/sessions/" }, 9 | }) 10 | 11 | local keymap = vim.keymap 12 | 13 | keymap.set("n", "os", "SessionRestore", { desc = "Restore session for cwd" }) -- restore last workspace session for current directory 14 | keymap.set("n", "ws", "SessionSave", { desc = "Save session for auto session root dir" }) -- save workspace session for current working directory 15 | end, 16 | } 17 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/autopairs.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "windwp/nvim-autopairs", 3 | event = { "InsertEnter" }, 4 | dependencies = { 5 | "hrsh7th/nvim-cmp", 6 | }, 7 | config = function() 8 | -- import nvim-autopairs 9 | local autopairs = require("nvim-autopairs") 10 | 11 | -- configure autopairs 12 | autopairs.setup({ 13 | check_ts = true, -- enable treesitter 14 | ts_config = { 15 | lua = { "string" }, -- don't add pairs in lua string treesitter nodes 16 | javascript = { "template_string" }, -- don't add pairs in javscript template_string treesitter nodes 17 | java = false, -- don't check treesitter on java 18 | }, 19 | }) 20 | 21 | -- import nvim-autopairs completion functionality 22 | local cmp_autopairs = require("nvim-autopairs.completion.cmp") 23 | 24 | -- import nvim-cmp plugin (completions plugin) 25 | local cmp = require("cmp") 26 | 27 | -- make autopairs and completion work together 28 | cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) 29 | end, 30 | } 31 | 32 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/blink.lua: -------------------------------------------------------------------------------- 1 | return { 2 | 'saghen/blink.nvim', 3 | build = 'cargo build --release', -- for delimiters 4 | keys = { 5 | -- chartoggle 6 | { 7 | '', 8 | function() 9 | require('blink.chartoggle').toggle_char_eol(';') 10 | end, 11 | mode = { 'n', 'v' }, 12 | desc = 'Toggle ; at eol', 13 | }, 14 | { 15 | ',', 16 | function() 17 | require('blink.chartoggle').toggle_char_eol(',') 18 | end, 19 | mode = { 'n', 'v' }, 20 | desc = 'Toggle , at eol', 21 | }, 22 | }, 23 | lazy = false, 24 | opts = { 25 | chartoggle = { enabled = true }, 26 | indent = { enabled = true }, 27 | tree = { enabled = true } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/bufferline.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "akinsho/bufferline.nvim", 3 | dependencies = { "nvim-tree/nvim-web-devicons" }, 4 | version = "*", 5 | opts = { 6 | options = { 7 | mode = "tabs", 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/color-hithlighter.lua: -------------------------------------------------------------------------------- 1 | -- This file configures the nvim-highlight-colors plugin using Lazy.nvim 2 | 3 | return { 4 | "brenoprata10/nvim-highlight-colors", 5 | event = { "BufReadPre", "BufNewFile" }, -- optional: lazy load on file open 6 | config = function() 7 | require("nvim-highlight-colors").setup({ 8 | render = "foreground", -- to highlight only text 9 | -- render = "background", -- to highlight text background 10 | enable_named_colors = true, -- Enable color names like 'red' 11 | enable_tailwind = true, -- Enable Tailwind CSS colors 12 | }) 13 | end, 14 | } 15 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/colorscheme.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "catppuccin/nvim", 3 | name = "catppuccin", 4 | priority = 1000, 5 | config = function() 6 | local transparent = true -- set to true if you would like to enable transparency 7 | 8 | local bg = "#011628" 9 | local bg_dark = "#011423" 10 | local bg_highlight = "#143652" 11 | local bg_search = "#0A64AC" 12 | local bg_visual = "#275378" 13 | local fg = "#CBE0F0" 14 | local fg_dark = "#B4D0E9" 15 | local fg_gutter = "#627E97" 16 | local border = "#547998" 17 | 18 | require("catppuccin").setup({ 19 | flavour = "mocha", -- latte, frappe, macchiato, mocha 20 | background = { -- :h background 21 | light = "latte", 22 | dark = "mocha", 23 | }, 24 | transparent_background = true, -- disables setting the background color. 25 | show_end_of_buffer = false, -- shows the '~' characters after the end of buffers 26 | term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`) 27 | dim_inactive = { 28 | enabled = false, -- dims the background color of inactive window 29 | shade = "dark", 30 | percentage = 0.15, -- percentage of the shade to apply to the inactive window 31 | }, 32 | no_italic = false, -- Force no italic 33 | no_bold = false, -- Force no bold 34 | no_underline = false, -- Force no underline 35 | styles = { -- Handles the styles of general hi groups (see `:h highlight-args`): 36 | comments = { "italic" }, -- Change the style of comments 37 | conditionals = { "italic" }, 38 | loops = {}, 39 | functions = {}, 40 | keywords = { "bold" }, 41 | strings = {}, 42 | variables = { "bold" }, 43 | numbers = { "italic" }, 44 | booleans = {}, 45 | properties = {}, 46 | types = {}, 47 | operators = {}, 48 | -- miscs = {}, -- Uncomment to turn off hard-coded styles 49 | }, 50 | color_overrides = {}, 51 | custom_highlights = {}, 52 | default_integrations = true, 53 | integrations = { 54 | cmp = true, 55 | gitsigns = true, 56 | nvimtree = true, 57 | treesitter = true, 58 | notify = true, 59 | mini = { 60 | enabled = true, 61 | indentscope_color = "", 62 | }, 63 | -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations) 64 | }, 65 | }) 66 | vim.cmd("colorscheme catppuccin") 67 | end, 68 | } 69 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/comment.lua: -------------------------------------------------------------------------------- 1 | -- Easily comment visual regions/lines 2 | return { 3 | "numToStr/Comment.nvim", 4 | opts = {}, 5 | config = function() 6 | local opts = { noremap = true, silent = true } 7 | vim.keymap.set("n", "", require("Comment.api").toggle.linewise.current, opts) 8 | vim.keymap.set("n", "", require("Comment.api").toggle.linewise.current, opts) 9 | vim.keymap.set("n", "", require("Comment.api").toggle.linewise.current, opts) 10 | vim.keymap.set("v", "", "lua require('Comment.api').toggle.linewise(vim.fn.visualmode())", opts) 11 | vim.keymap.set("v", "", "lua require('Comment.api').toggle.linewise(vim.fn.visualmode())", opts) 12 | vim.keymap.set("v", "", "lua require('Comment.api').toggle.linewise(vim.fn.visualmode())", opts) 13 | end, 14 | } 15 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/dressing.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "stevearc/dressing.nvim", 3 | event = "VeryLazy", 4 | } 5 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/formatting.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "stevearc/conform.nvim", 3 | event = { "BufReadPre", "BufNewFile" }, 4 | config = function() 5 | local conform = require("conform") 6 | 7 | conform.setup({ 8 | formatters_by_ft = { 9 | javascript = { "prettier" }, 10 | typescript = { "prettier" }, 11 | javascriptreact = { "prettier" }, 12 | typescriptreact = { "prettier" }, 13 | svelte = { "prettier" }, 14 | css = { "prettier" }, 15 | html = { "prettier" }, 16 | json = { "prettier" }, 17 | yaml = { "prettier" }, 18 | markdown = { "prettier" }, 19 | graphql = { "prettier" }, 20 | liquid = { "prettier" }, 21 | lua = { "stylua" }, 22 | python = { "isort", "black" }, 23 | }, 24 | format_on_save = { 25 | lsp_fallback = true, 26 | async = false, 27 | timeout_ms = 1000, 28 | }, 29 | }) 30 | 31 | vim.keymap.set({ "n", "v" }, "mp", function() 32 | conform.format({ 33 | lsp_fallback = true, 34 | async = false, 35 | timeout_ms = 1000, 36 | }) 37 | end, { desc = "Format file or range (in visual mode)" }) 38 | end, 39 | } 40 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/gitsigns.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "lewis6991/gitsigns.nvim", 3 | event = { "BufReadPre", "BufNewFile" }, 4 | opts = { 5 | on_attach = function(bufnr) 6 | local gs = package.loaded.gitsigns 7 | 8 | local function map(mode, l, r, desc) 9 | vim.keymap.set(mode, l, r, { buffer = bufnr, desc = desc }) 10 | end 11 | 12 | -- Navigation 13 | map("n", "]h", gs.next_hunk, "Next Hunk") 14 | map("n", "[h", gs.prev_hunk, "Prev Hunk") 15 | 16 | -- Actions 17 | map("n", "hs", gs.stage_hunk, "Stage hunk") 18 | map("n", "hr", gs.reset_hunk, "Reset hunk") 19 | map("v", "hs", function() 20 | gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) 21 | end, "Stage hunk") 22 | map("v", "hr", function() 23 | gs.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) 24 | end, "Reset hunk") 25 | 26 | map("n", "hS", gs.stage_buffer, "Stage buffer") 27 | map("n", "hR", gs.reset_buffer, "Reset buffer") 28 | 29 | map("n", "hu", gs.undo_stage_hunk, "Undo stage hunk") 30 | 31 | map("n", "hp", gs.preview_hunk, "Preview hunk") 32 | 33 | map("n", "hb", function() 34 | gs.blame_line({ full = true }) 35 | end, "Blame line") 36 | map("n", "hB", gs.toggle_current_line_blame, "Toggle line blame") 37 | 38 | map("n", "hd", gs.diffthis, "Diff this") 39 | map("n", "hD", function() 40 | gs.diffthis("~") 41 | end, "Diff this ~") 42 | 43 | -- Text object 44 | map({ "o", "x" }, "ih", ":Gitsigns select_hunk", "Gitsigns select hunk") 45 | end, 46 | }, 47 | } 48 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/indent-blankline.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "lukas-reineke/indent-blankline.nvim", 3 | event = { "BufReadPre", "BufNewFile" }, 4 | main = "ibl", 5 | opts = { 6 | indent = { char = "┊" }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/init.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-lua/plenary.nvim", -- lua functions that many plugins use 3 | "christoomey/vim-tmux-navigator", -- tmux & split window navigation 4 | } 5 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/lazygit.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "kdheepak/lazygit.nvim", 3 | cmd = { 4 | "LazyGit", 5 | "LazyGitConfig", 6 | "LazyGitCurrentFile", 7 | "LazyGitFilter", 8 | "LazyGitFilterCurrentFile", 9 | }, 10 | -- optional for floating window border decoration 11 | dependencies = { 12 | "nvim-lua/plenary.nvim", 13 | }, 14 | -- setting the keybinding for LazyGit with 'keys' is recommended in 15 | -- order to load the plugin when the command is run for the first time 16 | keys = { 17 | { "lg", "LazyGit", desc = "Open lazy git" }, 18 | }, 19 | } 20 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/linting.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "mfussenegger/nvim-lint", 3 | event = { "BufReadPre", "BufNewFile" }, 4 | config = function() 5 | local lint = require("lint") 6 | 7 | lint.linters_by_ft = { 8 | javascript = { "eslint_d" }, 9 | typescript = { "eslint_d" }, 10 | javascriptreact = { "eslint_d" }, 11 | typescriptreact = { "eslint_d" }, 12 | svelte = { "eslint_d" }, 13 | python = { "pylint" }, 14 | } 15 | 16 | local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true }) 17 | 18 | vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { 19 | group = lint_augroup, 20 | callback = function() 21 | lint.try_lint() 22 | end, 23 | }) 24 | 25 | vim.keymap.set("n", "l", function() 26 | lint.try_lint() 27 | end, { desc = "Trigger linting for current file" }) 28 | end, 29 | } 30 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/lsp/mason.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "williamboman/mason.nvim", 3 | dependencies = { 4 | "williamboman/mason-lspconfig.nvim", 5 | "WhoIsSethDaniel/mason-tool-installer.nvim", 6 | }, 7 | config = function() 8 | -- import mason 9 | local mason = require("mason") 10 | 11 | -- import mason-lspconfig 12 | local mason_lspconfig = require("mason-lspconfig") 13 | 14 | local mason_tool_installer = require("mason-tool-installer") 15 | 16 | -- enable mason and configure icons 17 | mason.setup({ 18 | ui = { 19 | icons = { 20 | package_installed = "✓", 21 | package_pending = "➜", 22 | package_uninstalled = "✗", 23 | }, 24 | }, 25 | }) 26 | 27 | mason_lspconfig.setup({ 28 | -- list of servers for mason to install 29 | ensure_installed = { 30 | -- "tsserver", 31 | "html", 32 | "cssls", 33 | "tailwindcss", 34 | "svelte", 35 | "lua_ls", 36 | -- "graphql", 37 | "emmet_ls", 38 | -- "prismals", 39 | -- "pyright", 40 | }, 41 | }) 42 | 43 | mason_tool_installer.setup({ 44 | ensure_installed = { 45 | "prettier", -- prettier formatter 46 | -- "stylua", -- lua formatter 47 | "isort", -- python formatter 48 | "black", -- python formatter 49 | -- "pylint", 50 | "eslint_d", 51 | }, 52 | }) 53 | end, 54 | } 55 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/lualine.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-lualine/lualine.nvim", 3 | config = function() 4 | local mode = { 5 | "mode", 6 | fmt = function(str) 7 | return " " .. str 8 | -- return ' ' .. str:sub(1, 1) -- displays only the first character of the mode 9 | end, 10 | } 11 | 12 | local filename = { 13 | "filename", 14 | file_status = true, -- displays file status (readonly status, modified status) 15 | path = 0, -- 0 = just filename, 1 = relative path, 2 = absolute path 16 | } 17 | 18 | local hide_in_width = function() 19 | return vim.fn.winwidth(0) > 100 20 | end 21 | 22 | local diagnostics = { 23 | "diagnostics", 24 | sources = { "nvim_diagnostic" }, 25 | sections = { "error", "warn" }, 26 | symbols = { error = " ", warn = " ", info = " ", hint = " " }, 27 | colored = false, 28 | update_in_insert = false, 29 | always_visible = false, 30 | cond = hide_in_width, 31 | } 32 | 33 | local diff = { 34 | "diff", 35 | colored = false, 36 | symbols = { added = " ", modified = " ", removed = " " }, -- changes diff symbols 37 | cond = hide_in_width, 38 | } 39 | 40 | require("lualine").setup({ 41 | options = { 42 | icons_enabled = true, 43 | theme = "catppuccin", -- Set theme based on environment variable 44 | -- flavour = "mocha", 45 | -- Some useful glyphs: 46 | -- https://www.nerdfonts.com/cheat-sheet 47 | --         48 | section_separators = { left = "", right = "" }, 49 | component_separators = { left = "", right = "" }, 50 | disabled_filetypes = { "alpha", "neo-tree" }, 51 | always_divide_middle = true, 52 | }, 53 | sections = { 54 | lualine_a = { mode }, 55 | lualine_b = { "branch" }, 56 | lualine_c = { filename }, 57 | lualine_x = { diagnostics, diff, { "encoding", cond = hide_in_width }, { "filetype", cond = hide_in_width } }, 58 | lualine_y = { "location" }, 59 | lualine_z = { "progress" }, 60 | }, 61 | inactive_sections = { 62 | lualine_a = {}, 63 | lualine_b = {}, 64 | lualine_c = { { "filename", path = 1 } }, 65 | lualine_x = { { "location", padding = 0 } }, 66 | lualine_y = {}, 67 | lualine_z = {}, 68 | }, 69 | tabline = {}, 70 | extensions = { "fugitive" }, 71 | }) 72 | end, 73 | } 74 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/nvim-notify.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "rcarriga/nvim-notify", 4 | config = function() 5 | -- Set nvim-notify as the default notification handler 6 | vim.notify = require("notify") 7 | 8 | -- Optional: Configure nvim-notify 9 | require("notify").setup({ 10 | stages = "fade_in_slide_out", -- Animation style 11 | timeout = 3000, -- Notification timeout in ms 12 | background_colour = "#000000", -- Background color 13 | max_width = 50, -- Set a fixed max width (adjust as needed) 14 | max_height = 10, -- Optional: Set max height 15 | -- render = "minimal", -- Optional: Use a compact notification style 16 | icons = { 17 | ERROR = "", 18 | WARN = "", 19 | INFO = "", 20 | DEBUG = "", 21 | TRACE = "✎", 22 | }, 23 | }) 24 | 25 | -- Example: Test nvim-notify 26 | -- vim.notify("nvim-notify is installed!", "info", { title = "Success" }) 27 | end, 28 | }, 29 | } 30 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/nvim-tree.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-tree/nvim-tree.lua", 3 | dependencies = "nvim-tree/nvim-web-devicons", 4 | config = function() 5 | local nvimtree = require("nvim-tree") 6 | 7 | -- recommended settings from nvim-tree documentation 8 | vim.g.loaded_netrw = 1 9 | vim.g.loaded_netrwPlugin = 1 10 | 11 | nvimtree.setup({ 12 | view = { 13 | side = "right", 14 | relativenumber = true, 15 | float = { 16 | enable = false, 17 | quit_on_focus_loss = true, 18 | open_win_config = { 19 | relative = "editor", 20 | border = "rounded", 21 | width = 60, 22 | height = 25, 23 | row = 2, 24 | col = math.floor((vim.o.columns - 50) / 2), 25 | }, 26 | }, 27 | }, 28 | actions = { 29 | open_file = { 30 | quit_on_open = true, -- Keep nvim-tree open after selecting a file 31 | window_picker = { 32 | enable = false, -- Disable window picker to avoid closing current file 33 | }, 34 | }, 35 | }, 36 | renderer = { 37 | indent_markers = { 38 | enable = true, 39 | }, 40 | icons = { 41 | glyphs = {}, 42 | }, 43 | }, 44 | filters = { 45 | custom = { ".DS_Store" }, 46 | }, 47 | git = { 48 | ignore = false, 49 | }, 50 | }) 51 | 52 | -- set keymaps 53 | local keymap = vim.keymap -- for conciseness 54 | 55 | keymap.set("n", "", "NvimTreeToggle", { desc = "Toggle file explorer" }) 56 | keymap.set("n", "", "NvimTreeFindFileToggle", { desc = "Toggle file explorer on current file" }) 57 | keymap.set("n", "c", "NvimTreeCollapse", { desc = "Collapse file explorer" }) 58 | keymap.set("n", "r", "NvimTreeRefresh", { desc = "Refresh file explorer" }) 59 | end, 60 | } 61 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/substitute.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "gbprod/substitute.nvim", 3 | event = { "BufReadPre", "BufNewFile" }, 4 | config = function() 5 | local substitute = require("substitute") 6 | 7 | substitute.setup() 8 | 9 | -- set keymaps 10 | local keymap = vim.keymap -- for conciseness 11 | 12 | keymap.set("n", "s", substitute.operator, { desc = "Substitute with motion" }) 13 | keymap.set("n", "ss", substitute.line, { desc = "Substitute line" }) 14 | keymap.set("n", "S", substitute.eol, { desc = "Substitute to end of line" }) 15 | keymap.set("x", "s", substitute.visual, { desc = "Substitute in visual mode" }) 16 | end, 17 | } 18 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/surround.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "kylechui/nvim-surround", 3 | event = { "BufReadPre", "BufNewFile" }, 4 | version = "*", -- Use for stability; omit to use `main` branch for the latest features 5 | config = true, 6 | } 7 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/telescope.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-telescope/telescope.nvim", 3 | branch = "0.1.x", 4 | dependencies = { 5 | "nvim-lua/plenary.nvim", 6 | { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, 7 | "nvim-tree/nvim-web-devicons", 8 | "folke/todo-comments.nvim", 9 | }, 10 | config = function() 11 | local telescope = require("telescope") 12 | local actions = require("telescope.actions") 13 | local transform_mod = require("telescope.actions.mt").transform_mod 14 | 15 | local trouble = require("trouble") 16 | local trouble_telescope = require("trouble.sources.telescope") 17 | 18 | -- or create your custom action 19 | local custom_actions = transform_mod({ 20 | open_trouble_qflist = function(prompt_bufnr) 21 | trouble.toggle("quickfix") 22 | end, 23 | }) 24 | 25 | telescope.setup({ 26 | defaults = { 27 | path_display = { "smart" }, 28 | mappings = { 29 | i = { 30 | [""] = actions.move_selection_previous, -- move to prev result 31 | -- [""] = actions.move_selection_next, -- move to next result 32 | [""] = actions.send_selected_to_qflist + custom_actions.open_trouble_qflist, 33 | [""] = trouble_telescope.open, 34 | [""] = actions.select_vertical, -- open in vertical split 35 | }, 36 | }, 37 | }, 38 | }) 39 | 40 | telescope.load_extension("fzf") 41 | 42 | -- set keymaps 43 | local keymap = vim.keymap -- for conciseness 44 | 45 | keymap.set("n", "ff", "Telescope find_files", { desc = "Fuzzy find files in cwd" }) 46 | keymap.set("n", "fr", "Telescope oldfiles", { desc = "Fuzzy find recent files" }) 47 | keymap.set("n", "fs", "Telescope live_grep", { desc = "Find string in cwd" }) 48 | keymap.set("n", "fc", "Telescope grep_string", { desc = "Find string under cursor in cwd" }) 49 | keymap.set("n", "ft", "TodoTelescope", { desc = "Find todos" }) 50 | 51 | -- Add global search using live_grep 52 | keymap.set("n", "fg", function() 53 | require("telescope.builtin").live_grep({ 54 | prompt_title = "Global Search (Word)", 55 | cwd = vim.fn.expand("%:p:h"), -- Search from the current file's directory 56 | }) 57 | end, { desc = "Global search in directory" }) 58 | end, 59 | } 60 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/todo-comments.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "folke/todo-comments.nvim", 3 | event = { "BufReadPre", "BufNewFile" }, 4 | dependencies = { "nvim-lua/plenary.nvim" }, 5 | config = function() 6 | local todo_comments = require("todo-comments") 7 | 8 | -- set keymaps 9 | local keymap = vim.keymap -- for conciseness 10 | 11 | keymap.set("n", "]t", function() 12 | todo_comments.jump_next() 13 | end, { desc = "Next todo comment" }) 14 | 15 | keymap.set("n", "[t", function() 16 | todo_comments.jump_prev() 17 | end, { desc = "Previous todo comment" }) 18 | 19 | todo_comments.setup() 20 | end, 21 | } 22 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/toggleterminal.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "akinsho/toggleterm.nvim", 4 | config = true, 5 | cmd = "ToggleTerm", 6 | keys = { 7 | { "", "ToggleTerm", desc = "Toggle floating terminal" }, 8 | }, 9 | opts = { 10 | open_mapping = [[]], 11 | direction = "float", 12 | shade_filetypes = {}, 13 | hide_numbers = true, 14 | insert_mappings = true, 15 | terminal_mappings = true, 16 | start_in_insert = true, 17 | close_on_exit = true, 18 | }, 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/treesitter.lua: -------------------------------------------------------------------------------- 1 | return { -- Highlight, edit, and navigate code 2 | "nvim-treesitter/nvim-treesitter", 3 | build = ":TSUpdate", 4 | main = "nvim-treesitter.configs", -- Sets main module to use for opts 5 | -- [[ Configure Treesitter ]] See `:help nvim-treesitter` 6 | opts = { 7 | ensure_installed = { 8 | "lua", 9 | "python", 10 | "javascript", 11 | "typescript", 12 | "vimdoc", 13 | "vim", 14 | "regex", 15 | "terraform", 16 | "sql", 17 | "dockerfile", 18 | "toml", 19 | "json", 20 | "java", 21 | "groovy", 22 | "go", 23 | "gitignore", 24 | "graphql", 25 | "yaml", 26 | "make", 27 | "cmake", 28 | "markdown", 29 | "markdown_inline", 30 | "bash", 31 | "tsx", 32 | "css", 33 | "html", 34 | }, 35 | auto_install = true, 36 | highlight = { 37 | enable = true, 38 | additional_vim_regex_highlighting = { "ruby" }, 39 | }, 40 | indent = { enable = true, disable = { "ruby" } }, 41 | }, 42 | } 43 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/trouble.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "folke/trouble.nvim", 3 | dependencies = { "nvim-tree/nvim-web-devicons", "folke/todo-comments.nvim" }, 4 | opts = { 5 | focus = true, 6 | }, 7 | cmd = "Trouble", 8 | keys = { 9 | { "xw", "Trouble diagnostics toggle", desc = "Open trouble workspace diagnostics" }, 10 | { "xd", "Trouble diagnostics toggle filter.buf=0", desc = "Open trouble document diagnostics" }, 11 | { "xq", "Trouble quickfix toggle", desc = "Open trouble quickfix list" }, 12 | { "xl", "Trouble loclist toggle", desc = "Open trouble location list" }, 13 | { "xt", "Trouble todo toggle", desc = "Open todos in trouble" }, 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/vim-maximizer.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "szw/vim-maximizer", 3 | keys = { 4 | { "sm", "MaximizerToggle", desc = "Maximize/minimize a split" }, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /config/nvim/lua/shell-ninja/plugins/which-key.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "folke/which-key.nvim", 3 | event = "VeryLazy", 4 | init = function() 5 | vim.o.timeout = true 6 | vim.o.timeoutlen = 500 7 | end, 8 | opts = { 9 | -- your configuration comes here 10 | -- or leave it empty to use the default settings 11 | -- refer to the configuration section below 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /config/nwg-look/config: -------------------------------------------------------------------------------- 1 | { 2 | "export-settings-ini": true, 3 | "export-gtkrc-20": true, 4 | "export-index-theme": true, 5 | "export-xsettingsd": true, 6 | "export-gtk4-symlinks": false 7 | } -------------------------------------------------------------------------------- /config/qt5ct/qt5ct.conf: -------------------------------------------------------------------------------- 1 | [Appearance] 2 | color_scheme_path=/usr/share/qt5ct/colors/airy.conf 3 | custom_palette=false 4 | icon_theme=TokyoNight-SE 5 | standard_dialogs=default 6 | style=kvantum-dark 7 | 8 | [Fonts] 9 | fixed="Fira Code,9,-1,5,50,0,0,0,0,0,Regular" 10 | general="FiraCode Nerd Font Mono,12,-1,5,50,0,0,0,0,0,Regular" 11 | 12 | [Interface] 13 | activate_item_on_single_click=1 14 | buttonbox_layout=0 15 | cursor_flash_time=1000 16 | dialog_buttons_have_icons=1 17 | double_click_interval=400 18 | gui_effects=@Invalid() 19 | keyboard_scheme=2 20 | menus_have_icons=true 21 | show_shortcuts_in_context_menus=true 22 | stylesheets=@Invalid() 23 | toolbutton_style=4 24 | underline_shortcut=1 25 | wheel_scroll_lines=3 26 | 27 | [SettingsWindow] 28 | geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\xc7\0\0\0\x42\0\0\ai\0\0\x2*\0\0\x3\xc7\0\0\0\x42\0\0\ai\0\0\x2*\0\0\0\0\0\0\0\0\a\x80\0\0\x3\xc7\0\0\0\x42\0\0\ai\0\0\x2*) 29 | 30 | [Troubleshooting] 31 | force_raster_widgets=1 32 | ignored_applications=@Invalid() 33 | -------------------------------------------------------------------------------- /config/qt6ct/qt6ct.conf: -------------------------------------------------------------------------------- 1 | [Appearance] 2 | color_scheme_path=/usr/share/qt6ct/colors/darker.conf 3 | custom_palette=true 4 | icon_theme=TokyoNight-SE 5 | standard_dialogs=gtk3 6 | style=kvantum-dark 7 | 8 | [Fonts] 9 | fixed="Fira Code,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" 10 | general="FiraCode Nerd Font Mono,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" 11 | 12 | [Interface] 13 | activate_item_on_single_click=1 14 | buttonbox_layout=0 15 | cursor_flash_time=1000 16 | dialog_buttons_have_icons=1 17 | double_click_interval=400 18 | gui_effects=@Invalid() 19 | keyboard_scheme=2 20 | menus_have_icons=true 21 | show_shortcuts_in_context_menus=true 22 | stylesheets=@Invalid() 23 | toolbutton_style=4 24 | underline_shortcut=1 25 | wheel_scroll_lines=3 26 | 27 | [SettingsWindow] 28 | geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\xa2\0\0\x1\xe8\0\0\0\0\0\0\0\0\0\0\x3\xbf\0\0\x2\x5\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x3\xa2\0\0\x1\xe8) 29 | 30 | [Troubleshooting] 31 | force_raster_widgets=1 32 | ignored_applications=@Invalid() 33 | -------------------------------------------------------------------------------- /config/rofi/assets/style-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/rofi/assets/style-1.png -------------------------------------------------------------------------------- /config/rofi/assets/style-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/rofi/assets/style-2.png -------------------------------------------------------------------------------- /config/rofi/assets/style-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/rofi/assets/style-3.png -------------------------------------------------------------------------------- /config/rofi/colors/Catppuccin.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | background: #11111be6; 3 | foreground: #cdd6f4ff; 4 | selected-normal-background: #b4befeff; 5 | selected-normal-foreground: #11111bff; 6 | border-color: @background; 7 | } 8 | -------------------------------------------------------------------------------- /config/rofi/colors/Everforest.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | background: #121b1c; 3 | foreground: #b4b9bc; 4 | selected-normal-background: #6B6D70; 5 | selected-normal-foreground: @foreground; 6 | border-color: @background; 7 | } 8 | -------------------------------------------------------------------------------- /config/rofi/colors/Gruvbox.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | background: #282828FF; 3 | foreground: #CBCED3FF; 4 | selected-normal-background: #475437FF; 5 | selected-normal-foreground: @foreground; 6 | border-color: @background; 7 | } 8 | -------------------------------------------------------------------------------- /config/rofi/colors/Neon.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | background: #010001FF; 3 | foreground: #e1c5e1FF; 4 | selected-normal-background: #A02B93; 5 | selected-normal-foreground: @foreground; 6 | border-color: @background; 7 | } 8 | -------------------------------------------------------------------------------- /config/rofi/colors/TokyoNight.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | background: #24283be6; 3 | foreground: #c0caf5ff; 4 | selected-normal-background: #7aa2f7ff; 5 | selected-normal-foreground: #24283bff; 6 | border-color: @background; 7 | } 8 | -------------------------------------------------------------------------------- /config/rofi/rofi-confirm.rasi: -------------------------------------------------------------------------------- 1 | /*****----- Configuration -----*****/ 2 | configuration { 3 | show-icons: false; 4 | hover-select: true; 5 | me-select-entry: "MouseSecondary"; 6 | me-accept-entry: "MousePrimary"; 7 | } 8 | 9 | /*****----- Global Properties -----*****/ 10 | @import "~/.config/rofi/themes/rofi-colors.rasi" 11 | @import "~/.config/rofi/rofi-vars.rasi" 12 | 13 | 14 | /*****----- Main Window -----*****/ 15 | window { 16 | location: center; 17 | anchor: center; 18 | fullscreen: false; 19 | width: 500px; 20 | border: @border-size; 21 | border-color: @foreground; 22 | border-radius: @radius; 23 | cursor: "default"; 24 | background-color: @background; 25 | } 26 | 27 | /*****----- Main Box -----*****/ 28 | mainbox { 29 | spacing: 30px; 30 | padding: 30px; 31 | background-color: transparent; 32 | children: [ "message", "listview" ]; 33 | } 34 | 35 | /*****----- Message -----*****/ 36 | message { 37 | margin: 0px; 38 | padding: 20px; 39 | border-radius: @radius; 40 | background-color: transparent; 41 | text-color: @foreground; 42 | } 43 | textbox { 44 | background-color: inherit; 45 | text-color: inherit; 46 | vertical-align: 0.5; 47 | horizontal-align: 0.5; 48 | placeholder-color: @foreground; 49 | blink: true; 50 | markup: true; 51 | } 52 | 53 | /*****----- Listview -----*****/ 54 | listview { 55 | columns: 2; 56 | lines: 1; 57 | cycle: true; 58 | dynamic: true; 59 | scrollbar: false; 60 | layout: vertical; 61 | reverse: false; 62 | fixed-height: true; 63 | fixed-columns: true; 64 | 65 | spacing: 30px; 66 | background-color: transparent; 67 | text-color: @foreground; 68 | cursor: "default"; 69 | } 70 | 71 | /*****----- Elements -----*****/ 72 | element { 73 | padding: 60px 10px; 74 | border-radius: @radius; 75 | background-color: transparent; 76 | text-color: @foreground; 77 | cursor: pointer; 78 | } 79 | element-text { 80 | font: "feather 48"; 81 | background-color: transparent; 82 | text-color: inherit; 83 | cursor: inherit; 84 | vertical-align: 0.5; 85 | horizontal-align: 0.5; 86 | } 87 | element selected.normal { 88 | background-color: @foreground; 89 | text-color: @background; 90 | } 91 | -------------------------------------------------------------------------------- /config/rofi/rofi-vars.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | radius: 8px; 3 | radius-second: 4px; 4 | border-size: 2px; 5 | } 6 | -------------------------------------------------------------------------------- /config/rofi/themes/README.md: -------------------------------------------------------------------------------- 1 | ### This `rofi-pywal.rasi` file is generated every time you switch a wallpaper. -------------------------------------------------------------------------------- /config/rofi/themes/rofi-colors.rasi: -------------------------------------------------------------------------------- 1 | /home/shell-ninja/.config/rofi/colors/Neon.rasi -------------------------------------------------------------------------------- /config/swaync/colors.css: -------------------------------------------------------------------------------- 1 | /home/mahin/.config/swaync/colors/Catppuccin.css -------------------------------------------------------------------------------- /config/swaync/colors/Catppuccin.css: -------------------------------------------------------------------------------- 1 | @define-color noti-border-color #cdd6f4; 2 | @define-color noti-bg #1e1e2e; 3 | @define-color noti-bg-hover-alt #45475a; 4 | @define-color noti-bg-alt #45475a; 5 | @define-color noti-fg #cdd6f4; 6 | @define-color noti-bg-hover #89b4fa; 7 | @define-color noti-bg-focus #1e1e2e; 8 | @define-color noti-close-bg #f5c2e7; 9 | @define-color noti-close-bg-hover #f38ba8; 10 | @define-color noti-urgent #fab387; 11 | @define-color bg-selected #1e1e2e; 12 | -------------------------------------------------------------------------------- /config/swaync/colors/Everforest.css: -------------------------------------------------------------------------------- 1 | @define-color noti-border-color #d3c6aa; 2 | @define-color noti-bg #2f383e; 3 | @define-color noti-bg-hover-alt #4b565c; 4 | @define-color noti-bg-alt #4b565c; 5 | @define-color noti-fg #d3c6aa; 6 | @define-color noti-bg-hover #a7c080; 7 | @define-color noti-bg-focus #2f383e; 8 | @define-color noti-close-bg #e69875; 9 | @define-color noti-close-bg-hover #e67e80; 10 | @define-color noti-urgent #e67e80; 11 | @define-color bg-selected #2f383e; 12 | -------------------------------------------------------------------------------- /config/swaync/colors/Gruvbox.css: -------------------------------------------------------------------------------- 1 | @define-color noti-border-color #ebdbb2; 2 | @define-color noti-bg #282828; 3 | @define-color noti-bg-hover-alt #3c3836; 4 | @define-color noti-bg-alt #3c3836; 5 | @define-color noti-fg #ebdbb2; 6 | @define-color noti-bg-hover #83a598; 7 | @define-color noti-bg-focus #282828; 8 | @define-color noti-close-bg #fe8019; 9 | @define-color noti-close-bg-hover #fb4934; 10 | @define-color noti-urgent #fb4934; 11 | @define-color bg-selected #282828; 12 | -------------------------------------------------------------------------------- /config/swaync/colors/Neon.css: -------------------------------------------------------------------------------- 1 | @define-color noti-border-color #cdd6f4; 2 | @define-color noti-bg #010001; 3 | @define-color noti-bg-hover-alt #45475a; 4 | @define-color noti-bg-alt #45475a; 5 | @define-color noti-fg #e1c5e1; 6 | @define-color noti-bg-hover #724B8E; 7 | @define-color noti-bg-focus #1e1e2e; 8 | @define-color noti-close-bg #724B8E; 9 | @define-color noti-close-bg-hover #E25ECF; 10 | @define-color noti-urgent #4A9AAF; 11 | @define-color bg-selected #1e1e2e; 12 | -------------------------------------------------------------------------------- /config/swaync/colors/TokyoNight.css: -------------------------------------------------------------------------------- 1 | @define-color noti-border-color #c0caf5; 2 | @define-color noti-bg #1a1b26; 3 | @define-color noti-bg-hover-alt #414868; 4 | @define-color noti-bg-alt #414868; 5 | @define-color noti-fg #c0caf5; 6 | @define-color noti-bg-hover #7aa2f7; 7 | @define-color noti-bg-focus #1a1b26; 8 | @define-color noti-close-bg #bb9af7; 9 | @define-color noti-close-bg-hover #f7768e; 10 | @define-color noti-urgent #f7768e; 11 | @define-color bg-selected #1a1b26; 12 | -------------------------------------------------------------------------------- /config/swaync/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "/etc/xdg/swaync/configSchema.json", 3 | "positionX": "right", 4 | "positionY": "top", 5 | "layer": "overlay", 6 | "control-center-margin-top": 20, 7 | "control-center-margin-bottom": 2, 8 | "control-center-margin-right": 20, 9 | "control-center-margin-left": 20, 10 | "notification-icon-size": 48, 11 | "notification-body-image-height": 160, 12 | "notification-body-image-width": 90, 13 | "timeout": 6, 14 | "timeout-low": 4, 15 | "timeout-critical": 0, 16 | "fit-to-screen": false, 17 | "control-center-width": 430, 18 | "control-center-height": 1000, 19 | "notification-window-width": 366, 20 | "keyboard-shortcuts": true, 21 | "image-visibility": "when-available", 22 | "transition-time": 100, 23 | "hide-on-clear": true, 24 | "hide-on-action": true, 25 | "script-fail-notify": true, 26 | "scripts": { 27 | "example-script": { 28 | "exec": "echo 'Do something...'", 29 | "urgency": "Normal" 30 | } 31 | }, 32 | "notification-visibility": { 33 | "example-name": { 34 | "state": "muted", 35 | "urgency": "Low", 36 | "app-name": "Spotify" 37 | } 38 | }, 39 | "widgets": [ 40 | "label", 41 | "menubar", 42 | "volume", 43 | "mpris", 44 | "title", 45 | "dnd", 46 | "notifications" 47 | ], 48 | "widget-config": { 49 | "title": { 50 | "text": "Notifications", 51 | "clear-all-button": true, 52 | "button-text": "Clear All" 53 | }, 54 | "dnd": { 55 | "text": "Do Not Disturb" 56 | }, 57 | "label": { 58 | "max-lines": 1, 59 | "text": "Controll Center" 60 | }, 61 | "mpris": { 62 | "image-size": 96, 63 | "image-radius": 6 64 | }, 65 | "backlight": { 66 | "label": "", 67 | "device": "intel_backlight", 68 | "min": 10 69 | }, 70 | "backlight#KB": { 71 | "label": " ", 72 | "device": "asus::kbd_backlight", 73 | "subsystem": "leds" 74 | }, 75 | "volume": { 76 | "label": "" 77 | }, 78 | "menubar": { 79 | "menu#network-buttons": { 80 | "label": "", 81 | "position": "center", 82 | "actions": [ 83 | { 84 | "label": "Network Settings", 85 | "command": "nm-connection-editor" 86 | } 87 | ] 88 | }, 89 | "menu#bluetooth-buttons": { 90 | "label": "", 91 | "position": "center", 92 | "actions": [ 93 | { 94 | "label": "Bluetooth Manager", 95 | "command": "blueman" 96 | } 97 | ] 98 | }, 99 | "menu#settings": { 100 | "label": "", 101 | "position": "center", 102 | "actions": [ 103 | { 104 | "label": "Hyprland Configuration", 105 | "command": "kitty --title browser sh -c $HOME/.config/hypr/scripts/settings.sh" 106 | } 107 | ] 108 | }, 109 | "menu#powermode-buttons": { 110 | "label": "", 111 | "position": "center", 112 | "actions": [ 113 | { 114 | "label": " Performance", 115 | "command": "powerprofilesctl set performance" 116 | }, 117 | { 118 | "label": " Balanced", 119 | "command": "powerprofilesctl set balanced" 120 | }, 121 | { 122 | "label": " Power-saver", 123 | "command": "powerprofilesctl set power-saver" 124 | } 125 | ] 126 | } 127 | } 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /config/swaync/icons/brightness/brightness-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/swaync/icons/brightness/brightness-100.png -------------------------------------------------------------------------------- /config/swaync/icons/brightness/brightness-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/swaync/icons/brightness/brightness-20.png -------------------------------------------------------------------------------- /config/swaync/icons/brightness/brightness-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/swaync/icons/brightness/brightness-40.png -------------------------------------------------------------------------------- /config/swaync/icons/brightness/brightness-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/swaync/icons/brightness/brightness-60.png -------------------------------------------------------------------------------- /config/swaync/icons/brightness/brightness-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/config/swaync/icons/brightness/brightness-80.png -------------------------------------------------------------------------------- /config/swaync/icons/vol/muted-mic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /config/swaync/icons/vol/muted-speaker.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /config/swaync/icons/vol/unmuted-mic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /config/swaync/icons/vol/unmuted-speaker.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /config/swaync/icons/vol/vol-0.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 61 | 62 | 82 | 83 | -------------------------------------------------------------------------------- /config/swaync/icons/vol/vol-100.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 61 | 62 | 82 | 83 | -------------------------------------------------------------------------------- /config/swaync/icons/vol/vol-25.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /config/swaync/icons/vol/vol-50.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 84 | 85 | -------------------------------------------------------------------------------- /config/swaync/icons/vol/vol-75.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /config/waybar/README.md: -------------------------------------------------------------------------------- 1 | ### You will find a theme.css file inside the style directory. this file will be generated everytime you seitch a wallpaper. -------------------------------------------------------------------------------- /config/waybar/colors/Catppuccin.css: -------------------------------------------------------------------------------- 1 | @define-color foreground #cdd6f4; 2 | @define-color background #11111b; 3 | @define-color cursor #e3e3e4; 4 | 5 | @define-color color0 #111119; 6 | @define-color color1 #969DAF; 7 | @define-color color2 #8E98B8; 8 | @define-color color3 #C5BCBE; 9 | @define-color color4 #9BAED1; 10 | @define-color color5 #9EB9DA; 11 | @define-color color6 #A1C7E3; 12 | @define-color color7 #e3e3e4; 13 | @define-color color8 #9e9e9f; 14 | @define-color color9 #969DAF; 15 | @define-color color10 #8E98B8; 16 | @define-color color11 #C5BCBE; 17 | @define-color color12 #9BAED1; 18 | @define-color color13 #9EB9DA; 19 | @define-color color14 #A1C7E3; 20 | @define-color color15 #e3e3e4; 21 | -------------------------------------------------------------------------------- /config/waybar/colors/Everforest.css: -------------------------------------------------------------------------------- 1 | @define-color foreground #b4b9bc; 2 | @define-color background #121b1c; 3 | @define-color cursor #b4b9bc; 4 | 5 | @define-color color0 #121b1c; 6 | @define-color color1 #5A6669; 7 | @define-color color2 #6B6D70; 8 | @define-color color3 #8D706F; 9 | @define-color color4 #728970; 10 | @define-color color5 #928C7A; 11 | @define-color color6 #717B83; 12 | @define-color color7 #b4b9bc; 13 | @define-color color8 #7d8183; 14 | @define-color color9 #5A6669; 15 | @define-color color10 #6B6D70; 16 | @define-color color11 #8D706F; 17 | @define-color color12 #728970; 18 | @define-color color13 #928C7A; 19 | @define-color color14 #717B83; 20 | @define-color color15 #b4b9bc; 21 | -------------------------------------------------------------------------------- /config/waybar/colors/Gruvbox.css: -------------------------------------------------------------------------------- 1 | @define-color foreground #b5cc97; 2 | @define-color background #475437; 3 | @define-color cursor #c6b79f; 4 | 5 | @define-color color0 #201d16; 6 | @define-color color1 #6C6A49; 7 | @define-color color2 #895837; 8 | @define-color color3 #95653B; 9 | @define-color color4 #A26A3E; 10 | @define-color color5 #93774C; 11 | @define-color color6 #A67247; 12 | @define-color color7 #c6b79f; 13 | @define-color color8 #8a806f; 14 | @define-color color9 #6C6A49; 15 | @define-color color10 #895837; 16 | @define-color color11 #95653B; 17 | @define-color color12 #A26A3E; 18 | @define-color color13 #93774C; 19 | @define-color color14 #A67247; 20 | @define-color color15 #c6b79f; 21 | -------------------------------------------------------------------------------- /config/waybar/colors/Neon.css: -------------------------------------------------------------------------------- 1 | @define-color foreground #e1c5e1; 2 | @define-color background #010001; 3 | @define-color cursor #e1c5e1; 4 | 5 | @define-color color0 #010001; 6 | @define-color color1 #724B8E; 7 | @define-color color2 #A02B93; 8 | @define-color color3 #9F58A3; 9 | @define-color color4 #CE4AB7; 10 | @define-color color5 #E25ECF; 11 | @define-color color6 #4A9AAF; 12 | @define-color color7 #e1c5e1; 13 | @define-color color8 #9d899d; 14 | @define-color color9 #724B8E; 15 | @define-color color10 #A02B93; 16 | @define-color color11 #9F58A3; 17 | @define-color color12 #CE4AB7; 18 | @define-color color13 #E25ECF; 19 | @define-color color14 #4A9AAF; 20 | @define-color color15 #e1c5e1; 21 | -------------------------------------------------------------------------------- /config/waybar/colors/TokyoNight.css: -------------------------------------------------------------------------------- 1 | @define-color foreground #8da8e3; 2 | @define-color background #24283b; 3 | @define-color cursor #8cc6c8; 4 | 5 | @define-color color0 #0D1118; 6 | @define-color color1 #233647; 7 | @define-color color2 #5A3646; 8 | @define-color color3 #225161; 9 | @define-color color4 #624F59; 10 | @define-color color5 #9C5759; 11 | @define-color color6 #B35053; 12 | @define-color color7 #8cc6c8; 13 | @define-color color8 #628a8c; 14 | @define-color color9 #233647; 15 | @define-color color10 #5A3646; 16 | @define-color color11 #225161; 17 | @define-color color12 #624F59; 18 | @define-color color13 #9C5759; 19 | @define-color color14 #B35053; 20 | @define-color color15 #8cc6c8; 21 | -------------------------------------------------------------------------------- /config/waybar/config: -------------------------------------------------------------------------------- 1 | /home/mahin/.config/waybar/configs/rounded-top -------------------------------------------------------------------------------- /config/waybar/configs/bar-left: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "$HOME/.config/waybar/modules/modules-virt.jsonc", 4 | "$HOME/.config/waybar/modules/modules-custom.jsonc", 5 | "$HOME/.config/waybar/modules/modules-groups.jsonc" 6 | ], 7 | "layer": "top", 8 | "position": "left", 9 | "mod": "dock", 10 | "exclusive": true, 11 | "passthrough": false, 12 | "gtk-layer-shell": true, 13 | "reload_style_on_change": true, 14 | "margin-top": 20, 15 | "margin-bottom": 20, 16 | "margin-left": 5, 17 | 18 | "modules-left": [ 19 | "custom/launch_rofi", 20 | "clock#calender", 21 | "clock", 22 | "custom/weather", 23 | "mpris", 24 | "custom/notify", 25 | "custom/dots", 26 | ], 27 | 28 | "modules-center": [ 29 | "hyprland/workspaces" 30 | ], 31 | 32 | "modules-right": [ 33 | "custom/dots", 34 | "tray", 35 | "network", 36 | "idle_inhibitor", 37 | "custom/nightlight", 38 | "battery", 39 | "backlight", 40 | "pulseaudio/slider", 41 | "pulseaudio#audio", 42 | "group/power" 43 | ], 44 | 45 | "hyprland/workspaces": { 46 | "disable-scroll": true, 47 | "all-outputs": true, 48 | "on-click": "activate", 49 | "on-scroll-up": "hyprctl dispatch workspace e-1", 50 | "on-scroll-down": "hyprctl dispatch workspace e+1", 51 | "format": "{icon}", 52 | "format-icons": { 53 | "default": "", 54 | }, 55 | "persistent-workspaces": { 56 | "1": [], 57 | "2": [], 58 | "3": [] 59 | } 60 | }, 61 | 62 | "custom/launch_rofi": { 63 | "format": "", 64 | "on-click": "rofi -show drun -theme ~/.config/rofi/menu/menu.rasi || pkill rofi", 65 | "on-click-right": "kitty --title yazi -e yazi", 66 | "tooltip": true, 67 | "tooltip-format": "Left Click: Launch Rofi\nRight Click: Launch yazi" 68 | }, 69 | } 70 | -------------------------------------------------------------------------------- /config/waybar/configs/catppuccin-top: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "$HOME/.config/waybar/modules/modules-catppuccin.jsonc", 4 | "$HOME/.config/waybar/modules/modules-custom.jsonc", 5 | "$HOME/.config/waybar/modules/modules-groups.jsonc" 6 | ], 7 | "layer": "top", 8 | "position": "top", 9 | "mod": "dock", 10 | "exclusive": true, 11 | "passthrough": false, 12 | "gtk-layer-shell": true, 13 | "reload_style_on_change": true, 14 | "height": 20, 15 | "margin-top": 5, 16 | "margin-left": 10, 17 | "margin-right": 10, 18 | 19 | "modules-left": [ 20 | "custom/launch_rofi", 21 | "hyprland/window", 22 | "hyprland/workspaces", 23 | "group/sysinfo", 24 | "power-profiles-daemon", 25 | "mpris" 26 | ], 27 | 28 | "modules-center": [ 29 | "clock" 30 | ], 31 | 32 | "modules-right": [ 33 | "tray", 34 | "custom/notify", 35 | "pulseaudio", 36 | "pulseaudio#microphone", 37 | "custom/updater", 38 | "idle_inhibitor", 39 | "custom/nightlight", 40 | "custom/clipboard", 41 | "battery", 42 | "backlight", 43 | "group/network", 44 | "group/power" 45 | ], 46 | 47 | "hyprland/workspaces": { 48 | "disable-scroll": true, 49 | "all-outputs": true, 50 | "on-click": "activate", 51 | "on-scroll-up": "hyprctl dispatch workspace e-1", 52 | "on-scroll-down": "hyprctl dispatch workspace e+1", 53 | "format": "{icon}", 54 | "format-icons": { 55 | "default": "" 56 | }, 57 | "persistent-workspaces": { 58 | "1": [], 59 | "2": [], 60 | "3": [] 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /config/waybar/configs/dual-tone-top: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "$HOME/.config/waybar/modules/modules-dual-tone.jsonc", 4 | "$HOME/.config/waybar/modules/modules-custom.jsonc", 5 | "$HOME/.config/waybar/modules/modules-groups.jsonc" 6 | ], 7 | "layer": "top", 8 | "position": "top", 9 | "mod": "dock", 10 | "exclusive": true, 11 | "passthrough": false, 12 | "gtk-layer-shell": true, 13 | "reload_style_on_change": true, 14 | "height": 20, 15 | "margin-top": 5, 16 | "margin-left": 10, 17 | "margin-right": 10, 18 | 19 | "modules-left": [ 20 | "custom/launch_rofi", 21 | "hyprland/window", 22 | "idle_inhibitor", 23 | "custom/nightlight", 24 | "custom/clipboard_icon" , 25 | "custom/clipboard", 26 | "group/system", 27 | "power-profiles-daemon", 28 | "mpris" 29 | ], 30 | 31 | "modules-center": [ 32 | "hyprland/workspaces" 33 | ], 34 | 35 | "modules-right": [ 36 | "tray", 37 | "custom/pulseaudio_icon", 38 | "pulseaudio", 39 | "custom/pulse_mic_icon", 40 | "pulseaudio#microphone", 41 | "custom/updater_icon", 42 | "custom/updater", 43 | "battery", 44 | "backlight", 45 | "group/network", 46 | "custom/notify_icon", 47 | "custom/notify", 48 | "clock", 49 | "group/power" 50 | ], 51 | 52 | "hyprland/workspaces": { 53 | "disable-scroll": true, 54 | "all-outputs": true, 55 | "on-click": "activate", 56 | "on-scroll-up": "hyprctl dispatch workspace e-1", 57 | "on-scroll-down": "hyprctl dispatch workspace e+1", 58 | "format": "{icon}", 59 | "format-icons": { 60 | "default": "" 61 | }, 62 | "persistent-workspaces": { 63 | "1": [], 64 | "2": [], 65 | "3": [] 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /config/waybar/configs/full-top: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "$HOME/.config/waybar/modules/modules-main.jsonc", 4 | "$HOME/.config/waybar/modules/modules-groups.jsonc", 5 | "$HOME/.config/waybar/modules/modules-custom.jsonc", 6 | ], 7 | "layer": "top", 8 | "position": "top", 9 | "mod": "dock", 10 | "exclusive": true, 11 | "passthrough": false, 12 | "gtk-layer-shell": true, 13 | "reload_style_on_change": true, 14 | "height": 20, 15 | "margin-top": 5, 16 | "margin-left": 5, 17 | "margin-right": 5, 18 | 19 | "modules-left": [ 20 | "custom/launch_rofi", 21 | "tray", 22 | "hyprland/workspaces#preview", 23 | "custom/weather", 24 | "mpris" 25 | ], 26 | 27 | "modules-center": [ 28 | "power-profiles-daemon", 29 | "clock", 30 | "custom/notify" 31 | ], 32 | 33 | "modules-right": [ 34 | "custom/updater", 35 | "pulseaudio", 36 | "pulseaudio#microphone", 37 | "group/sysinfo", 38 | "idle_inhibitor", 39 | "custom/nightlight", 40 | "custom/clipboard", 41 | "battery", 42 | "backlight", 43 | "group/network", 44 | "custom/power_btn" 45 | ], 46 | } 47 | -------------------------------------------------------------------------------- /config/waybar/configs/rounded-top: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "$HOME/.config/waybar/modules/modules-main.jsonc", 4 | "$HOME/.config/waybar/modules/modules-groups.jsonc", 5 | "$HOME/.config/waybar/modules/modules-custom.jsonc", 6 | ], 7 | "layer": "top", 8 | "position": "top", 9 | "mod": "dock", 10 | "exclusive": true, 11 | "passthrough": false, 12 | "gtk-layer-shell": true, 13 | "reload_style_on_change": true, 14 | "height": 15, 15 | "margin-top": 0, 16 | 17 | "modules-left": [ 18 | "custom/launch_rofi", 19 | "idle_inhibitor", 20 | "custom/nightlight", 21 | "custom/clipboard", 22 | "custom/weather", 23 | "mpris", 24 | "custom/cava" 25 | ], 26 | 27 | "modules-center": [ 28 | "power-profiles-daemon", 29 | "hyprland/workspaces#preview", 30 | "custom/updater" 31 | ], 32 | 33 | "modules-right": [ 34 | "tray", 35 | "pulseaudio", 36 | "pulseaudio#microphone", 37 | "network", 38 | "custom/notify", 39 | "clock", 40 | "custom/power_btn" 41 | ], 42 | } 43 | -------------------------------------------------------------------------------- /config/waybar/modules/modules-groups.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | // opening power menu 3 | "group/power": { 4 | "orientation": "inherit", 5 | "drawer": { 6 | "transition-duration": 300, 7 | "children-class": "not-memory", 8 | "transition-left-to-right": false 9 | }, 10 | "modules": [ 11 | "custom/power", 12 | "custom/lock", 13 | "custom/logout", 14 | "custom/reboot" 15 | ] 16 | }, 17 | 18 | // only for dual-tone-top theme. 19 | "group/system": { 20 | "orientation": "inherit", 21 | "drawer": { 22 | "transition-duration": 300, 23 | "children-class": "not-memory", 24 | "click-to-reveal": true, 25 | "transition-left-to-right": false 26 | }, 27 | 28 | "modules": [ 29 | "custom/system", 30 | "custom/cpu-icon", 31 | "cpu", 32 | "custom/memory-icon", 33 | "memory", 34 | "custom/disk-icon", 35 | "disk" 36 | ] 37 | }, 38 | 39 | // system info universal 40 | "group/sysinfo": { 41 | "orientation": "inherit", 42 | "drawer": { 43 | "transition-duration": 300, 44 | "children-class": "not-memory", 45 | "click-to-reveal": true, 46 | "transition-left-to-right": false 47 | }, 48 | 49 | "modules": [ 50 | "custom/system", 51 | "cpu", 52 | "memory", 53 | "disk", 54 | "temperature" 55 | ] 56 | }, 57 | 58 | // internet speed 59 | "group/network": { 60 | "orientation": "inherit", 61 | "drawer": { 62 | "transition-duration": 300, 63 | "children-class": "not-memory", 64 | "transition-left-to-right": false 65 | }, 66 | 67 | "modules": [ 68 | "network", 69 | "network#speed" 70 | ] 71 | } 72 | 73 | } 74 | -------------------------------------------------------------------------------- /config/waybar/style.css: -------------------------------------------------------------------------------- 1 | /home/mahin/.config/waybar/style/rounded-top.css -------------------------------------------------------------------------------- /config/waybar/style/mocha.css: -------------------------------------------------------------------------------- 1 | @define-color rosewater #f5e0dc; 2 | @define-color flamingo #f2cdcd; 3 | @define-color pink #f5c2e7; 4 | @define-color mauve #cba6f7; 5 | @define-color red #f38ba8; 6 | @define-color maroon #eba0ac; 7 | @define-color peach #fab387; 8 | @define-color yellow #f9e2af; 9 | @define-color green #a6e3a1; 10 | @define-color teal #94e2d5; 11 | @define-color sky #89dceb; 12 | @define-color sapphire #74c7ec; 13 | @define-color blue #89b4fa; 14 | @define-color lavender #b4befe; 15 | @define-color text #cdd6f4; 16 | @define-color subtext1 #bac2de; 17 | @define-color subtext0 #a6adc8; 18 | @define-color overlay2 #9399b2; 19 | @define-color overlay1 #7f849c; 20 | @define-color overlay0 #6c7086; 21 | @define-color surface2 #585b70; 22 | @define-color surface1 #45475a; 23 | @define-color surface0 #313244; 24 | @define-color base #1e1e2e; 25 | @define-color mantle #181825; 26 | @define-color crust #11111b; 27 | -------------------------------------------------------------------------------- /config/waybar/style/theme.css: -------------------------------------------------------------------------------- 1 | /home/mahin/.config/waybar/colors/Gruvbox.css -------------------------------------------------------------------------------- /config/xfce4/helpers.rc: -------------------------------------------------------------------------------- 1 | TerminalEmulator=kitty 2 | TerminalEmulatorDismissed=true 3 | -------------------------------------------------------------------------------- /config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /extras/fonts/GrapeNuts-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/extras/fonts/GrapeNuts-Regular.ttf -------------------------------------------------------------------------------- /extras/fonts/Icomoon-Feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/extras/fonts/Icomoon-Feather.ttf -------------------------------------------------------------------------------- /extras/fonts/Iosevka-Nerd-Font-Complete.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/extras/fonts/Iosevka-Nerd-Font-Complete.ttf -------------------------------------------------------------------------------- /extras/fonts/JetBrains-Mono-Nerd-Font-Complete.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/extras/fonts/JetBrains-Mono-Nerd-Font-Complete.ttf -------------------------------------------------------------------------------- /extras/fonts/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/extras/fonts/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /extras/fonts/Montserrat-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/extras/fonts/Montserrat-BoldItalic.ttf -------------------------------------------------------------------------------- /extras/fonts/Pacifico-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shell-ninja/hyprconf-v2/aa8f1e16f8311bee6b7279e947ef8055d13b6998/extras/fonts/Pacifico-Regular.ttf -------------------------------------------------------------------------------- /extras/hyprland.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Hyprland 3 | Comment=An intelligent dynamic tiling Wayland compositor 4 | Exec=Hyprland 5 | Type=Application --------------------------------------------------------------------------------