├── README.md
├── assets
├── backgrounds
│ ├── cat_leaves.png
│ ├── cat_leaves_blurred.png
│ ├── cat_pacman.png
│ └── dark-cat-rosewater.png
├── github_repo
│ └── images
│ │ ├── Simple_hypr_thumbnail.png
│ │ ├── final-setup-01.png
│ │ ├── final-setup-02.png
│ │ ├── grimblast.png
│ │ ├── hyprpicker.png
│ │ ├── tofi-applauncher.png
│ │ ├── tofi-clipboard.png
│ │ ├── waybar.png
│ │ └── wlogout.png
├── icons
│ └── Tela-circle-dracula.tar.xz
├── themes
│ └── Catppuccin-Mocha.tar.xz
└── wlogout
│ └── assets
│ ├── lock-hover.png
│ ├── lock.png
│ ├── logout-hover.png
│ ├── logout.png
│ ├── power-hover.png
│ ├── power.png
│ ├── restart-hover.png
│ ├── restart.png
│ ├── sleep-hover.png
│ └── sleep.png
├── configs
├── dunst
│ └── dunstrc
├── hypr
│ ├── hypridle.conf
│ ├── hyprland.conf
│ └── hyprlock.conf
├── kitty
│ ├── kitty.conf
│ └── theme.conf
├── tofi
│ ├── configA
│ └── configV
├── waybar
│ ├── config.jsonc
│ └── style.css
└── wlogout
│ ├── layout
│ └── style.css
├── docs
├── basic_configuration.md
├── final.md
├── installation_Hypr.md
├── prerequisites.md
├── theming.md
└── useful_utilities.md
└── scripts
└── installer
├── final.sh
├── helper.sh
├── hypr.sh
├── install.sh
├── prerequisites.sh
├── theming.sh
└── utilities.sh
/README.md:
--------------------------------------------------------------------------------
1 | # Simple Hyprland 🌟
2 | Welcome to the Simple Hyprland Guide! This repository is designed to help users set up a minimal Hyprland environment on Arch Linux. Although various scripts and configuration files are available elsewhere, they often result in bloated systems with many unused themes and configurations. This guide aims to provide a clear, concise, and minimal setup, allowing users to understand each step and customize their environment to their liking.
3 |
4 | By the end of this guide, you'll have a clean and functional Hyprland setup like this:
5 |
6 |
7 |
8 |
9 | ##### Setup Walkthrough 👇 (Click to Play)
10 | [](https://www.youtube.com/watch?v=eNJorbKz_-U)
11 |
12 | ## Purpose ✨
13 | This guide is intended for:
14 |
15 | **Newcomers transitioning to Hyprland who want to gain knowledge.** 👋 If you're new to Hyprland and looking to understand the ins and outs of setting it up, this guide will take you through the process step-by-step, explaining each component along the way.
16 |
17 | **Users who wish to set up a minimal system their way, knowing what's happening at each step.** 🧠 Rather than relying on scripts that automate the process, this guide empowers you to build your Hyprland environment from the ground up, enabling you to customize and tweak every aspect according to your preferences.
18 |
19 | **Individuals looking to save time by following a structured and efficient setup process.** ⏱️ While many guides and resources are available, they can be scattered and overwhelming. This guide consolidates the essential steps into a streamlined workflow, helping you get up and running with Hyprland quickly and efficiently.
20 |
21 | ## Getting Started 🚀
22 | If you're new to this guide, you can start from the [Prerequisites section](docs/prerequisites.md). This document outlines the necessary tools, packages, and assumptions required for a smooth installation and setup process.
23 |
24 | ## Documentation 📚
25 | 1. [Prerequisites](docs/prerequisites.md)
26 | 2. [Core Installation](docs/installation_Hypr.md)
27 | 3. [Basic Configuration](docs/basic_configuration.md)
28 | 4. [Useful Utilities](docs/useful_utilities.md)
29 | 5. [Theming](docs/theming.md)
30 | 6. [Summary](docs/final.md)
31 |
32 | ## Compatibility ⚙️
33 | While this guide is created with [Arch Linux](https://archlinux.org/) in mind, it can also be helpful for users of other distributions who are familiar with their package management and system tweaking.
34 |
35 | ## Quick Installation Script 🚀
36 |
37 | 1. Clone the repository to your home folder:
38 | ```
39 | git clone https://github.com/gaurav23b/simple-hyprland.git ~/simple-hyprland
40 | ```
41 | 2. Navigate to the installer directory:
42 | ```
43 | cd ~/simple-hyprland/scripts/installer
44 | ```
45 | 3. Run the installation script with sudo:
46 | ```
47 | sudo sh install.sh
48 | ```
49 | #### Important Notes:
50 |
51 | - This script is user-centric and allows you to choose which components to install (Everything is asked, even for the core).
52 | - While the script offers flexibility, it is recommend to installing all components for the best experience, as this is already a minimal setup.
53 | - The installation process follows the same flow as the documentation, ensuring a structured and educational approach.
54 | - Although designed for Arch Linux, users of Arch-based distributions may also find this script helpful.
55 |
56 | > **Note for Newcomers**: Although this script enables rapid setup, it's highly recommended to read through the documentation for those new to Hyprland. Understanding each step will greatly enhance your ability to customize and troubleshoot your environment.
57 |
58 |
59 | ### Key Bindings 🎹
60 |
61 | After installation, you'll want to familiarize yourself with the default key bindings. Here are some essential shortcuts to get you started:
62 |
63 | #### General
64 | - `Super + T`: Open the terminal (`$terminal`).
65 | - `Super + B`: Open the browser (`$browser`).
66 | - `Super + O`: Open notes application (`$notes`).
67 | - `Super + C`: Open the primary editor (`$editor`).
68 | - `Super + S`: Open the alternative editor (`$editor-alt`).
69 | - `Super + F`: Open the file manager (`$fileManager`).
70 | - `Super + A`: Open the application menu (`$menu`).
71 | - `Super + M`: Exit Hyprland.
72 |
73 | #### Window Management & Workspace Navigation
74 | - `Super + Q`: Close the active window.
75 | - `Super + W`: Toggle floating mode for the active window.
76 | - `Super + J`: Toggle split mode in the Dwindle layout.
77 | - `SUPER + [Arrow Keys]`: Move focus between windows
78 | - `SUPER + SHIFT + [Arrow Keys]`: Move active window
79 | - `SUPER + CTRL + [Arrow Keys]`: Resize active window
80 | - `SUPER + [1-9]`: Switch to workspace 1-9
81 | - `SUPER + SHIFT + [1-9]`: Move active window to workspace 1-9
82 |
83 | #### Screen Brightness, Volume and Media Control
84 | - `Brightness Up`: Increase the screen brightness by 5%.
85 | - `Brightness Down`: Decrease the screen brightness by 5%.
86 | - `Volume Up`: Increase the volume by 5%.
87 | - `Volume Down`: Decrease the volume by 5%.
88 | - `Mic Mute`: Mute the microphone.
89 | - `Audio Mute`: Mute the audio.
90 | - `Play/Pause`: Toggle play/pause for media.
91 | - `Next Track`: Skip to the next track.
92 | - `Previous Track`: Go back to the previous track.
93 |
94 | #### Miscellaneous
95 | - `SUPER + L`: Lock screen
96 | - `Super + V`: Open the clipboard history and paste the selected item.
97 | - `Super + P`: Open the color picker and copy the selected color to the clipboard.
98 | - `Super + L`: Lock the screen.
99 | - `Super + Escape`: Open the logout menu.
100 | - `Ctrl + Escape`: Toggle the Waybar (kill if running, start if not).
101 | - `Print Screen`: Take a screenshot of the entire screen and copy it to the clipboard.
102 | - `Super + Print Screen`: Take a screenshot of the active window and copy it to the clipboard.
103 | - `Super + Alt + Print Screen`: Select an area to take a screenshot and copy it to the clipboard.
104 |
105 | Make sure to have applications installed corresponding to the binds. Feel free to customize these keybindings to better suit your needs. You can customize these and add more in your Hyprland configuration file (`~/.config/hypr/hyprland.conf`).
106 |
107 | ## Credits 🙏
108 | Many configuration parts, themes, and scripts in this guide are sourced from the community. I extend my thanks to all contributors, especially the [Hyprland project](https://github.com/hyprwm/Hyprland) and other cool repositories like [hyprdots](https://github.com/prasanthrangan/hyprdots). If you find that credit has not been given where due, please feel free to open a Pull Request (PR).
109 |
110 | ## References 📖
111 | * [Hyprland Wiki](https://wiki.hyprland.org/)
112 | * [Hyprdots Repo](https://github.com/prasanthrangan/hyprdots)
113 | * [Hyprland-titus Repo](https://github.com/ChrisTitusTech/hyprland-titus) and more.
114 |
115 | Feel free to explore the documentation and contribute to this guide if you find any improvements or have suggestions. 🤝
116 |
--------------------------------------------------------------------------------
/assets/backgrounds/cat_leaves.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/backgrounds/cat_leaves.png
--------------------------------------------------------------------------------
/assets/backgrounds/cat_leaves_blurred.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/backgrounds/cat_leaves_blurred.png
--------------------------------------------------------------------------------
/assets/backgrounds/cat_pacman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/backgrounds/cat_pacman.png
--------------------------------------------------------------------------------
/assets/backgrounds/dark-cat-rosewater.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/backgrounds/dark-cat-rosewater.png
--------------------------------------------------------------------------------
/assets/github_repo/images/Simple_hypr_thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/github_repo/images/Simple_hypr_thumbnail.png
--------------------------------------------------------------------------------
/assets/github_repo/images/final-setup-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/github_repo/images/final-setup-01.png
--------------------------------------------------------------------------------
/assets/github_repo/images/final-setup-02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/github_repo/images/final-setup-02.png
--------------------------------------------------------------------------------
/assets/github_repo/images/grimblast.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/github_repo/images/grimblast.png
--------------------------------------------------------------------------------
/assets/github_repo/images/hyprpicker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/github_repo/images/hyprpicker.png
--------------------------------------------------------------------------------
/assets/github_repo/images/tofi-applauncher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/github_repo/images/tofi-applauncher.png
--------------------------------------------------------------------------------
/assets/github_repo/images/tofi-clipboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/github_repo/images/tofi-clipboard.png
--------------------------------------------------------------------------------
/assets/github_repo/images/waybar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/github_repo/images/waybar.png
--------------------------------------------------------------------------------
/assets/github_repo/images/wlogout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/github_repo/images/wlogout.png
--------------------------------------------------------------------------------
/assets/icons/Tela-circle-dracula.tar.xz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/icons/Tela-circle-dracula.tar.xz
--------------------------------------------------------------------------------
/assets/themes/Catppuccin-Mocha.tar.xz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/themes/Catppuccin-Mocha.tar.xz
--------------------------------------------------------------------------------
/assets/wlogout/assets/lock-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/wlogout/assets/lock-hover.png
--------------------------------------------------------------------------------
/assets/wlogout/assets/lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/wlogout/assets/lock.png
--------------------------------------------------------------------------------
/assets/wlogout/assets/logout-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/wlogout/assets/logout-hover.png
--------------------------------------------------------------------------------
/assets/wlogout/assets/logout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/wlogout/assets/logout.png
--------------------------------------------------------------------------------
/assets/wlogout/assets/power-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/wlogout/assets/power-hover.png
--------------------------------------------------------------------------------
/assets/wlogout/assets/power.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/wlogout/assets/power.png
--------------------------------------------------------------------------------
/assets/wlogout/assets/restart-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/wlogout/assets/restart-hover.png
--------------------------------------------------------------------------------
/assets/wlogout/assets/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/wlogout/assets/restart.png
--------------------------------------------------------------------------------
/assets/wlogout/assets/sleep-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/wlogout/assets/sleep-hover.png
--------------------------------------------------------------------------------
/assets/wlogout/assets/sleep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gaurav23b/simple-hyprland/879dba81c84134072826a21453c15e553d03da2d/assets/wlogout/assets/sleep.png
--------------------------------------------------------------------------------
/configs/dunst/dunstrc:
--------------------------------------------------------------------------------
1 | [global]
2 | follow = mouse
3 | indicate_hidden = yes
4 |
5 | offset = 10x10
6 |
7 | notification_height = 0
8 |
9 | separator_height = 2
10 |
11 | padding = 8
12 | horizontal_padding = 8
13 | text_icon_padding = 0
14 | frame_width = 2
15 |
16 | frame_color = "#a6adc8"
17 | separator_color = frame
18 |
19 | sort = yes
20 | idle_threshold = 120
21 | font = monospace 10
22 | line_height = 0
23 | markup = full
24 | alignment = left
25 | vertical_alignment = center
26 | show_age_threshold = 60
27 | word_wrap = yes
28 | stack_duplicates = true
29 | hide_duplicate_count = false
30 |
31 | show_indicators = yes
32 |
33 | min_icon_size = 0
34 | max_icon_size = 64
35 |
36 | icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/:/usr/share/icons/Papirus-Dark/16x16/actions/:/usr/share/icons/Papirus-Dark/16x16/animations/:/usr/share/icons/Papirus-Dark/16x16/apps/:/usr/share/icons/Papirus-Dark/16x16/categories/:/usr/share/icons/Papirus-Dark/16x16/emblems/:/usr/share/icons/Papirus-Dark/16x16/emotes/:/usr/share/icons/Papirus-Dark/16x16/devices/mimetypes:/usr/share/icons/Papirus-Dark/16x16/panel/:/usr/share/icons/Papirus-Dark/16x16/places/
37 |
38 | dmenu = /usr/bin/wofi -p dunst:
39 | browser = /usr/bin/firefox --new-tab
40 |
41 | title = Dunst
42 | class = Dunst
43 |
44 | corner_radius = 10
45 | timeout = 5
46 |
47 | [urgency_low]
48 | background = "#1e1e2e"
49 | foreground = "#CDD6F4"
50 |
51 | [urgency_normal]
52 | background = "#1e1e2e"
53 | foreground = "#CDD6F4"
54 |
55 | [urgency_critical]
56 | background = "#1e1e2e"
57 | foreground = "#CDD6F4"
58 | frame_color = "#FAB387"
--------------------------------------------------------------------------------
/configs/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 = 60 # 1min.
9 | on-timeout = brightnessctl -s set 5 # set monitor backlight to minimum, avoid 0 on OLED monitor.
10 | on-resume = brightnessctl -r # monitor backlight restore.
11 | }
12 |
13 | listener {
14 | timeout = 120 # 2min
15 | on-timeout = loginctl lock-session # lock screen when timeout has passed
16 | }
17 |
18 | listener {
19 | timeout = 300 # 5min
20 | on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
21 | on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
22 | }
23 |
24 | listener {
25 | timeout = 900 # 30min
26 | on-timeout = systemctl suspend # suspend pc
27 | }
28 |
--------------------------------------------------------------------------------
/configs/hypr/hyprland.conf:
--------------------------------------------------------------------------------
1 |
2 | # #######################################################################################
3 | # AUTOGENERATED HYPR CONFIG.
4 | # PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
5 | # OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
6 | # #######################################################################################
7 |
8 | #autogenerated = 1 # remove this line to remove the warning
9 |
10 | # This is an example Hyprland config file.
11 | # Refer to the wiki for more information.
12 | # https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
13 |
14 | # Please note not all available settings / options are set here.
15 | # For a full list, see the wiki
16 |
17 | # You can split this configuration into multiple files
18 | # Create your files separately and then link them to this file like this:
19 | # source = ~/.config/hypr/myColors.conf
20 |
21 |
22 | ################
23 | ### MONITORS ###
24 | ################
25 |
26 | # See https://wiki.hyprland.org/Configuring/Monitors/
27 | monitor=,preferred,auto,1,mirror,DP-1
28 | ###################
29 | ### MY PROGRAMS ###
30 | ###################
31 |
32 | # See https://wiki.hyprland.org/Configuring/Keywords/
33 |
34 | # Set programs that you use
35 | $terminal = kitty
36 | $fileManager = nautilus
37 | $menu = tofi-drun -c ~/.config/tofi/configA --drun-launch=true
38 | $browser = thorium-browser --enable-features=UseOzonePlatform --ozone-platform=wayland
39 | $notes = obsidian
40 | $editor = code
41 | $editor-alt = subl
42 | $colorPicker = hyprpicker
43 |
44 | # --enable-features=UseOzonePlatform --ozone-platform=wayland use this flag to launch CEF/Electron apps in wayland
45 |
46 | #################
47 | ### AUTOSTART ###
48 | #################
49 |
50 | # Autostart necessary processes (like notifications daemons, status bars, etc.)
51 | # Or execute your favorite apps at launch like this:
52 |
53 | exec-once=/usr/lib/polkit-kde-authentication-agent-1 #Polkit to manage passwords
54 | exec-once=/usr/bin/dunst
55 | exec-once=waybar # topbar
56 | exec-once = swww-daemon # wallpaper
57 | exec-once = swww img ~/.config/assets/backgrounds/cat_leaves.png --transition-fps 255 --transition-type outer --transition-duration 0.8
58 | exec-once = wl-paste --type text --watch cliphist store # clipboard
59 | exec-once = wl-paste --type image --watch cliphist store
60 | #exec-once = rm "$HOME/.cache/cliphist/db" #it'll delete history at every restart
61 | exec-once = hypridle
62 |
63 | exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
64 | # exec-once = $terminal
65 | # exec-once = nm-applet &
66 | # exec-once = waybar & hyprpaper & firefox
67 |
68 | #############################
69 | ### ENVIRONMENT VARIABLES ###
70 | #############################
71 |
72 | # See https://wiki.hyprland.org/Configuring/Environment-variables/
73 |
74 | env = XCURSOR_SIZE,24
75 | env = HYPRCURSOR_SIZE,24
76 |
77 | # Firefox
78 | # env = MOZ_ENABLE_WAYLAND,1
79 |
80 | # Nvidia
81 | env = LIBVA_DRIVER_NAME,nvidia
82 | env = XDG_SESSION_TYPE,wayland
83 | env = GBM_BACKEND,nvidia-drm
84 | env = __GLX_VENDOR_LIBRARY_NAME,nvidia # remove if firefox crashes
85 | env = NVD_BACKEND,direct
86 | env = ELECTRON_OZONE_PLATFORM_HINT,auto
87 |
88 | # QT
89 | env = QT_QPA_PLATFORM,wayland
90 | env = QT_QPA_PLATFORMTHEME,qt5ct
91 | env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
92 | env = QT_AUTO_SCREEN_SCALE_FACTOR,1
93 | env = QT_STYLE_OVERRIDE,kvantum
94 |
95 | # Toolkit Backend Variables
96 | env = GDK_BACKEND,wayland,x11,*
97 | env = SDL_VIDEODRIVER,wayland
98 | env = CLUTTER_BACKEND,wayland
99 |
100 | # XDG Specifications
101 | env = XDG_CURRENT_DESKTOP,Hyprland
102 | env = XDG_SESSION_TYPE,wayland
103 | env = XDG_SESSION_DESKTOP,Hyprland
104 |
105 |
106 | #####################
107 | ### LOOK AND FEEL ###
108 | #####################
109 |
110 | # Refer to https://wiki.hyprland.org/Configuring/Variables/
111 |
112 | # https://wiki.hyprland.org/Configuring/Variables/#general
113 | general {
114 | gaps_in = 5
115 | gaps_out = 5
116 |
117 | border_size = 2
118 |
119 | # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
120 | col.active_border = rgb(8aadf4) rgb(24273A) rgb(24273A) rgb(8aadf4) 45deg
121 | col.inactive_border = rgb(24273A) rgb(24273A) rgb(24273A) rgb(27273A) 45deg
122 |
123 | # Set to true enable resizing windows by clicking and dragging on borders and gaps
124 | resize_on_border = true
125 |
126 | # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
127 | allow_tearing = false
128 |
129 | layout = dwindle
130 | }
131 |
132 | # https://wiki.hyprland.org/Configuring/Variables/#decoration
133 | decoration {
134 | rounding = 10
135 |
136 | # Change transparency of focused and unfocused windows
137 | active_opacity = 1.0
138 | inactive_opacity = 1.0
139 |
140 | # https://wiki.hyprland.org/Configuring/Variables/#blur
141 | blur {
142 | enabled = true
143 | size = 3
144 | passes = 3
145 | new_optimizations = true
146 | vibrancy = 0.1696
147 | ignore_opacity = true
148 | }
149 | }
150 |
151 | # https://wiki.hyprland.org/Configuring/Variables/#animations
152 | animations {
153 | enabled = true
154 |
155 | # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
156 |
157 | # bezier = myBezier, 0.05, 0.9, 0.1, 1.05
158 |
159 | # animation = windows, 1, 7, myBezier
160 | # animation = windowsOut, 1, 7, default, popin 80%
161 | # animation = border, 1, 10, default
162 | # animation = borderangle, 1, 8, default
163 | # animation = fade, 1, 7, default
164 | # animation = workspaces, 1, 6, default
165 |
166 | bezier = wind, 0.05, 0.9, 0.1, 1.05
167 | bezier = winIn, 0.1, 1.1, 0.1, 1.1
168 | bezier = winOut, 0.3, -0.3, 0, 1
169 | bezier = liner, 1, 1, 1, 1
170 | animation = windows, 1, 6, wind, slide
171 | animation = windowsIn, 1, 6, winIn, slide
172 | animation = windowsOut, 1, 5, winOut, slide
173 | animation = windowsMove, 1, 5, wind, slide
174 | animation = border, 1, 1, liner
175 | animation = borderangle, 1, 30, liner, loop
176 | animation = fade, 1, 10, default
177 | animation = workspaces, 1, 5, wind
178 | }
179 |
180 | # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
181 | dwindle {
182 | pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
183 | preserve_split = true # You probably want this
184 | }
185 |
186 | # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
187 | master {
188 |
189 | }
190 |
191 | # https://wiki.hyprland.org/Configuring/Variables/#misc
192 | misc {
193 | force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
194 | disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
195 | disable_splash_rendering = true
196 | vrr = 0
197 | }
198 |
199 | #############
200 | ### INPUT ###
201 | #############
202 |
203 | # https://wiki.hyprland.org/Configuring/Variables/#input
204 | input {
205 | kb_layout = us
206 | kb_variant =
207 | kb_model =
208 | kb_options =
209 | kb_rules =
210 |
211 | follow_mouse = 1
212 | # force_no_accel = 1
213 |
214 | sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
215 |
216 | touchpad {
217 | natural_scroll = true
218 | }
219 | }
220 |
221 | # https://wiki.hyprland.org/Configuring/Variables/#gestures
222 | gestures {
223 | workspace_swipe = true
224 | workspace_swipe_fingers = 3
225 | }
226 |
227 | # Example per-device config
228 | # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
229 | device {
230 | name = epic-mouse-v1
231 | sensitivity = -0.5
232 | }
233 |
234 | ####################
235 | ### KEYBINDINGSS ###
236 | ####################
237 |
238 | # See https://wiki.hyprland.org/Configuring/Keywords/
239 | $mainMod = SUPER # Sets "Windows" key as main modifier
240 |
241 | # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
242 | bind = $mainMod, T, exec, $terminal
243 | bind = $mainMod, B, exec, $browser
244 | bind = $mainMod, O, exec, $notes
245 | bind = $mainMod, C, exec, $editor
246 | bind = $mainMod, S, exec, $editor-alt
247 | bind = $mainMod, Q, killactive,
248 | bind = $mainMod, M, exit,
249 | bind = $mainMod, F, exec, $fileManager
250 | bind = $mainMod, W, togglefloating,
251 | bind = $mainMod, A, exec, $menu
252 | # bind = $mainMod, P, pseudo, # dwindle
253 | bind = $mainMod, J, togglesplit, # dwindle
254 |
255 | bind = SUPER, E, exec, jome -d | wl-copy #Emojipicker + clipboard copy
256 |
257 | # Move focus with mainMod + arrow keys
258 | bind = $mainMod, left, movefocus, l
259 | bind = $mainMod, right, movefocus, r
260 | bind = $mainMod, up, movefocus, u
261 | bind = $mainMod, down, movefocus, d
262 |
263 | # Switch workspaces with mainMod + [0-9]
264 | bind = $mainMod, 1, workspace, 1
265 | bind = $mainMod, 2, workspace, 2
266 | bind = $mainMod, 3, workspace, 3
267 | bind = $mainMod, 4, workspace, 4
268 | bind = $mainMod, 5, workspace, 5
269 | bind = $mainMod, 6, workspace, 6
270 | bind = $mainMod, 7, workspace, 7
271 | bind = $mainMod, 8, workspace, 8
272 | bind = $mainMod, 9, workspace, 9
273 | bind = $mainMod, 0, workspace, 10
274 |
275 | # Move active window to a workspace with mainMod + SHIFT + [0-9]
276 | bind = $mainMod SHIFT, 1, movetoworkspace, 1
277 | bind = $mainMod SHIFT, 2, movetoworkspace, 2
278 | bind = $mainMod SHIFT, 3, movetoworkspace, 3
279 | bind = $mainMod SHIFT, 4, movetoworkspace, 4
280 | bind = $mainMod SHIFT, 5, movetoworkspace, 5
281 | bind = $mainMod SHIFT, 6, movetoworkspace, 6
282 | bind = $mainMod SHIFT, 7, movetoworkspace, 7
283 | bind = $mainMod SHIFT, 8, movetoworkspace, 8
284 | bind = $mainMod SHIFT, 9, movetoworkspace, 9
285 | bind = $mainMod SHIFT, 0, movetoworkspace, 10
286 |
287 | # Example special workspace (scratchpad)
288 | #bind = $mainMod, S, togglespecialworkspace, magic
289 | bind = $mainMod SHIFT, S, movetoworkspace, special:magic
290 |
291 | # Scroll through existing workspaces with mainMod + scroll
292 | bind = $mainMod, mouse_down, workspace, e+1
293 | bind = $mainMod, mouse_up, workspace, e-1
294 |
295 | # Move/resize windows with mainMod + LMB/RMB and dragging
296 | bindm = $mainMod, mouse:272, movewindow
297 | bindm = $mainMod, mouse:273, resizewindow
298 |
299 | # Move/resize windows + Mouse
300 | bindm = $mainMod, Z, movewindow
301 | bindm = $mainMod, X, resizewindow
302 |
303 | # Resize windows
304 | binde = $mainMod+Shift, Right, resizeactive, 30 0
305 | binde = $mainMod+Shift, Left, resizeactive, -30 0
306 | binde = $mainMod+Shift, Up, resizeactive, 0 -30
307 | binde = $mainMod+Shift, Down, resizeactive, 0 30
308 |
309 |
310 | # Clipboard
311 | bind = SUPER, V, exec, cliphist list | tofi -c ~/.config/tofi/configV | cliphist decode | wl-copy
312 |
313 | # Colour Picker
314 | bind = $mainMod, P, exec, $colorPicker | wl-copy
315 |
316 | # Screen locking
317 | bind = SUPER, L, exec, hyprlock
318 |
319 | # wlogout
320 | bind = SUPER, ESCAPE, exec, wlogout
321 |
322 | # waybar
323 | bind = Ctrl, Escape, exec, killall waybar || waybar # toggle waybar
324 |
325 | # Screenshot
326 | # add --cursor flag to include cursor also, --freeze flag to freeze before selection
327 | bind = , Print, exec, grimblast --notify copysave screen # Entire screen + clipboard copy
328 | bind = SUPER, Print, exec, grimblast --notify copysave active # current Active window only + clipboard copy
329 | bind = SUPER ALT, Print, exec, grimblast --notify copysave area # Select area to take screenshot
330 |
331 | # Volume and Media Control
332 | bind = , XF86AudioRaiseVolume, exec, pamixer -i 5
333 | bind = , XF86AudioLowerVolume, exec, pamixer -d 5
334 | bind = , XF86AudioMicMute, exec, pamixer --default-source -m
335 | bind = , XF86AudioMute, exec, pamixer -t
336 | bind = , XF86AudioPlay, exec, playerctl play-pause
337 | bind = , XF86AudioPause, exec, playerctl play-pause
338 | bind = , XF86AudioNext, exec, playerctl next
339 | bind = , XF86AudioPrev, exec, playerctl previous
340 |
341 | # Screen brightness
342 | bind = , XF86MonBrightnessUp, exec, brightnessctl s +5%
343 | bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%-
344 |
345 | ##############################
346 | ### WINDOWS AND WORKSPACES ###
347 | ##############################
348 |
349 | ## Use hyprctl clients to look for window class
350 |
351 | # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
352 | # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
353 |
354 | # Example windowrule v1
355 | # windowrule = float, ^(kitty)$
356 | windowrule = float, class:^(jome)$
357 |
358 | # Example windowrule v2
359 | # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
360 | windowrulev2 = opacity 0.90 0.90,class:^(Thorium-browser)$
361 | windowrulev2 = opacity 0.80 0.80,class:^(Code)$
362 | windowrulev2 = opacity 0.80 0.80,class:^(Arduino IDE)$
363 | windowrulev2 = opacity 0.80 0.80,class:^(dev.warp.Warp)$
364 | windowrulev2 = opacity 0.80 0.80,class:^(obsidian)$
365 | windowrulev2 = opacity 0.80 0.80,class:^(code-url-handler)$
366 | windowrulev2 = opacity 0.80 0.80,class:^(code-insiders-url-handler)$
367 | windowrulev2 = opacity 0.80 0.80,class:^(kitty)$
368 | windowrulev2 = opacity 0.80 0.80,class:^(org.gnome.Nautilus)$
369 | windowrulev2 = opacity 0.80 0.80,class:^(org.kde.ark)$
370 | windowrulev2 = opacity 0.80 0.80,class:^(nwg-look)$
371 | windowrulev2 = opacity 0.80 0.80,class:^(qt5ct)$
372 | windowrulev2 = opacity 0.80 0.80,class:^(qt6ct)$
373 | windowrulev2 = opacity 0.80 0.80,class:^(kvantummanager)$
374 | windowrulev2 = opacity 0.80 0.70,class:^(pavucontrol)$
375 | windowrulev2 = opacity 0.80 0.70,class:^(blueman-manager)$
376 | windowrulev2 = opacity 0.80 0.70,class:^(nm-applet)$
377 | windowrulev2 = opacity 0.70 0.70,class:^(Spotify)$
378 | windowrulev2 = opacity 0.70 0.70,initialTitle:^(Spotify Free)$
379 | windowrulev2 = opacity 0.80 0.70,class:^(nm-connection-editor)$
380 | windowrulev2 = opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$
381 | windowrulev2 = opacity 0.80 0.70,class:^(polkit-gnome-authentication-agent-1)$
382 | windowrulev2 = opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.gtk)$
383 | windowrulev2 = opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.hyprland)$
384 |
385 | windowrulev2 = float,class:^(kvantummanager)$
386 | windowrulev2 = float,class:^(qt5ct)$
387 | windowrulev2 = float,class:^(qt6ct)$
388 | windowrulev2 = float,class:^(nwg-look)$
389 | windowrulev2 = float,class:^(org.kde.ark)$
390 | windowrulev2 = float,class:^(pavucontrol)$
391 | windowrulev2 = float,class:^(blueman-manager)$
392 | windowrulev2 = float,class:^(nm-applet)$
393 | windowrulev2 = float,class:^(nm-connection-editor)$
394 | windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$
395 |
396 | # windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
397 |
398 | # layerrule = blur,waybar
399 | layerrule = ignorezero,tofi
400 | layerrule = ignorezero, dunst
401 | layerrule = blur,dunst
402 |
--------------------------------------------------------------------------------
/configs/hypr/hyprlock.conf:
--------------------------------------------------------------------------------
1 | background {
2 | monitor =
3 | path = ~/.config/assets/backgrounds/cat_leaves_blurred.png # only png supported for now
4 | }
5 |
6 | input-field {
7 | monitor =
8 | size = 200, 50
9 | outline_thickness = 3
10 | dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
11 | dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
12 | dots_center = true
13 | dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
14 | outer_color = rgb(a6adc8)
15 | inner_color = rgb(11111b)
16 | font_color = rgb(a6adc8)
17 | fade_on_empty = true
18 | fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
19 | placeholder_text = Input Password... # Text rendered in the input box when it's empty.
20 | hide_input = false
21 | rounding = -1 # -1 means complete rounding (circle/oval)
22 | check_color = rgb(204, 136, 34)
23 | fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
24 | fail_text = $FAIL ($ATTEMPTS) # can be set to empty
25 | fail_transition = 100 # transition time in ms between normal outer_color and fail_color
26 | capslock_color = -1
27 | numlock_color = -1
28 | bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
29 | invert_numlock = false # change color if numlock is off
30 | swap_font_color = false # see below
31 | position = 0, -20
32 | halign = center
33 | valign = center
34 | }
35 |
36 | label {
37 | monitor =
38 | text = cmd[update:1000] echo "$TIME"
39 | color = rgba(a6adc8)
40 | font_size = 55
41 | font_family = Fira Semibold
42 | position = -100, 40
43 | halign = right
44 | valign = bottom
45 | shadow_passes = 5
46 | shadow_size = 10
47 | }
48 |
49 | label {
50 | monitor =
51 | text = Hello
52 | color = rgba(a6adc8)
53 | font_size = 20
54 | font_family = Fira Semibold
55 | position = -100, 160
56 | halign = right
57 | valign = bottom
58 | shadow_passes = 5
59 | shadow_size = 10
60 | }
61 |
62 | image {
63 | monitor =
64 | path = ~/.config/assets/backgrounds/cat_pacman.png
65 | size = 280 # lesser side if not 1:1 ratio
66 | rounding = -1 # negative values mean circle
67 | border_size = 4
68 | border_color = rgb(a6adc8)
69 | rotate = 0 # degrees, counter-clockwise
70 | reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
71 | # reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
72 | position = 0, 200
73 | halign = center
74 | valign = center
75 | }
--------------------------------------------------------------------------------
/configs/kitty/kitty.conf:
--------------------------------------------------------------------------------
1 | font_size 13.0
2 | window_padding_width 8
3 | font_family JetBrainsMono Nerd Font
4 | italic_font auto
5 | # bold_font auto
6 | bold_italic_font auto
7 | include theme.conf
8 | #background_opacity 0.60
9 | #hide_window_decorations yes
10 | #confirm_os_window_close 0
11 |
--------------------------------------------------------------------------------
/configs/kitty/theme.conf:
--------------------------------------------------------------------------------
1 |
2 | ## name: Catppuccin Mocha 🌿
3 | ## author: Pocco81 (https://github.com/Pocco81)
4 | ## license: MIT
5 | ## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
6 | ## blurb: Soothing pastel theme for the high-spirited!
7 |
8 |
9 |
10 | # The basic colors
11 | foreground #CDD6F4
12 | background #1E1E2E
13 | selection_foreground #1E1E2E
14 | selection_background #F5E0DC
15 |
16 | # Cursor colors
17 | cursor #F5E0DC
18 | cursor_text_color #1E1E2E
19 |
20 | # URL underline color when hovering with mouse
21 | url_color #B4BEFE
22 |
23 | # Kitty window border colors
24 | active_border_color #CBA6F7
25 | inactive_border_color #8E95B3
26 | bell_border_color #EBA0AC
27 |
28 | # OS Window titlebar colors
29 | wayland_titlebar_color system
30 | macos_titlebar_color system
31 |
32 | # Tab bar colors
33 | active_tab_foreground #11111B
34 | active_tab_background #CBA6F7
35 | inactive_tab_foreground #CDD6F4
36 | inactive_tab_background #181825
37 | tab_bar_background #11111B
38 |
39 | # Colors for marks (marked text in the terminal)
40 | mark1_foreground #1E1E2E
41 | mark1_background #87B0F9
42 | mark2_foreground #1E1E2E
43 | mark2_background #CBA6F7
44 | mark3_foreground #1E1E2E
45 | mark3_background #74C7EC
46 |
47 | # The 16 terminal colors
48 |
49 | # black
50 | color0 #43465A
51 | color8 #43465A
52 |
53 | # red
54 | color1 #F38BA8
55 | color9 #F38BA8
56 |
57 | # green
58 | color2 #A6E3A1
59 | color10 #A6E3A1
60 |
61 | # yellow
62 | color3 #F9E2AF
63 | color11 #F9E2AF
64 |
65 | # blue
66 | color4 #87B0F9
67 | color12 #87B0F9
68 |
69 | # magenta
70 | color5 #F5C2E7
71 | color13 #F5C2E7
72 |
73 | # cyan
74 | color6 #94E2D5
75 | color14 #94E2D5
76 |
77 | # white
78 | color7 #CDD6F4
79 | color15 #A1A8C9
--------------------------------------------------------------------------------
/configs/tofi/configA:
--------------------------------------------------------------------------------
1 | width = 100%
2 | height = 100%
3 | border-width = 0
4 | outline-width = 0
5 | padding-left = 33%
6 | padding-top = 33%
7 | result-spacing = 25
8 | num-results = 5
9 |
10 | font = JetBrainsMono Nerd Font
11 | font-size = 24
12 |
13 | text-color = #4e4e5f
14 |
15 | prompt-text = " : "
16 |
17 | background-color = #11111bd9
18 | selection-color = #83A4E7
19 |
--------------------------------------------------------------------------------
/configs/tofi/configV:
--------------------------------------------------------------------------------
1 | width = 100%
2 | height = 100%
3 | border-width = 0
4 | outline-width = 0
5 | padding-top = 33%
6 | padding-left = 10%
7 | padding-right = 10%
8 | result-spacing = 25
9 | num-results = 5
10 |
11 | font = JetBrainsMono Nerd Font
12 | font-size = 24
13 |
14 | text-color = #4e4e5f
15 |
16 | prompt-text = " : "
17 |
18 | background-color = #11111bd9
19 | selection-color = #83A4E7
20 |
21 |
--------------------------------------------------------------------------------
/configs/waybar/config.jsonc:
--------------------------------------------------------------------------------
1 | {
2 | "layer": "top",
3 | "position": "top",
4 | "mode": "dock",
5 | "exclusive": true,
6 | "passthrough": false,
7 | "gtk-layer-shell": true,
8 | "height": 0,
9 | "modules-left": [
10 | "clock",
11 | "hyprland/workspaces"
12 | ],
13 | "modules-center": ["hyprland/window"],
14 | "modules-right": [
15 | "tray",
16 | "memory",
17 | "cpu",
18 | "network",
19 | "battery",
20 | "backlight",
21 | "pulseaudio",
22 | "pulseaudio#microphone"
23 | ],
24 |
25 | "hyprland/window": {
26 | "format": " {}"
27 | },
28 |
29 | "hyprland/workspaces": {
30 | "disable-scroll": true,
31 | "all-outputs": true,
32 | "on-click": "activate"
33 | //"format": "{icon}",
34 | },
35 |
36 | "tray": {
37 | "icon-size": 13,
38 | "spacing": 10
39 | },
40 |
41 | "clock": {
42 | "format": "{:%A %B-%d-%Y %I:%M:%S %p}",
43 | "interval": 1,
44 | "rotate": 0,
45 | "tooltip-format": "{calendar}",
46 | "calendar": {
47 | "mode": "month",
48 | "mode-mon-col": 3,
49 | "on-scroll": 1,
50 | "on-click-right": "mode",
51 | "format": {
52 | "months": "{}",
53 | "weekdays": "{}",
54 | "today": "{}",
55 | "days": "{}"
56 | }
57 | }
58 | },
59 |
60 | "backlight": {
61 | "device": "intel_backlight",
62 | "format": "{icon} {percent}%",
63 | "format-icons": ["", "", ""],
64 | "on-scroll-up": "brightnessctl set 1%+",
65 | "on-scroll-down": "brightnessctl set 1%-",
66 | "min-length": 6
67 | },
68 |
69 | "battery": {
70 | "states": {
71 | "good": 95,
72 | "warning": 30,
73 | "critical": 20
74 | },
75 | "format": "{icon} {capacity}%",
76 | "format-charging": " {capacity}%",
77 | "format-plugged": " {capacity}%",
78 | "format-alt": "{time} {icon}",
79 | "format-icons": ["", "", "", "", "", "", "", "", "", "", ""]
80 | },
81 |
82 | "pulseaudio": {
83 | "format": "{icon} {volume}%",
84 | "tooltip": false,
85 | "format-muted": " Muted",
86 | "on-click": "pamixer -t",
87 | "on-scroll-up": "pamixer -i 1",
88 | "on-scroll-down": "pamixer -d 1",
89 | "scroll-step": 5,
90 | "format-icons": {
91 | "headphone": "",
92 | "hands-free": "",
93 | "headset": "",
94 | "phone": "",
95 | "portable": "",
96 | "car": "",
97 | "default": ["","", "", ""]
98 | }
99 | },
100 |
101 | "pulseaudio#microphone": {
102 | "format": "{format_source}",
103 | "format-source": " {volume}%",
104 | "format-source-muted": " Muted",
105 | "on-click": "pamixer --default-source -t",
106 | "on-scroll-up": "pamixer --default-source -i 5",
107 | "on-scroll-down": "pamixer --default-source -d 5",
108 | "scroll-step": 5
109 | },
110 |
111 | "memory": {
112 | "states": {
113 | "c": 90, // critical
114 | "h": 60, // high
115 | "m": 30 // medium
116 | },
117 | "interval": 10,
118 | "format": " {used}GB",
119 | "format-m": " {used}GB",
120 | "format-h": " {used}GB",
121 | "format-c": " {used}GB",
122 | "format-alt": " {percentage}%",
123 | "max-length": 10,
124 | "tooltip": true,
125 | "tooltip-format": " {percentage}%\n {used:0.1f}GB/{total:0.1f}GB"
126 | },
127 |
128 | "cpu": {
129 | "interval": 10,
130 | "format": " {usage}%",
131 | "format-alt": "{icon0}{icon1}{icon2}{icon3}",
132 | "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]
133 | },
134 |
135 | "network": {
136 | "tooltip": true,
137 | "format-wifi": " {essid}",
138 | "format-ethernet": " ",
139 | "tooltip-format": "Network: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}",
140 | "format-linked": " {ifname} (No IP)",
141 | "format-disconnected": " ",
142 | "tooltip-format-disconnected": "Disconnected",
143 | "format-alt": " {bandwidthDownBytes} {bandwidthUpBytes}",
144 | "interval": 2
145 | }
146 | }
147 |
--------------------------------------------------------------------------------
/configs/waybar/style.css:
--------------------------------------------------------------------------------
1 | * {
2 | border: none;
3 | border-radius: 0;
4 | font-family: JetBrainsMono Nerd Font, monospace;
5 | font-weight: bold;
6 | font-size: 14px;
7 | min-height: 0;
8 | }
9 |
10 | window#waybar {
11 | background: rgba(21, 18, 27, 0);
12 | color: #cdd6f4;
13 | }
14 |
15 | #workspaces button {
16 | padding: 5px;
17 | color: #555869;
18 | margin-right: 5px;
19 | }
20 |
21 | #workspaces button.active {
22 | color: #a6adc8;
23 | }
24 |
25 | #workspaces button.focused {
26 | color: #a6adc8;
27 | background: #eba0ac;
28 | border-radius: 10px;
29 | }
30 |
31 | #workspaces button.urgent {
32 | color: #11111b;
33 | background: #a6e3a1;
34 | border-radius: 10px;
35 | }
36 |
37 | #workspaces button:hover {
38 | background: #cdd6f4;
39 | color: #11111b;
40 | border-radius: 10px;
41 | }
42 |
43 | #window,
44 | #clock,
45 | #battery,
46 | #pulseaudio,
47 | #network,
48 | #cpu,
49 | #memory,
50 | #workspaces,
51 | #tray,
52 | #backlight {
53 | background: #1e1e2e;
54 | padding: 0px 10px;
55 | margin: 3px 0px;
56 | margin-top: 5px;
57 | /* border: 1px solid #181825; */
58 | }
59 |
60 | #backlight {
61 | border-radius: 10px 0px 0px 10px;
62 | }
63 |
64 | #tray {
65 | border-radius: 10px;
66 | margin-right: 10px;
67 | }
68 |
69 | #workspaces {
70 | background: #1e1e2e;
71 | border-radius: 10px;
72 | margin-left: 10px;
73 | padding-right: 0px;
74 | padding-left: 5px;
75 | }
76 |
77 | #cpu {
78 | border-radius: 0px 10px 10px 0px;
79 | margin-right: 10px;
80 | }
81 |
82 | #memory {
83 | border-radius: 10px 0px 0px 10px;
84 | }
85 |
86 | #window {
87 | border-radius: 10px;
88 | margin-left: 60px;
89 | margin-right: 60px;
90 | }
91 |
92 | #clock {
93 | color: #a6adc8;
94 | border-radius: 10px 10px 10px 10px;
95 | margin-left: 5px;
96 | border-right: 0px;
97 | }
98 |
99 | #network {
100 | color: #a6adc8;
101 | border-radius: 10px 0px 0px 10px;
102 |
103 | }
104 |
105 | #pulseaudio {
106 | color: #a6adc8;
107 | border-left: 0px;
108 | border-right: 0px;
109 | }
110 |
111 | #pulseaudio.microphone {
112 | color: #a6adc8;
113 | border-radius: 0px 10px 10px 0px;
114 | border-left: 0px;
115 | border-right: 0px;
116 | margin-right: 5px;
117 | }
118 |
119 | #battery {
120 | color:#a6adc8;
121 | border-radius: 0px 10px 10px 0px;
122 | margin-right: 10px;
123 | }
124 |
--------------------------------------------------------------------------------
/configs/wlogout/layout:
--------------------------------------------------------------------------------
1 | {
2 | "label" : "exit",
3 | "action" : "",
4 | "text" : "Exit",
5 | "keybind" : "h"
6 | }
7 | {
8 | "label" : "shutdown",
9 | "action" : "systemctl poweroff",
10 | "text" : "Shutdown",
11 | "keybind" : "s"
12 | }
13 |
14 | {
15 | "label" : "suspend",
16 | "action" : "systemctl suspend-then-hibernate",
17 | "text" : "Suspend",
18 | "keybind" : "u"
19 | }
20 | {
21 | "label" : "lock",
22 | "action" : "hyprlock",
23 | "text" : "Lock",
24 | "keybind" : "l"
25 | }
26 | {
27 | "label" : "logout",
28 | "action" : "hyprctl dispatch exit",
29 | "text" : "Logout",
30 | "keybind" : "e"
31 | }
32 | {
33 | "label" : "reboot",
34 | "action" : "systemctl reboot",
35 | "text" : "Reboot",
36 | "keybind" : "r"
37 | }
--------------------------------------------------------------------------------
/configs/wlogout/style.css:
--------------------------------------------------------------------------------
1 | * {
2 | font-family: JetBrains Mono, Symbols Nerd Font;
3 | font-size: 24px;
4 | transition-property: background-color;
5 | transition-duration: 0.7s;
6 | }
7 |
8 | window {
9 | background-color: #11111b;
10 | /* border-radius: 10px; */
11 | }
12 |
13 | button {
14 | background-color: #11111b;
15 | border-style: solid;
16 | /* border-width: 2px; */
17 | border-radius: 50px;
18 | background-repeat: no-repeat;
19 | background-position: center;
20 | background-size: 15%;
21 | margin: 15px;
22 | }
23 |
24 | button:active,
25 | button:hover {
26 | background-color: #cdd6f4;
27 | }
28 |
29 | button:focus {
30 | background-color: #cdd6f4;
31 | }
32 |
33 | #lock {
34 | background-image: image(url("~/.config/assets/wlogout/assets/lock.png"), url("/usr/local/share/wlogout/icons/lock.png"));
35 | }
36 |
37 | #lock:hover {
38 | background-image: image(url("~/.config/assets/wlogout/assets/lock-hover.png"), url("/usr/local/share/wlogout/icons/lock.png"));
39 | color: #11111b;
40 | }
41 |
42 | #logout {
43 | background-image: image(url("~/.config/assets/wlogout/assets/logout.png"), url("/usr/local/share/wlogout/icons/logout.png"));
44 | }
45 |
46 | #logout:hover {
47 | background-image: image(url("~/.config/assets/wlogout/assets/logout-hover.png"), url("/usr/local/share/wlogout/icons/logout.png"));
48 | color: #11111b;
49 | }
50 |
51 | #suspend {
52 | background-image: image(url("~/.config/assets/wlogout/assets/sleep.png"), url("/usr/local/share/wlogout/icons/suspend.png"));
53 | }
54 |
55 | #suspend:hover {
56 | background-image: image(url("~/.config/assets/wlogout/assets/sleep-hover.png"), url("/usr/local/share/wlogout/icons/suspend.png"));
57 | color: #11111b;
58 | }
59 |
60 | #shutdown {
61 | background-image: image(url("~/.config/assets/logout/assets/power.png"), url("/usr/local/share/wlogout/icons/shutdown.png"));
62 | }
63 |
64 | #shutdown:hover {
65 | background-image: image(url("~/.config/assets/wlogout/assets/power-hover.png"), url("/usr/local/share/wlogout/icons/shutdown.png"));
66 | color: #11111b;
67 | }
68 |
69 | #reboot {
70 | background-image: image(url("~/.config/assets/wlogout/assets/restart.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
71 | }
72 |
73 | #reboot:hover {
74 | background-image: image(url("~/.config/assets/wlogout/assets/restart-hover.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
75 | color: #11111b;
76 | }
77 |
78 | #exit {
79 | background-image: image(url("~/.config/assets/wlogout/assets/restart.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
80 | background-color: #11111b;
81 |
82 | }
83 |
84 | #exit:hover {
85 | background-image: image(url("~/.config/assets/wlogout/assets/restart-hover.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
86 | color: #11111b;
87 | background-color: #cdd6f4;
88 | }
89 |
--------------------------------------------------------------------------------
/docs/basic_configuration.md:
--------------------------------------------------------------------------------
1 | # Basic Configuration 🛠️
2 |
3 | Having installed Hyprland and essential system components, we now proceed to configure basics of your environment for optimal functionality and efficiency. This section will guide you through the configuration of key aspects by modifying the `hyprland.conf` file.
4 |
5 | Navigate to your configuration file and commence editing.
6 |
7 | #### 1. Monitor Configuration 🖥️
8 | The default monitor configuration is optimized for most setups. However, for advanced configurations such as setting precise refresh rates, resolutions, or mirroring displays, refer to the [Hyprland Monitor Configuration Wiki](https://wiki.hyprland.org/Configuring/Monitors/).
9 |
10 | #### 2. User Programs 📚
11 | Define frequently used applications for rapid access:
12 |
13 | ```
14 | # Define primary applications
15 | $terminal = kitty
16 | $fileManager = dolphin
17 | $browser = brave-browser
18 | $editor = code
19 | ```
20 |
21 | #### 3. Autostart Configuration 🚀
22 | Autostart critical applications and services. We have previously configured Polkit and dunst daemon for autostart.
23 |
24 | ```
25 | ## Autostart essential processes
26 | exec-once=/usr/lib/polkit-kde-authentication-agent-1 # Polkit for privilege management
27 | exec-once=/usr/bin/dunst
28 | # Additional autostart entries
29 | ```
30 |
31 | #### 4. Environment Variables 🌍
32 | Configure environment variables to ensure compatibility and performance. You can copy and paste these as it is, as anyway you will need to configure them later.
33 |
34 | ```
35 | # QT
36 | env = QT_QPA_PLATFORM,wayland;xcb
37 | env = QT_QPA_PLATFORMTHEME,qt6ct
38 | env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
39 | env = QT_AUTO_SCREEN_SCALE_FACTOR,1
40 | env = QT_STYLE_OVERRIDE,kvantum
41 |
42 | # Toolkit Backend Variables
43 | env = GDK_BACKEND,wayland,x11,*
44 | env = SDL_VIDEODRIVER,wayland
45 | env = CLUTTER_BACKEND,wayland
46 |
47 | # XDG Specifications
48 | env = XDG_CURRENT_DESKTOP,Hyprland
49 | env = XDG_SESSION_TYPE,wayland
50 | env = XDG_SESSION_DESKTOP,Hyprland
51 | ```
52 | #### 5. Look and Feel 🎨
53 | Adjust the appearance and behavior of your Hyprland environment. Detailed customization will be covered in subsequent sections.
54 |
55 | Change things like `gaps_in, gaps_out, border_size, resizing_on_border`, etc. according to your comfort.
56 |
57 | ```
58 | general {
59 | gaps_in = 5
60 | gaps_out = 5
61 | border_size = 2
62 | col.active_border = rgb(8aadf4) rgb(24273A) rgb(24273A) rgb(8aadf4) 45deg
63 | col.inactive_border = rgb(24273A) rgb(24273A) rgb(24273A) rgb(27273A) 45deg
64 | resize_on_border = true
65 | allow_tearing = false
66 | layout = dwindle
67 | }
68 | ```
69 |
70 | #### 6. Input Configuration ⌨️🖱️
71 | Configure input devices, including keyboard layouts and touchpad settings:
72 |
73 | Most of the defaults will work, but you might want to change things like `natural_scroll, workspace_swipe`, etc.
74 |
75 | ```
76 | input {
77 | kb_layout = us
78 | follow_mouse = 1
79 | sensitivity = 0
80 |
81 | touchpad {
82 | natural_scroll = true
83 | }
84 | }
85 |
86 | gestures {
87 | workspace_swipe = true
88 | workspace_swipe_fingers = 3
89 | }
90 | ```
91 |
92 | #### 7. Keybindings ⌨️
93 | Configure keybindings for efficient workflow management. Note that these bindings are crucial as we haven't yet configured an application launcher.
94 |
95 | **Pro Tip:** 💡 Try to make meaningful binds like T for terminal, B for browser, C for code, F for file manager, and Q for quit.
96 |
97 | You might want to change the volume and brightness of your system. To do that, install the following software:
98 |
99 | ```
100 | # Brightness control
101 | pacman -S brightnessctl
102 |
103 | # Volume control
104 | pacman -S pamixer
105 | ```
106 |
107 | After installing the utilities, add the following bindings:
108 |
109 | ```
110 | $mainMod = SUPER
111 |
112 | bind = $mainMod, T, exec, $terminal
113 | bind = $mainMod, B, exec, $browser
114 | bind = $mainMod, C, exec, $editor
115 | bind = $mainMod, Q, killactive,
116 | bind = $mainMod, M, exit,
117 | bind = $mainMod, F, exec, $fileManager
118 | bind = $mainMod, W, togglefloating,
119 |
120 |
121 | # Volume and Media Control
122 | bind = , XF86AudioRaiseVolume, exec, pamixer -i 5
123 | bind = , XF86AudioLowerVolume, exec, pamixer -d 5
124 | bind = , XF86AudioMicMute, exec, pamixer --default-source -m
125 | bind = , XF86AudioMute, exec, pamixer -t
126 | bind = , XF86AudioPlay, exec, playerctl play-pause
127 | bind = , XF86AudioPause, exec, playerctl play-pause
128 | bind = , XF86AudioNext, exec, playerctl next
129 | bind = , XF86AudioPrev, exec, playerctl previous
130 |
131 | # Screen brightness
132 | bind = , XF86MonBrightnessUp, exec, brightnessctl s +5%
133 | bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%-
134 | ```
135 | We will add more binds as we progress.
136 |
137 | For comprehensive keybinding documentation, refer to the [Hyprland Keybindings Wiki](https://wiki.hyprland.org/Configuring/Binds/).
138 |
139 | With your minimal Hyprland environment now operational, we're poised to elevate it from functional to phenomenal. In the following sections, we'll supercharge your setup with sleek status bars, lightning-fast application launchers, and dynamic wallpaper utilities. Brace yourself for a deep dive into advanced customization that will transform your desktop into a powerhouse of aesthetics and efficiency. The groundwork is laid; now it's time to unleash the full potential of your Hyprland environment. 🚀✨
140 |
141 | **Next:** [Useful Utilities](useful_utilities.md) 👉
--------------------------------------------------------------------------------
/docs/final.md:
--------------------------------------------------------------------------------
1 | # Simple Hyprland 🌟
2 |
3 | Congratulations on completing the Simple Hyprland Guide! You've successfully set up a minimal, efficient, and visually appealing Hyprland environment on your Arch Linux system. This README serves as a recap of your journey and a reference for future tweaks and enhancements.
4 |
5 | ## What You've Accomplished 🏆
6 |
7 | 1. **Base Installation**: Set up a minimal Arch Linux system with Hyprland.
8 | 2. **Core Components**: Installed and configured critical system software.
9 | 3. **Basic Configuration**: Customized Hyprland for optimal functionality.
10 | 4. **Essential Utilities**: Enhanced your setup with powerful tools:
11 | - Waybar (Status Bar)
12 | - Tofi (App Launcher)
13 | - Cliphist (Clipboard Manager)
14 | - Swww (Wallpaper Manager)
15 | - Hyprpicker (Color Picker)
16 | - Hyprlock (Screen Locker)
17 | - Hypridle (Idle Manager)
18 | - Wlogout (Logout Menu)
19 | - Grimblast (Screenshot Tool)
20 | 5. **Theming**: Applied a cohesive look across your desktop environment.
21 |
22 | ## Key Files and Locations 📁
23 |
24 | - Hyprland config: `~/.config/hypr/hyprland.conf`
25 | - Waybar config: `~/.config/waybar/config.jsonc` and `~/.config/waybar/style.css`
26 | - Tofi config: `~/.config/tofi/`
27 | - Kitty config: `~/.config/kitty/kitty.conf` and `~/.config/kitty/theme.conf`
28 | - Dunst config: `~/.config/dunst/dunstrc`
29 |
30 | ## Customization Tips 🛠️
31 |
32 | 1. **Hyprland**: Modify `~/.config/hypr/hyprland.conf` for layout, keybindings, and animations.
33 | 2. **Waybar**: Adjust modules and styling in the Waybar config files.
34 | 3. **Themes**: Use `nwg-look` for GTK themes and `kvantummanager` for QT themes.
35 | 4. **Wallpaper**: Change wallpaper using `swww img [path_to_image]`.
36 | 5. **Keybindings**: Add or modify keybindings in the Hyprland config.
37 |
38 | ## Troubleshooting 🔍
39 |
40 | 1. Check the Hyprland log: `~/.cache/hypr/hyprland.log`
41 | 2. Ensure all services are running: `systemctl --user status`
42 | 3. Verify configuration syntax for each component.
43 | 4. Consult the [Hyprland Wiki](https://wiki.hyprland.org/) for detailed information.
44 |
45 | ## Further Enhancements 🔮
46 | - A script to automate the whole process to save time.
47 | - Documentation for extra Setup required for NVIDIA card users.
48 | - Explore additional Wayland-compatible applications.
49 | - Fine-tune animations and window rules in Hyprland.
50 | - Create custom scripts for repeated tasks.
51 | - Adding cool derived minimal setups.
52 |
53 | ## Community and Support 🤝
54 | - [Hyprland GitHub](https://github.com/hyprwm/Hyprland)
55 | - [Hyprland Discord](https://discord.gg/hQ9XvMUjjr)
56 | - [Arch Linux Forums](https://bbs.archlinux.org/)
57 |
58 | Remember, your Hyprland journey doesn't end here. Keep exploring, customizing, and enjoying your unique, efficient, and beautiful desktop environment! 🎉
59 |
60 | **Home:** [Main ReadMe](/README.md)
--------------------------------------------------------------------------------
/docs/installation_Hypr.md:
--------------------------------------------------------------------------------
1 | # Hyprland & Critical Softwares 🖥️🔧
2 | With the prerequisite base system established, we proceed to the core of this guide. This section delineates the process of installing Hyprland and configuring critical system software to ensure a robust and efficient workflow.
3 |
4 | ## Hyprland Installation 🚀
5 | 1. **Install Hyprland:**
6 |
7 | ```
8 | pacman -S hyprland
9 | ```
10 |
11 | **Pro Tip:💡** If you're feeling adventurous, you can always grab the bleeding-edge version from the AUR for the latest features and fixes.
12 |
13 | 2. **Initiate Hyprland:**
14 | As we installed SDDM before, you can also start the session through it.
15 |
16 | ```
17 | Hyprland
18 | ```
19 |
20 | 3. **Upon initial launch:** A top bar will display with a warning and commands to launch Kitty and exit Hyprland.
21 | To remove the warning ⚠️:
22 |
23 | * Launch Kitty using the shortcut **`(SUPER + Q)`**
24 | * Navigate to `~/.config/hypr/hyprland.conf` and either comment out or remove the line `autogenerated = 1`.
25 |
26 | Essential default keybindings:
27 | * **`SUPER + C`:** Kill the active window
28 | * **`SUPER + M`:** Quit hyprland (but why would you want to?)
29 |
30 | To access web resources, open Kitty and execute `brave-browser` to launch the Brave browser.
31 |
32 | ## Critical System Components 🛠️
33 | 1. **XDG Desktop Portal:** The XDG Desktop Portal is crucial for handling desktop functionalities such as file dialogs and screensharing.
34 |
35 | ```
36 | pacman -S xdg-desktop-portal-hyprland
37 | ```
38 |
39 | 2. **Install Polkit:** Polkit manages system-wide privileges. Install the KDE version for compatibility:
40 |
41 | ```
42 | pacman -S polkit-kde-agent
43 | ```
44 |
45 | * To autostart Polkit, append the following to your `hyprland.conf`:
46 |
47 | ```
48 | exec-once=/usr/lib/polkit-kde-authentication-agent-1
49 | ```
50 |
51 | * Note: Ensure there's no whitespace between `=` and `/`.
52 |
53 | 3. **QT Wayland Support:** Install the necessary libraries for QT applications to function correctly under Wayland:
54 |
55 | ```
56 | pacman -S qt5-wayland qt6-wayland
57 | ```
58 |
59 | 4. **Notification Daemon:** A notification daemon is essential for managing system notifications. Many apps may freeze without one running. [Dunst](https://github.com/dunst-project/dunst) is a lightweight, customizable option:
60 |
61 | ```
62 | pacman -S dunst
63 | ```
64 |
65 | * To autostart dunst, append the following to your `hyprland.conf`:
66 |
67 | ```
68 | exec-once=/usr/bin/dunst
69 | ```
70 |
71 | ## Hyprland Session Reload 🔄
72 | After installing the critical software components and making the necessary configurations, restart your Hyprland session to ensure all new settings and software are properly initialized and integrated.
73 |
74 | **Next:** [Basic Configuration](basic_configuration.md) 👉
--------------------------------------------------------------------------------
/docs/prerequisites.md:
--------------------------------------------------------------------------------
1 | # Prerequisites 🚀
2 | This guide assumes understanding of Linux systems, particularly [Arch Linux](https://archlinux.org/). The following prerequisites are essential for the seamless installation and setup of Hyprland on your system.
3 |
4 | ## Base System 💻
5 | **Arch Linux:** A minimal Arch Linux Installation is required. It's assumed that you're well-versed with the [Arch installation process]((https://wiki.archlinux.org/title/Installation_guide)) and have a functional base system ready for Hyprland integration.
6 |
7 | ## Toolbox Essentials 🧰
8 | 1. **AUR Helper:** An [AUR helper](https://wiki.archlinux.org/title/AUR_helpers) s indispensable for efficient package management from the Arch User Repository. While the choice of helper is discretionary, I'm partial to [yay](https://aur.archlinux.org/packages/yay) for its efficiency and user-friendliness.
9 |
10 | ```
11 | pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si # builds with makepkg
12 | ```
13 |
14 | 2. **Audio Stack:** Install and configure [Pipewire](https://wiki.archlinux.org/title/PipeWire) and [Wireplumber](https://wiki.archlinux.org/title/WirePlumber) for audio management. This modern audio setup will replace traditional systems like PulseAudio, providing better performance and flexibility.
15 |
16 | ```
17 | pacman -S pipewire wireplumber
18 | ```
19 |
20 | 3. **Nerd Fonts:** Install these Nerd Fonts for enhanced glyph support and aesthetics:
21 | * Cascadia Code
22 | * JetBrains Mono
23 | * Fira Code
24 | * Iosevka
25 | * Noto
26 | * Nerd Font Symbols
27 |
28 | ```
29 | pacman -S ttf-cascadia-code-nerd ttf-cascadia-mono-nerd ttf-fira-code ttf-fira-mono ttf-fira-sans ttf-firacode-nerd ttf-iosevka-nerd ttf-iosevkaterm-nerd ttf-jetbrains-mono-nerd ttf-jetbrains-mono ttf-nerd-fonts-symbols ttf-nerd-fonts-symbols ttf-nerd-fonts-symbols-mono
30 | ```
31 |
32 | 4. **Display Manager:** [SDDM](https://wiki.archlinux.org/title/SDDM) is the recommended display manager due to its high compatibility with Hyprland. However, feel free to use your preferred display manager, understanding that some configuration adjustments may be necessary.
33 |
34 | ```
35 | pacman -S sddm
36 | systemctl enable sddm.service
37 | ```
38 |
39 | 5. **Web Browser:** [Brave](https://brave.com/en-in/linux/) Brave will be used for accessing configuration resources and this guide. Install via:
40 |
41 | ```
42 | yay -S brave-bin
43 | ```
44 |
45 | 6. **Terminal Emulator:** [Kitty](https://wiki.archlinux.org/title/Kitty) is the default terminal in the Hyprland configuration. If you prefer an alternative, be prepared to modify the config accordingly.
46 |
47 | ```
48 | pacman -S kitty
49 | ```
50 |
51 | 7. **Text/Code Editor:** Any text editor or IDE will suffice. This guide will use Visual Studio Code and nano for ease of demonstration, but feel free to use your editor of choice (vim, emacs, etc.).
52 |
53 | ```
54 | yay -S visual-studio-code-bin
55 | pacman -S nano
56 | ```
57 |
58 | 8. **tar:** The [tar](https://www.baeldung.com/linux/tar-command) command is a utility for archiving and extracting files. It will be essential for managing various archives throughout the installation process.
59 |
60 | ```
61 | pacman -S tar
62 | ```
63 |
64 | ## Assumed Competencies 🧠
65 | * **Basic Linux Command Line Knowledge:** You'll be spending some quality time in the terminal, so make sure you're comfortable with the command line.
66 |
67 | * **Package Management:** Understanding how to install and manage packages using pacman and an AUR helper is a must.
68 |
69 | * **Configuration Editing:** Ability to edit configuration files using a text editor, including understanding basic syntax and structure.
70 |
71 | * **Troubleshooting:** Some hiccups may occur along the way, so basic troubleshooting skills will come in handy.
72 |
73 | ## Additional Recommendations 📌
74 | * **Backup Your Data:** Ensure you have backups of any important data before embarking on this journey.
75 |
76 | * **Update Your System:** Keep your system up to date before starting the installation to avoid any potential conflicts.
77 |
78 | With these prerequisites in place, you're primed to delve into the intricacies of the Simple Hyprland guide and craft a cool, tiling-based environment on your Arch Linux system.
79 |
80 | **Next:** [Core Installation](installation_Hypr.md) 👉
--------------------------------------------------------------------------------
/docs/theming.md:
--------------------------------------------------------------------------------
1 | # Theming, Look & feel 🎨✨
2 | In this guide, we'll transform your Hyprland setup into a visually stunning environment by applying themes to various components. A well-themed desktop not only looks great but also enhances your workflow and overall user experience.
3 |
4 | ## Installing Essential Tools 🛠️
5 |
6 | #### nwg-look
7 | [nwg-look](https://github.com/nwg-piotr/nwg-look) simplifies the process of setting GTK themes, enabling a cohesive look across different toolkits.
8 |
9 | ##### Installation
10 |
11 | ```
12 | pacman -S nwg-look
13 | ```
14 |
15 | #### [qt5ct](https://github.com/desktop-app/qt5ct), [qt6ct](https://github.com/trialuser02/qt6ct), [Kvantum](https://github.com/tsujan/Kvantum/tree/master/Kvantum)
16 | These tools are essential for managing and applying themes to QT5 and QT6 applications, ensuring a consistent appearance across your desktop environment.
17 |
18 | ##### Installation
19 |
20 | ```
21 | pacman -S qt5ct qt6ct kvantum
22 | ```
23 |
24 | ##### Adding QT Environment Variables
25 | We've already added the necessary QT environment variables during the basic configuration step.
26 |
27 | ## Installing themes and icons 🏞️
28 | #### GTK Themes
29 | Place the themes in the system theme directory. For this guide, we'll install the [Catppuccin theme](https://github.com/catppuccin/catppuccin) taken from [hyprdots](https://github.com/prasanthrangan/hyprdots) repo, a visually appealing option.
30 |
31 | Extract the theme from the repos assets to the following location to apply it system-wide:
32 |
33 | ```
34 | tar -xvf ~/simple-hyprland/assets/themes/Catppuccin-Mocha.tar.xz -C /usr/share/themes/
35 | ```
36 |
37 | #### Icon Theme
38 | Place the icon theme in the system icon directory. We'll install the [Tela icon theme](https://github.com/vinceliuice/Tela-icon-theme) also from hyprdots.
39 |
40 | Extract the theme from our assets to the following location to apply it system-wide:
41 |
42 | ```
43 | tar -xvf ~/simple-hyprland/assets/icons/Tela-circle-dracula.tar.xz -C /usr/share/icons/
44 | ```
45 |
46 | #### Kvantum Theme
47 | For Arch-based systems, install the kvantum-theme-catppuccin from the AUR:
48 |
49 | ```
50 | yay -S kvantum-theme-catppuccin-git
51 | ```
52 |
53 | ## Setting the Themes 🖼️
54 | 1. Use `nwg-look` to set the global GTK and icon theme, and apply the changes.
55 | 2. Open the `kvantummanager` (with sudo to apply as root theme , "sudo -E kvantummanager"), select the desired theme, and apply it.
56 | 3. Open the `qt6ct` (QT6 Settings) and set the icon theme.
57 | 4. Optionally, you can change other settings like font size, cursor theme, etc.
58 |
59 | By default all the configs we used in the previous tutorial are configured with catppuccin color theme.
60 |
61 | ## Theming applications 🖥️
62 | At this stage, you might want to theme specific applications to achieve a uniform look across your desktop environment.
63 |
64 | #### 1. Kitty: The terminal emulator
65 | Copy the configuration files for the Catppuccin theme:
66 |
67 | 1. `kitty.conf` - Kitty configuration file
68 | 2. `theme.conf` - Theme file
69 |
70 | ```
71 | cp -r ~/simple-hyprland/configs/kitty ~/.config/
72 | ```
73 | #### 2. VS Code: The Code editor
74 | Install the Catppuccin theme extension from the Visual Studio Code Marketplace.
75 |
76 | #### 3. Dunst: Notification daemon
77 | Copy the configuration file i.e. `dunstrc`.
78 |
79 | ```
80 | cp -r ~/simple-hyprland/configs/dunst ~/.config/
81 | ```
82 |
83 | ## Misc 🔧
84 | Some additional enhancements to elevate the overall feel and experience.
85 |
86 | #### 1. Adding blur to the windows
87 | We can achieve a blurred effect on windows by adding window rules in our hyprland.conf.
88 |
89 | Example: To add blur to Kitty, add:
90 |
91 | ```
92 | windowrulev2 = opacity 0.90 0.90,class:^(kitty)$
93 | ```
94 |
95 | **Pro Tip:** 💡 To get the class_name for a specific window, use the command `hyprctl clients` while the window is open.
96 |
97 | For more details refer [Hyprland Window Rules](https://wiki.hyprland.org/Configuring/Window-Rules/).
98 |
99 | #### 2. Adding Animation and decorations
100 | Animations and decorations can add a touch of flair to your desktop experience.
101 |
102 | Add/Edit the following to your`hyprland.conf`.
103 |
104 | ```
105 | animations {
106 | enabled = true
107 | bezier = wind, 0.05, 0.9, 0.1, 1.05
108 | bezier = winIn, 0.1, 1.1, 0.1, 1.1
109 | bezier = winOut, 0.3, -0.3, 0, 1
110 | bezier = liner, 1, 1, 1, 1
111 | animation = windows, 1, 6, wind, slide
112 | animation = windowsIn, 1, 6, winIn, slide
113 | animation = windowsOut, 1, 5, winOut, slide
114 | animation = windowsMove, 1, 5, wind, slide
115 | animation = border, 1, 1, liner
116 | animation = borderangle, 1, 30, liner, loop
117 | animation = fade, 1, 10, default
118 | animation = workspaces, 1, 5, wind
119 | }
120 |
121 | decoration {
122 | rounding = 10
123 |
124 | # Change transparency of focused and unfocused windows
125 | active_opacity = 1.0
126 | inactive_opacity = 1.0
127 |
128 | drop_shadow = true
129 | shadow_range = 4
130 | shadow_render_power = 3
131 | col.shadow = rgba(1a1a1aee)
132 |
133 | blur {
134 | enabled = true
135 | size = 3
136 | passes = 3
137 | new_optimizations = true
138 | vibrancy = 0.1696
139 | ignore_opacity = true
140 | }
141 | }
142 | ```
143 | With these steps, you'll have a visually stunning and cohesive desktop environment tailored to your preferences. Remember, the true beauty of a desktop lies in the eye of the beholder, so feel free to experiment and find the perfect combination that resonates with your personal style. Immerse yourself in an aesthetic experience that not only delights the senses but also enhances your productivity and workflow. 🌟🖥️✨
144 |
145 | **Next:** [Final](final.md) 👉
146 |
--------------------------------------------------------------------------------
/docs/useful_utilities.md:
--------------------------------------------------------------------------------
1 | # Enhancing Your Hyprland Environment 🚀
2 |
3 | This section guides you through the installation and configuration of essential utilities that will elevate your Hyprland experience, augmenting both functionality and aesthetics. We'll cover status bars, application launchers, clipboard managers, and more, providing concise configuration snippets directly from my setup.
4 |
5 | **Pro Tip:** 💡 In your `hyprland.conf`, organize similar configurations together, such as variables, exec-once statements, and keybindings, for better readability and maintainability.
6 |
7 |
8 | ## Status Bar: Waybar 📊
9 | [Waybar](https://github.com/Alexays/Waybar) provides real-time system information at a glance, ensuring you stay informed about your system's status.
10 |
11 |
12 |
13 | ##### Installation
14 |
15 | ```
16 | pacman -S waybar
17 | ```
18 |
19 | ##### Configuration
20 | Customize the appearance and behavior of the status bar by modifying the following files:
21 | 1. `~/.config/waybar/config.jsonc` - Format and structure the bar.
22 | 2. `~/.config/waybar/style.css` - Style and theme the bar.
23 |
24 | It will use some default configuration, you can copy my configuration files:
25 |
26 | ```
27 | cp -r ~/simple-hyprland/configs/waybar ~/.config/
28 | ```
29 |
30 | **Note:** 📝 Note: Remember to reload the bar to apply any configuration changes.
31 |
32 | ##### Hypr
33 | Add the following keybinding to reload the bar:
34 |
35 | ```
36 | bind = Ctrl, Escape, exec, killall waybar || waybar
37 | ```
38 |
39 | Autostart the bar with:
40 |
41 | ```
42 | exec-once=waybar
43 | ```
44 |
45 | ## App Launcher: Tofi 🚀
46 | [Tofi](https://github.com/philj56/tofi) offers a minimalistic, Wayland-native application launcher for efficient application access.
47 |
48 |
49 |
50 | ##### Installation
51 |
52 | ```
53 | yay -S tofi
54 | ```
55 |
56 | ##### Configuration
57 | Customize the appearance and behavior of the launcher by modifying the configuration file:
58 |
59 | `~/.config/tofi/` - The configuration directory.
60 |
61 | You can copy my pre-configured files:
62 |
63 | ```
64 | cp -r ~/simple-hyprland/configs/tofi ~/.config/
65 | ```
66 |
67 | ##### Hypr
68 | Keybinding to launch the application menu:
69 |
70 | ```
71 | bind = $mainMod, A, exec, $menu
72 | ```
73 |
74 | Define the launcher command and configuration path:
75 |
76 | ```
77 | $menu = tofi-drun -c ~/.config/tofi/configA --drun-launch=true
78 | ```
79 |
80 | ## Clipboard Manager: Cliphist 📋
81 | [Cliphist](https://github.com/sentriz/cliphist) enables you to keep track of your clipboard history, enhancing productivity when working with multiple pieces of information.
82 |
83 |
84 |
85 | ##### Installation
86 | To install cliphist, use the following command:
87 |
88 | ```
89 | pacman -S cliphist
90 | ```
91 |
92 | ##### Configuration
93 | No specific configuration is needed.
94 |
95 | ##### Hypr
96 | Keybinding to access the clipboard history:
97 |
98 | ```
99 | bind = SUPER, V, exec, cliphist list | tofi -c ~/.config/tofi/configV | cliphist decode | wl-copy
100 | ```
101 |
102 | Autostart the clipboard manager:
103 |
104 | ```
105 | exec-once = wl-paste --type text --watch cliphist store
106 | exec-once = wl-paste --type image --watch cliphist store
107 | ```
108 |
109 | ## Wallpaper: Swww 🖼️
110 | [Swww](https://github.com/LGFae/swww) allows you to set and manage your desktop background, enhancing the visual appeal of your workspace.
111 |
112 | ##### Installation
113 | To install `swww`, use the following command:
114 |
115 | ```
116 | yay -S swww
117 | ```
118 |
119 | ##### Configuration
120 | Copy sample wallpapers (creates the assets folder inside .config):
121 |
122 | ```
123 | cp -r ~/simple-hyprland/assets/backgrounds ~/.config/assets/backgrounds/
124 | ```
125 |
126 | No specific configuration is needed.
127 |
128 | ##### Hypr
129 | Initialize the wallpaper daemon and set a wallpaper on startup:
130 |
131 | ```
132 | exec-once = swww-daemon
133 | exec-once = swww img ~/.config/assets/backgrounds/cat_leaves.png --transition-fps 255 --transition-type outer --transition-duration 0.8
134 | ```
135 |
136 | You can also set the keybinding to change the wallpaper :
137 |
138 | ```
139 | bind = SUPER, N, exec, swww img ~/.config/assets/backgrounds/dark-cat-rosewater.png --transition-fps 255 --transition-type outer --transition-duration 0.8 # Change wallpaper
140 | ```
141 |
142 | ## Color Picker: Hyprpicker 🎨
143 | [Hyprpicker](https://github.com/hyprwm/hyprpicker) allows you to select colors directly from your screen, a handy tool for design and development tasks.
144 |
145 |
146 |
147 | ##### Installation
148 |
149 | ```
150 | yay -S hyprpicker
151 | ```
152 |
153 | ##### Configuration
154 | No specific configuration is needed for hyprpicker.
155 |
156 | ##### Hypr
157 | Define a variable for the color picker and a keybinding to launch it:
158 |
159 | ```
160 | $colorPicker = hyprpicker
161 | bind = SUPER, P, exec, $colorPicker | wl-copy # Also copies to clipboard
162 | ```
163 |
164 | ## Screen Locker: Hyprlock 🔒
165 | A screen locker secures your computer when you are away, preventing unauthorized access.
166 |
167 | ##### Installation
168 | Install [hyprlock](https://github.com/hyprwm/hyprlock), which is designed to work well with Hyprland.
169 |
170 | ```
171 | yay -S hyprlock
172 | ```
173 | ##### Configuration
174 | Customize the screen locker by modifying the configuration file: `~/.config/hypr/hyprlock.conf`
175 |
176 | You can copy my configuration file:
177 |
178 | ```
179 | cp ~/simple-hyprland/configs/hypr/hyprlock.conf ~/.config/hypr/
180 | ```
181 |
182 | ##### Hypr
183 | Keybinding to lock the desktop:
184 |
185 | ```
186 | bind = SUPER, L, exec, hyprlock
187 | ```
188 |
189 | ## Idle Manager: Hypridle ⏳
190 | [Hypridle](https://github.com/hyprwm/hypridle) automatically locks your screen or takes other actions when your system is idle, enhancing security and power management.
191 |
192 | ##### Installation
193 | To install hypridle, use the following command:
194 |
195 | ```
196 | yay -S hypridle
197 | ```
198 |
199 | ##### Configuration
200 | Customize the idle manager behavior by modifying the configuration file: `~/.config/hypr/hypridle.conf`
201 |
202 | You can copy my configuration file:
203 |
204 | ```
205 | cp ~/simple-hyprland/configs/hypr/hypridle.conf ~/.config/hypr/
206 | ```
207 |
208 | ##### Hypr
209 | No specific keybindings or variables are needed for hypridle.
210 |
211 |
212 | Autostart the idle manager:
213 | ```
214 | exec-once = hypridle
215 | ```
216 |
217 |
218 | ## Logout Menu: Wlogout 🚪
219 | [Wlogout](https://github.com/ArtsyMacaw/wlogout) provides a convenient way to log out, restart, or shut down your system.
220 |
221 |
222 |
223 | ##### Installation
224 |
225 | ```
226 | yay -S wlogout
227 | ```
228 |
229 | ##### Configuration
230 | Customize the appearance and behavior of the logout menu by modifying the following files:
231 | 1. `~/.config/wlogout/layout` - Format and structure the menu.
232 | 2. `~/.config/wlogout/style.css` - Style and theme the menu.
233 |
234 | It will use some default configuration, You can copy my pre-configured files:
235 |
236 | ```
237 | cp -r ~/simple-hyprland/configs/wlogout ~/.config/
238 | cp -r ~/simple-hyprland/assets/wlogout ~/.config/assets/ # copying assets
239 | ```
240 |
241 | ##### Hypr
242 | Keybinding to launch the logout menu:
243 |
244 | ```
245 | bind = SUPER, ESCAPE, exec, wlogout
246 | ```
247 |
248 | ## Taking Screenshots: Grimblast 📸
249 | [Grimblast](https://github.com/hyprwm/contrib/blob/main/grimblast/grimblast.1.scd) is a script that wraps around grim and slurp, providing enhanced functionality for capturing screenshots.
250 |
251 |
252 |
253 | ##### Installation
254 |
255 | ```
256 | yay -S grimblast
257 | ```
258 |
259 | ##### Configuration
260 | No specific configuration is needed for grimblast.
261 |
262 | ##### Hypr
263 | Keybindings for capturing screenshots:
264 |
265 | ```
266 | # add --cursor flag to include cursor also, --freeze flag to freeze before selection
267 |
268 | # Entire screen + clipboard copy
269 | bind = , Print, exec, grimblast --notify copysave screen
270 |
271 | # current Active window only + clipboard copy
272 | bind = SUPER, Print, exec, grimblast --notify copysave active
273 |
274 | # Select area to take screenshot
275 | bind = SUPER ALT, Print, exec, grimblast --notify copysave area
276 | ```
277 |
278 | With these utilities configured, your Hyprland environment now boasts enhanced functionality, aesthetics, and user experience, tailored to your preferences and workflow. 🎉✨
279 |
280 | **Next:** [Theming](theming.md) 👉
281 |
--------------------------------------------------------------------------------
/scripts/installer/final.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Get the directory of the current script
4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # Source helper file
7 | source $SCRIPT_DIR/helper.sh
8 |
9 | log_message "Final setup script started"
10 | print_bold_blue "\nCongratulations! Your Simple Hyprland setup is complete!"
11 |
12 | print_bold_blue "\nRepository Information:"
13 | echo " - GitHub Repository: https://github.com/gaurav23b/simple-hyprland"
14 | echo " - If you found this repo helpful, please consider giving it a star on GitHub!"
15 |
16 | print_bold_blue "\nContribute:"
17 | echo " - Feel free to open issues, submit pull requests, or provide feedback."
18 | echo " - Every contribution, big or small, is valuable to the community."
19 |
20 | print_bold_blue "\nTroubleshooting:"
21 | echo " - If you encounter any issues, please check the GitHub issues section."
22 | echo " - Don't hesitate to open a new issue if you can't find a solution to your problem."
23 |
24 | print_success "\nEnjoy your new Hyprland environment!"
25 |
26 | echo "------------------------------------------------------------------------"
27 |
--------------------------------------------------------------------------------
/scripts/installer/helper.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Color codes
4 | RED='\033[0;31m'
5 | GREEN='\033[0;32m'
6 | YELLOW='\033[0;33m'
7 | BLUE='\033[0;34m'
8 | BOLD='\033[1m'
9 | NC='\033[0m' # No Color
10 |
11 | # Get the directory of the current script
12 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
13 |
14 | # Log file
15 | LOG_FILE="$SCRIPT_DIR/simple_hyprland_install.log"
16 |
17 | function trap_message {
18 | print_error "\n\nScript interrupted. Exiting.....\n"
19 | # Add any cleanup code here
20 | log_message "Script interrupted and exited"
21 | exit 1
22 | }
23 |
24 | # Function to log messages
25 | function log_message {
26 | echo "$(date): $1" >> "$LOG_FILE"
27 | }
28 |
29 | # Functions for colored/bold output
30 | function print_error {
31 | echo -e "${RED}$1${NC}"
32 | }
33 |
34 | function print_success {
35 | echo -e "${GREEN}$1${NC}"
36 | }
37 |
38 | function print_warning {
39 | echo -e "${YELLOW}$1${NC}"
40 | }
41 |
42 | function print_info {
43 | echo -e "${BLUE}$1${NC}"
44 | }
45 |
46 | function print_bold_blue {
47 | echo -e "${BLUE}${BOLD}$1${NC}"
48 | }
49 |
50 | # Function to ask for confirmation
51 | function ask_confirmation {
52 | while true; do
53 | read -p "$(print_warning "$1 (y/n): ")" -n 1 -r
54 | echo
55 | if [[ $REPLY =~ ^[Yy]$ ]]; then
56 | log_message "Operation accepted by user."
57 | return 0 # User confirmed
58 | elif [[ $REPLY =~ ^[Nn]$ ]]; then
59 | log_message "Operation cancelled by user."
60 | print_error "Operation cancelled."
61 | return 1 # User cancelled
62 | else
63 | print_error "Invalid input. Please answer y or n."
64 | fi
65 | done
66 | }
67 |
68 | # Function to run a command with optional confirmation and retry
69 | function run_command {
70 | local cmd="$1"
71 | local description="$2"
72 | local ask_confirm="${3:-yes}" # Default to asking for confirmation
73 | local use_sudo="${4:-yes}" # Default to using sudo
74 |
75 | local full_cmd=""
76 | if [[ "$use_sudo" == "no" ]]; then
77 | full_cmd="sudo -u $SUDO_USER $cmd"
78 | else
79 | full_cmd="$cmd"
80 | fi
81 |
82 | log_message "Attempting to run: $description"
83 | print_info "\nCommand: $full_cmd"
84 | if [[ "$ask_confirm" == "yes" ]]; then
85 | if ! ask_confirmation "$description"; then
86 | # print_info "$description was skipped."
87 | log_message "$description was skipped by user choice."
88 | return 1
89 | fi
90 | else
91 | print_info "\n$description" # Echo what it's doing without confirmation
92 | fi
93 |
94 | while ! eval "$full_cmd"; do
95 | print_error "Command failed."
96 | log_message "Command failed: $cmd"
97 | if [[ "$ask_confirm" == "yes" ]]; then
98 | if ! ask_confirmation "Retry $description?"; then
99 | print_warning "$description was not completed."
100 | log_message "$description was not completed due to failure and user chose not to retry."
101 | return 1
102 | fi
103 | else
104 | print_warning "$description failed and will not be retried."
105 | log_message "$description failed and was not retried (auto mode)."
106 | return 1
107 | fi
108 | done
109 |
110 | print_success "$description completed successfully."
111 | log_message "$description completed successfully."
112 | return 0
113 | }
114 |
115 | # Function to run a script with retry and confirmation
116 | function run_script {
117 | local script="$SCRIPT_DIR/$1"
118 | local description="$2"
119 | if ask_confirmation "\nExecute '$description' script"; then
120 | while ! bash "$script"; do
121 | print_error "$description script failed."
122 | if ! ask_confirmation "Retry $description"; then
123 | return 1 # User chose not to retry
124 | fi
125 | done
126 | print_success "\n$description completed successfully."
127 | else
128 | return 1 # User chose not to run the script
129 | fi
130 | }
131 |
132 | function check_root {
133 | if [ "$EUID" -ne 0 ]; then
134 | print_error "Please run as root"
135 | log_message "Script not run as root. Exiting."
136 | exit 1
137 | fi
138 |
139 | # Store the original user for later use
140 | SUDO_USER=$(logname)
141 | log_message "Original user is $SUDO_USER"
142 | }
143 |
144 | function check_os {
145 | if [ -f /etc/os-release ]; then
146 | . /etc/os-release
147 | if [[ "$ID" != "arch" ]]; then
148 | print_warning "This script is designed for Arch Linux. Your system: $PRETTY_NAME"
149 | if ! ask_confirmation "Continue anyway?"; then
150 | log_message "Installation cancelled due to unsupported OS"
151 | exit 1
152 | fi
153 | else
154 | print_success "Arch Linux detected. Proceeding with installation."
155 | log_message "Arch Linux detected. Installation proceeding."
156 | fi
157 | else
158 | print_error "Unable to determine OS. /etc/os-release not found."
159 | if ! ask_confirmation "Continue anyway?"; then
160 | log_message "Installation cancelled due to unknown OS"
161 | exit 1
162 | fi
163 | fi
164 | }
--------------------------------------------------------------------------------
/scripts/installer/hypr.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Get the directory of the current script
4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # Source helper file
7 | source $SCRIPT_DIR/helper.sh
8 |
9 | log_message "Installation started for hypr section"
10 | print_info "\nStarting hypr setup..."
11 | print_info "\nEverything is recommended to INSTALL"
12 |
13 | run_command "pacman -S --noconfirm hyprland" "Install Hyprland (Must)" "yes"
14 | run_command "mkdir -p /home/$SUDO_USER/.config/hypr/ && cp -r /home/$SUDO_USER/simple-hyprland/configs/hypr/hyprland.conf /home/$SUDO_USER/.config/hypr/" "Copy hyprland config (Must)" "yes" "no"
15 |
16 | run_command "pacman -S --noconfirm xdg-desktop-portal-hyprland" "Install XDG desktop portal for Hyprland" "yes"
17 |
18 | run_command "pacman -S --noconfirm polkit-kde-agent" "Install KDE Polkit agent for authentication dialogs" "yes"
19 |
20 | run_command "pacman -S --noconfirm dunst" "Install Dunst notification daemon" "yes"
21 | run_command "cp -r /home/$SUDO_USER/simple-hyprland/configs/dunst /home/$SUDO_USER/.config/" "Copy dunst config" "yes" "no"
22 |
23 | run_command "pacman -S --noconfirm qt5-wayland qt6-wayland" "Install QT support on wayland" "yes"
24 |
25 | echo "------------------------------------------------------------------------"
--------------------------------------------------------------------------------
/scripts/installer/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Get the directory of the current script
4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # Source helper file
7 | source $SCRIPT_DIR/helper.sh
8 |
9 | # Trap for unexpected exits
10 | trap 'trap_message' INT TERM
11 |
12 | # Script start
13 | log_message "Installation started"
14 | print_bold_blue "\nSimple Hyprland"
15 | echo "---------------"
16 |
17 | # Check if running as root
18 | check_root
19 |
20 | # Check if OS is Arch Linux
21 | check_os
22 |
23 | # Run child scripts
24 | run_script "prerequisites.sh" "Prerequisites Setup"
25 | run_script "hypr.sh" "Hyprland & Critical Softwares Setup"
26 | run_script "utilities.sh" "Basic Utilities & Configs Setup"
27 | run_script "theming.sh" "Themes and Tools Setup"
28 | run_script "final.sh" "Final Setup"
29 |
30 | print_bold_blue "\n🌟 Setup Complete\n"
31 | log_message "Installation completed successfully"
32 |
--------------------------------------------------------------------------------
/scripts/installer/prerequisites.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Get the directory of the current script
4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # Source helper file
7 | source $SCRIPT_DIR/helper.sh
8 |
9 | log_message "Installation started for prerequisites section"
10 | print_info "\nStarting prerequisites setup..."
11 |
12 | run_command "pacman -Syyu --noconfirm" "Update package database and upgrade packages (Recommended)" "yes" # no
13 |
14 | if run_command "pacman -S --noconfirm --needed git base-devel" "Install YAY (Must)/Breaks the script" "yes"; then #
15 | run_command "git clone https://aur.archlinux.org/yay.git && cd yay" "Clone YAY (Must)/Breaks the script" "no" "no"
16 | run_command "makepkg --noconfirm -si && cd .. # builds with makepkg" "Build YAY (Must)/Breaks the script" "no" "no"
17 | fi
18 | run_command "pacman -S --noconfirm pipewire wireplumber pamixer brightnessctl" "Configuring audio and brightness (Recommended)" "yes"
19 |
20 | run_command "pacman -S --noconfirm ttf-cascadia-code-nerd ttf-cascadia-mono-nerd ttf-fira-code ttf-fira-mono ttf-fira-sans ttf-firacode-nerd ttf-iosevka-nerd ttf-iosevkaterm-nerd ttf-jetbrains-mono-nerd ttf-jetbrains-mono ttf-nerd-fonts-symbols ttf-nerd-fonts-symbols ttf-nerd-fonts-symbols-mono" "Installing Nerd Fonts and Symbols (Recommended)" "yes"
21 |
22 | run_command "pacman -S --noconfirm sddm && systemctl enable sddm.service" "Install and enable SDDM (Recommended)" "yes"
23 |
24 | run_command "yay -S --sudoloop --noconfirm brave-bin" "Install Brave Browser" "yes" "no"
25 |
26 | run_command "pacman -S --noconfirm kitty" "Install Kitty (Recommended)" "yes"
27 |
28 | run_command "pacman -S --noconfirm nano" "Install nano" "yes"
29 |
30 | run_command "pacman -S --noconfirm tar" "Install tar for extracting files (Must)/needed for copying themes" "yes"
31 |
32 | echo "------------------------------------------------------------------------"
--------------------------------------------------------------------------------
/scripts/installer/theming.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Get the directory of the current script
4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # Source helper file
7 | source $SCRIPT_DIR/helper.sh
8 |
9 | log_message "Installation started for theming section"
10 | print_info "\nStarting theming setup..."
11 |
12 | run_command "pacman -S --noconfirm nwg-look" "Install nwg-look for GTK theme management" "yes"
13 |
14 | run_command "pacman -S --noconfirm qt5ct qt6ct kvantum" "Install Qt5, Qt6 Settings, and Kvantum theme engines" "yes"
15 |
16 | run_command "tar -xvf /home/$SUDO_USER/simple-hyprland/assets/themes/Catppuccin-Mocha.tar.xz -C /usr/share/themes/" "Install Catppuccin Mocha GTK theme" "yes"
17 |
18 | run_command "tar -xvf /home/$SUDO_USER/simple-hyprland/assets/icons/Tela-circle-dracula.tar.xz -C /usr/share/icons/" "Install Tela Circle Dracula icon theme" "yes"
19 |
20 | run_command "yay -S --sudoloop --noconfirm kvantum-theme-catppuccin-git" "Install Catppuccin theme for Kvantum" "yes" "no"
21 |
22 | run_command "cp -r /home/$SUDO_USER/simple-hyprland/configs/kitty /home/$SUDO_USER/.config/" "Copy Catppuccin theme configuration for Kitty terminal" "yes" "no"
23 |
24 | # Add instructions to configure theming
25 | print_info "\nPost-installation instructions:"
26 | print_bold_blue "Set themes and icons:"
27 | echo " - Run 'nwg-look' and set the global GTK and icon theme"
28 | echo " - Open 'kvantummanager' (run with sudo for system-wide changes) to select and apply the Catppuccin theme"
29 | echo " - Open 'qt6ct' to set the icon theme"
30 |
31 | echo "------------------------------------------------------------------------"
--------------------------------------------------------------------------------
/scripts/installer/utilities.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Get the directory of the current script
4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5 |
6 | # Source helper file
7 | source $SCRIPT_DIR/helper.sh
8 |
9 | log_message "Installation started for utilities section"
10 | print_info "\nStarting utilities setup..."
11 |
12 | run_command "pacman -S --noconfirm waybar" "Install Waybar - Status Bar" "yes"
13 | run_command "cp -r /home/$SUDO_USER/simple-hyprland/configs/waybar /home/$SUDO_USER/.config/" "Copy Waybar config" "yes" "no"
14 |
15 | run_command "yay -S --sudoloop --noconfirm tofi" "Install Tofi - Application Launcher" "yes" "no"
16 | run_command "cp -r /home/$SUDO_USER/simple-hyprland/configs/tofi /home/$SUDO_USER/.config/" "Copy Tofi config(s)" "yes" "no"
17 |
18 | run_command "pacman -S --noconfirm cliphist" "Install Cliphist - Clipboard Manager" "yes"
19 |
20 | run_command "yay -S --sudoloop --noconfirm swww" "Install SWWW for wallpaper management" "yes" "no"
21 | run_command "mkdir -p /home/$SUDO_USER/.config/assets/backgrounds && cp -r /home/$SUDO_USER/simple-hyprland/assets/backgrounds /home/$SUDO_USER/.config/assets/" "Copy sample wallpapers to assets directory (Recommended)" "yes" "no"
22 |
23 | run_command "yay -S --sudoloop --noconfirm hyprpicker" "Install Hyprpicker - Color Picker" "yes" "no"
24 |
25 | run_command "yay -S --sudoloop --noconfirm hyprlock" "Install Hyprlock - Screen Locker (Must)" "yes" "no"
26 | run_command "cp -r /home/$SUDO_USER/simple-hyprland/configs/hypr/hyprlock.conf /home/$SUDO_USER/.config/hypr/" "Copy Hyprlock config" "yes" "no"
27 |
28 | run_command "yay -S --sudoloop --noconfirm wlogout" "Install Wlogout - Session Manager" "yes" "no"
29 | run_command "cp -r /home/$SUDO_USER/simple-hyprland/configs/wlogout /home/$SUDO_USER/.config/ && cp -r /home/$SUDO_USER/simple-hyprland/assets/wlogout /home/$SUDO_USER/.config/assets/" "Copy Wlogout config and assets" "yes" "no"
30 |
31 | run_command "yay -S --sudoloop --noconfirm grimblast" "Install Grimblast - Screenshot tool" "yes" "no"
32 |
33 | run_command "yay -S --sudoloop --noconfirm hypridle" "Install Hypridle for idle management (Must)" "yes" "no"
34 | run_command "cp -r /home/$SUDO_USER/simple-hyprland/configs/hypr/hypridle.conf /home/$SUDO_USER/.config/hypr/" "Copy Hypridle config" "yes" "no"
35 |
36 | echo "------------------------------------------------------------------------"
--------------------------------------------------------------------------------