├── 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 | _\ \/ // (_- __/ -_) ' \ / /_/ / _ \/ _ / _ `/ __/ -_)
8 | /___/\_, /___/\__/\__/_/_/_/ \____/ .__/\_,_/\_,_/\__/\__/
9 | /___/ /_/
10 |
11 | EOF
12 | }
13 |
14 | display
15 | printf "\n"
16 |
17 | # asking for confirmation.
18 | choice=$(gum confirm "Would you like to," \
19 | --prompt.foreground "#eabbd1" \
20 | --affirmative "Update now!" \
21 | --selected.background "#eabbd1" \
22 | --selected.foreground "#09080A" \
23 | --negative "Skip updating!"
24 | )
25 |
26 | if [ $? -eq 0 ]; then
27 | # updating the system
28 | if [ -n "$(command -v pacman)" ]; then
29 | aur=$(command -v yay || command -v paru)
30 | "$aur" -Syyu --noconfirm
31 | elif [ -n "$(command -v dnf)" ]; then
32 | sudo dnf update && sudo dnf upgrade -y
33 | elif [ -n "$(command -v zypper)" ]; then
34 | sudo zypper up -y
35 | fi
36 |
37 | sleep 1
38 |
39 | printf "\n\n<> 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 |
--------------------------------------------------------------------------------
/config/swaync/icons/vol/muted-speaker.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/config/swaync/icons/vol/unmuted-mic.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/config/swaync/icons/vol/unmuted-speaker.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/config/swaync/icons/vol/vol-0.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
83 |
--------------------------------------------------------------------------------
/config/swaync/icons/vol/vol-100.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
83 |
--------------------------------------------------------------------------------
/config/swaync/icons/vol/vol-25.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
86 |
--------------------------------------------------------------------------------
/config/swaync/icons/vol/vol-50.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
85 |
--------------------------------------------------------------------------------
/config/swaync/icons/vol/vol-75.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
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
--------------------------------------------------------------------------------