Initial commit - created with claude AI
This commit is contained in:
81
.config/dunst/dunstrc
Normal file
81
.config/dunst/dunstrc
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
# ╔═══════════════════════════════════════════════════════════════════╗
|
||||||
|
# ║ HYPRARCH - Dunst Config ║
|
||||||
|
# ║ Nord Color Scheme ║
|
||||||
|
# ╚═══════════════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
[global]
|
||||||
|
monitor = 0
|
||||||
|
follow = mouse
|
||||||
|
width = 300
|
||||||
|
height = 300
|
||||||
|
origin = top-right
|
||||||
|
offset = 10x50
|
||||||
|
scale = 0
|
||||||
|
notification_limit = 5
|
||||||
|
|
||||||
|
progress_bar = true
|
||||||
|
progress_bar_height = 10
|
||||||
|
progress_bar_frame_width = 1
|
||||||
|
progress_bar_min_width = 150
|
||||||
|
progress_bar_max_width = 300
|
||||||
|
|
||||||
|
indicate_hidden = yes
|
||||||
|
transparency = 0
|
||||||
|
separator_height = 2
|
||||||
|
padding = 12
|
||||||
|
horizontal_padding = 12
|
||||||
|
text_icon_padding = 0
|
||||||
|
frame_width = 2
|
||||||
|
frame_color = "#88c0d0"
|
||||||
|
separator_color = frame
|
||||||
|
sort = yes
|
||||||
|
|
||||||
|
font = JetBrainsMono Nerd Font 10
|
||||||
|
line_height = 0
|
||||||
|
markup = full
|
||||||
|
format = "<b>%s</b>\n%b"
|
||||||
|
alignment = left
|
||||||
|
vertical_alignment = center
|
||||||
|
show_age_threshold = 60
|
||||||
|
ellipsize = middle
|
||||||
|
ignore_newline = no
|
||||||
|
stack_duplicates = true
|
||||||
|
hide_duplicate_count = false
|
||||||
|
show_indicators = yes
|
||||||
|
|
||||||
|
icon_position = left
|
||||||
|
min_icon_size = 0
|
||||||
|
max_icon_size = 32
|
||||||
|
|
||||||
|
sticky_history = yes
|
||||||
|
history_length = 20
|
||||||
|
|
||||||
|
browser = /usr/bin/xdg-open
|
||||||
|
always_run_script = true
|
||||||
|
title = Dunst
|
||||||
|
class = Dunst
|
||||||
|
|
||||||
|
corner_radius = 8
|
||||||
|
ignore_dbusclose = false
|
||||||
|
|
||||||
|
mouse_left_click = close_current
|
||||||
|
mouse_middle_click = do_action, close_current
|
||||||
|
mouse_right_click = close_all
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
background = "#2e3440"
|
||||||
|
foreground = "#d8dee9"
|
||||||
|
frame_color = "#4c566a"
|
||||||
|
timeout = 5
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#2e3440"
|
||||||
|
foreground = "#eceff4"
|
||||||
|
frame_color = "#88c0d0"
|
||||||
|
timeout = 10
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#2e3440"
|
||||||
|
foreground = "#eceff4"
|
||||||
|
frame_color = "#bf616a"
|
||||||
|
timeout = 0
|
||||||
178
.config/hypr/hyprland.conf
Normal file
178
.config/hypr/hyprland.conf
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
# ╔═══════════════════════════════════════════════════════════════════╗
|
||||||
|
# ║ HYPRARCH - Hyprland Config ║
|
||||||
|
# ║ https://git.cribdev.com/hyprarch ║
|
||||||
|
# ╚═══════════════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
# ── Monitor ──────────────────────────────────────────────────────────
|
||||||
|
monitor = ,preferred,auto,1
|
||||||
|
|
||||||
|
# ── Startup ──────────────────────────────────────────────────────────
|
||||||
|
exec-once = waybar
|
||||||
|
exec-once = swww-daemon
|
||||||
|
exec-once = nm-applet --indicator
|
||||||
|
exec-once = blueman-applet
|
||||||
|
exec-once = dunst
|
||||||
|
|
||||||
|
# Set wallpaper after swww starts
|
||||||
|
exec-once = sleep 1 && swww img ~/Pictures/wallpapers/default.jpg --transition-type grow
|
||||||
|
|
||||||
|
# ── Environment Variables ────────────────────────────────────────────
|
||||||
|
env = XCURSOR_SIZE,24
|
||||||
|
env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||||
|
env = QT_QPA_PLATFORM,wayland
|
||||||
|
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||||
|
env = XDG_SESSION_TYPE,wayland
|
||||||
|
env = XDG_SESSION_DESKTOP,Hyprland
|
||||||
|
|
||||||
|
# ── Input ────────────────────────────────────────────────────────────
|
||||||
|
input {
|
||||||
|
kb_layout = us
|
||||||
|
follow_mouse = 1
|
||||||
|
sensitivity = 0
|
||||||
|
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ── General ──────────────────────────────────────────────────────────
|
||||||
|
general {
|
||||||
|
gaps_in = 5
|
||||||
|
gaps_out = 10
|
||||||
|
border_size = 2
|
||||||
|
col.active_border = rgba(88c0d0ee) rgba(81a1c1ee) 45deg
|
||||||
|
col.inactive_border = rgba(4c566aaa)
|
||||||
|
layout = dwindle
|
||||||
|
}
|
||||||
|
|
||||||
|
# ── Decoration ───────────────────────────────────────────────────────
|
||||||
|
decoration {
|
||||||
|
rounding = 8
|
||||||
|
|
||||||
|
blur {
|
||||||
|
enabled = true
|
||||||
|
size = 6
|
||||||
|
passes = 2
|
||||||
|
new_optimizations = true
|
||||||
|
}
|
||||||
|
|
||||||
|
shadow {
|
||||||
|
enabled = true
|
||||||
|
range = 20
|
||||||
|
render_power = 3
|
||||||
|
color = rgba(1a1a1aee)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ── Animations ───────────────────────────────────────────────────────
|
||||||
|
animations {
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
bezier = wind, 0.05, 0.9, 0.1, 1.05
|
||||||
|
bezier = winIn, 0.1, 1.1, 0.1, 1.1
|
||||||
|
bezier = winOut, 0.3, -0.3, 0, 1
|
||||||
|
bezier = liner, 1, 1, 1, 1
|
||||||
|
|
||||||
|
animation = windows, 1, 6, wind, slide
|
||||||
|
animation = windowsIn, 1, 6, winIn, slide
|
||||||
|
animation = windowsOut, 1, 5, winOut, slide
|
||||||
|
animation = windowsMove, 1, 5, wind, slide
|
||||||
|
animation = border, 1, 1, liner
|
||||||
|
animation = borderangle, 1, 30, liner, loop
|
||||||
|
animation = fade, 1, 10, default
|
||||||
|
animation = workspaces, 1, 5, wind
|
||||||
|
}
|
||||||
|
|
||||||
|
# ── Layouts ──────────────────────────────────────────────────────────
|
||||||
|
dwindle {
|
||||||
|
pseudotile = true
|
||||||
|
preserve_split = true
|
||||||
|
}
|
||||||
|
|
||||||
|
master {
|
||||||
|
new_status = master
|
||||||
|
}
|
||||||
|
|
||||||
|
# ── Gestures ─────────────────────────────────────────────────────────
|
||||||
|
gestures {
|
||||||
|
workspace_swipe = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# ── Misc ─────────────────────────────────────────────────────────────
|
||||||
|
misc {
|
||||||
|
force_default_wallpaper = 0
|
||||||
|
disable_hyprland_logo = true
|
||||||
|
disable_splash_rendering = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# ── Window Rules ─────────────────────────────────────────────────────
|
||||||
|
windowrulev2 = suppressevent maximize, class:.*
|
||||||
|
windowrulev2 = float, class:^(pavucontrol)$
|
||||||
|
windowrulev2 = float, class:^(blueman-manager)$
|
||||||
|
windowrulev2 = float, class:^(nm-connection-editor)$
|
||||||
|
windowrulev2 = float, title:^(Picture-in-Picture)$
|
||||||
|
|
||||||
|
# ── Keybindings ──────────────────────────────────────────────────────
|
||||||
|
$mainMod = SUPER
|
||||||
|
|
||||||
|
# Applications
|
||||||
|
bind = $mainMod, Return, exec, kitty
|
||||||
|
bind = $mainMod, Q, killactive,
|
||||||
|
bind = $mainMod, M, exit,
|
||||||
|
bind = $mainMod, E, exec, thunar
|
||||||
|
bind = $mainMod, V, togglefloating,
|
||||||
|
bind = $mainMod, D, exec, rofi -show drun
|
||||||
|
bind = $mainMod, P, pseudo,
|
||||||
|
bind = $mainMod, J, togglesplit,
|
||||||
|
bind = $mainMod, F, fullscreen,
|
||||||
|
bind = $mainMod, L, exec, hyprlock
|
||||||
|
|
||||||
|
# Screenshots
|
||||||
|
bind = $mainMod SHIFT, S, exec, grim -g "$(slurp)" - | wl-copy
|
||||||
|
bind = , Print, exec, grim -g "$(slurp)" ~/Pictures/screenshots/$(date +%Y%m%d_%H%M%S).png
|
||||||
|
|
||||||
|
# Move focus
|
||||||
|
bind = $mainMod, left, movefocus, l
|
||||||
|
bind = $mainMod, right, movefocus, r
|
||||||
|
bind = $mainMod, up, movefocus, u
|
||||||
|
bind = $mainMod, down, movefocus, d
|
||||||
|
|
||||||
|
# Switch workspaces
|
||||||
|
bind = $mainMod, 1, workspace, 1
|
||||||
|
bind = $mainMod, 2, workspace, 2
|
||||||
|
bind = $mainMod, 3, workspace, 3
|
||||||
|
bind = $mainMod, 4, workspace, 4
|
||||||
|
bind = $mainMod, 5, workspace, 5
|
||||||
|
bind = $mainMod, 6, workspace, 6
|
||||||
|
bind = $mainMod, 7, workspace, 7
|
||||||
|
bind = $mainMod, 8, workspace, 8
|
||||||
|
bind = $mainMod, 9, workspace, 9
|
||||||
|
bind = $mainMod, 0, workspace, 10
|
||||||
|
|
||||||
|
# Move active window to workspace
|
||||||
|
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||||
|
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||||
|
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||||
|
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||||
|
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||||
|
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||||
|
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||||
|
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||||
|
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||||
|
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||||
|
|
||||||
|
# Scroll through workspaces
|
||||||
|
bind = $mainMod, mouse_down, workspace, e+1
|
||||||
|
bind = $mainMod, mouse_up, workspace, e-1
|
||||||
|
|
||||||
|
# Move/resize windows with mouse
|
||||||
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
|
||||||
|
# Volume and brightness
|
||||||
|
bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||||
|
bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||||
|
bindel = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
|
bindel = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||||
|
bindel = , XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
||||||
|
bindel = , XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
||||||
52
.config/hypr/hyprlock.conf
Normal file
52
.config/hypr/hyprlock.conf
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# ╔═══════════════════════════════════════════════════════════════════╗
|
||||||
|
# ║ HYPRARCH - Hyprlock Config ║
|
||||||
|
# ╚═══════════════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
background {
|
||||||
|
monitor =
|
||||||
|
path = ~/Pictures/wallpapers/default.jpg
|
||||||
|
blur_passes = 2
|
||||||
|
blur_size = 6
|
||||||
|
contrast = 0.8
|
||||||
|
brightness = 0.7
|
||||||
|
}
|
||||||
|
|
||||||
|
input-field {
|
||||||
|
monitor =
|
||||||
|
size = 250, 50
|
||||||
|
outline_thickness = 2
|
||||||
|
dots_size = 0.2
|
||||||
|
dots_spacing = 0.35
|
||||||
|
dots_center = true
|
||||||
|
outer_color = rgba(88c0d0ee)
|
||||||
|
inner_color = rgba(2e3440ee)
|
||||||
|
font_color = rgb(eceff4)
|
||||||
|
fade_on_empty = false
|
||||||
|
placeholder_text = <i>Password...</i>
|
||||||
|
hide_input = false
|
||||||
|
position = 0, -120
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = $TIME
|
||||||
|
color = rgba(eceff4ee)
|
||||||
|
font_size = 64
|
||||||
|
font_family = JetBrainsMono Nerd Font
|
||||||
|
position = 0, 80
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = Hi, $USER
|
||||||
|
color = rgba(88c0d0ee)
|
||||||
|
font_size = 20
|
||||||
|
font_family = JetBrainsMono Nerd Font
|
||||||
|
position = 0, -20
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
70
.config/kitty/kitty.conf
Normal file
70
.config/kitty/kitty.conf
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
# ╔═══════════════════════════════════════════════════════════════════╗
|
||||||
|
# ║ HYPRARCH - Kitty Config ║
|
||||||
|
# ║ Nord Color Scheme ║
|
||||||
|
# ╚═══════════════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
# ── Font ─────────────────────────────────────────────────────────────
|
||||||
|
font_family JetBrainsMono Nerd Font
|
||||||
|
bold_font auto
|
||||||
|
italic_font auto
|
||||||
|
bold_italic_font auto
|
||||||
|
font_size 12.0
|
||||||
|
|
||||||
|
# ── Window ───────────────────────────────────────────────────────────
|
||||||
|
background_opacity 0.95
|
||||||
|
window_padding_width 8
|
||||||
|
confirm_os_window_close 0
|
||||||
|
enable_audio_bell no
|
||||||
|
|
||||||
|
# ── Tab Bar ──────────────────────────────────────────────────────────
|
||||||
|
tab_bar_style powerline
|
||||||
|
tab_powerline_style slanted
|
||||||
|
active_tab_foreground #2e3440
|
||||||
|
active_tab_background #88c0d0
|
||||||
|
inactive_tab_foreground #d8dee9
|
||||||
|
inactive_tab_background #3b4252
|
||||||
|
|
||||||
|
# ── Nord Color Scheme ────────────────────────────────────────────────
|
||||||
|
# Background
|
||||||
|
background #2e3440
|
||||||
|
foreground #d8dee9
|
||||||
|
|
||||||
|
# Cursor
|
||||||
|
cursor #d8dee9
|
||||||
|
cursor_text_color #2e3440
|
||||||
|
|
||||||
|
# Selection
|
||||||
|
selection_background #4c566a
|
||||||
|
selection_foreground #eceff4
|
||||||
|
|
||||||
|
# Black
|
||||||
|
color0 #3b4252
|
||||||
|
color8 #4c566a
|
||||||
|
|
||||||
|
# Red
|
||||||
|
color1 #bf616a
|
||||||
|
color9 #bf616a
|
||||||
|
|
||||||
|
# Green
|
||||||
|
color2 #a3be8c
|
||||||
|
color10 #a3be8c
|
||||||
|
|
||||||
|
# Yellow
|
||||||
|
color3 #ebcb8b
|
||||||
|
color11 #ebcb8b
|
||||||
|
|
||||||
|
# Blue
|
||||||
|
color4 #81a1c1
|
||||||
|
color12 #81a1c1
|
||||||
|
|
||||||
|
# Magenta
|
||||||
|
color5 #b48ead
|
||||||
|
color13 #b48ead
|
||||||
|
|
||||||
|
# Cyan
|
||||||
|
color6 #88c0d0
|
||||||
|
color14 #8fbcbb
|
||||||
|
|
||||||
|
# White
|
||||||
|
color7 #e5e9f0
|
||||||
|
color15 #eceff4
|
||||||
16
.config/rofi/config.rasi
Normal file
16
.config/rofi/config.rasi
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
/* ╔═══════════════════════════════════════════════════════════════════╗
|
||||||
|
║ HYPRARCH - Rofi Config ║
|
||||||
|
║ Nord Color Scheme ║
|
||||||
|
╚═══════════════════════════════════════════════════════════════════╝ */
|
||||||
|
|
||||||
|
configuration {
|
||||||
|
modi: "drun,run";
|
||||||
|
show-icons: true;
|
||||||
|
drun-display-format: "{name}";
|
||||||
|
disable-history: false;
|
||||||
|
sidebar-mode: false;
|
||||||
|
display-drun: "Apps";
|
||||||
|
display-run: "Run";
|
||||||
|
}
|
||||||
|
|
||||||
|
@theme "nord"
|
||||||
80
.config/rofi/nord.rasi
Normal file
80
.config/rofi/nord.rasi
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
/* ╔═══════════════════════════════════════════════════════════════════╗
|
||||||
|
║ HYPRARCH - Rofi Nord Theme ║
|
||||||
|
╚═══════════════════════════════════════════════════════════════════╝ */
|
||||||
|
|
||||||
|
* {
|
||||||
|
bg: #2e3440;
|
||||||
|
bg-alt: #3b4252;
|
||||||
|
fg: #eceff4;
|
||||||
|
fg-alt: #d8dee9;
|
||||||
|
accent: #88c0d0;
|
||||||
|
urgent: #bf616a;
|
||||||
|
|
||||||
|
background-color: transparent;
|
||||||
|
text-color: @fg;
|
||||||
|
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
location: center;
|
||||||
|
width: 600;
|
||||||
|
background-color: @bg;
|
||||||
|
border: 2px;
|
||||||
|
border-color: @accent;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
children: [inputbar, listview];
|
||||||
|
}
|
||||||
|
|
||||||
|
inputbar {
|
||||||
|
padding: 12px;
|
||||||
|
spacing: 12px;
|
||||||
|
children: [prompt, entry];
|
||||||
|
background-color: @bg-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt {
|
||||||
|
text-color: @accent;
|
||||||
|
}
|
||||||
|
|
||||||
|
entry {
|
||||||
|
placeholder: "Search...";
|
||||||
|
placeholder-color: @fg-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
listview {
|
||||||
|
lines: 8;
|
||||||
|
columns: 1;
|
||||||
|
padding: 8px 0;
|
||||||
|
background-color: @bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
element {
|
||||||
|
padding: 8px 12px;
|
||||||
|
spacing: 8px;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
element normal.normal {
|
||||||
|
text-color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected.normal {
|
||||||
|
background-color: @bg-alt;
|
||||||
|
text-color: @accent;
|
||||||
|
}
|
||||||
|
|
||||||
|
element-icon {
|
||||||
|
size: 1em;
|
||||||
|
vertical-align: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
element-text {
|
||||||
|
text-color: inherit;
|
||||||
|
vertical-align: 0.5;
|
||||||
|
}
|
||||||
82
.config/waybar/config
Normal file
82
.config/waybar/config
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"height": 34,
|
||||||
|
"spacing": 8,
|
||||||
|
|
||||||
|
"modules-left": ["hyprland/workspaces", "hyprland/window"],
|
||||||
|
"modules-center": ["clock"],
|
||||||
|
"modules-right": ["pulseaudio", "network", "cpu", "memory", "battery", "tray"],
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"on-click": "activate",
|
||||||
|
"format-icons": {
|
||||||
|
"1": "一",
|
||||||
|
"2": "二",
|
||||||
|
"3": "三",
|
||||||
|
"4": "四",
|
||||||
|
"5": "五",
|
||||||
|
"6": "六",
|
||||||
|
"7": "七",
|
||||||
|
"8": "八",
|
||||||
|
"9": "九",
|
||||||
|
"10": "十",
|
||||||
|
"active": "",
|
||||||
|
"default": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"separate-outputs": true,
|
||||||
|
"max-length": 50
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock": {
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
"format-alt": "{:%A, %B %d, %Y}",
|
||||||
|
"tooltip-format": "<tt><small>{calendar}</small></tt>"
|
||||||
|
},
|
||||||
|
|
||||||
|
"pulseaudio": {
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
"format-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
|
||||||
|
"network": {
|
||||||
|
"format-wifi": " {essid}",
|
||||||
|
"format-ethernet": "",
|
||||||
|
"format-disconnected": "",
|
||||||
|
"tooltip-format": "{ifname}: {ipaddr}",
|
||||||
|
"on-click": "nm-connection-editor"
|
||||||
|
},
|
||||||
|
|
||||||
|
"cpu": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"memory": {
|
||||||
|
"format": " {}%"
|
||||||
|
},
|
||||||
|
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "{icon} {capacity}%",
|
||||||
|
"format-charging": " {capacity}%",
|
||||||
|
"format-plugged": " {capacity}%",
|
||||||
|
"format-icons": ["", "", "", "", "", "", "", "", "", ""]
|
||||||
|
},
|
||||||
|
|
||||||
|
"tray": {
|
||||||
|
"spacing": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
85
.config/waybar/style.css
Normal file
85
.config/waybar/style.css
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
/* ╔═══════════════════════════════════════════════════════════════════╗
|
||||||
|
║ HYPRARCH - Waybar Style ║
|
||||||
|
║ Nord Color Scheme ║
|
||||||
|
╚═══════════════════════════════════════════════════════════════════╝ */
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-family: "JetBrainsMono Nerd Font";
|
||||||
|
font-size: 13px;
|
||||||
|
min-height: 0;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: rgba(46, 52, 64, 0.95);
|
||||||
|
color: #eceff4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
margin: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 12px;
|
||||||
|
color: #d8dee9;
|
||||||
|
background: transparent;
|
||||||
|
border-bottom: 3px solid transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
color: #88c0d0;
|
||||||
|
border-bottom: 3px solid #88c0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: rgba(136, 192, 208, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
margin: 0 8px;
|
||||||
|
color: #d8dee9;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#network,
|
||||||
|
#pulseaudio {
|
||||||
|
padding: 0 12px;
|
||||||
|
margin: 4px 2px;
|
||||||
|
background: rgba(59, 66, 82, 0.8);
|
||||||
|
border-radius: 8px;
|
||||||
|
color: #eceff4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: #a3be8c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.warning:not(.charging) {
|
||||||
|
color: #ebcb8b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
color: #bf616a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
color: #bf616a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
padding: 0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .passive {
|
||||||
|
-gtk-icon-effect: dim;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .needs-attention {
|
||||||
|
-gtk-icon-effect: highlight;
|
||||||
|
background-color: #bf616a;
|
||||||
|
}
|
||||||
18
.gitignore
vendored
Normal file
18
.gitignore
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Backup files
|
||||||
|
*.bak
|
||||||
|
*~
|
||||||
|
.config-backup-*
|
||||||
|
|
||||||
|
# OS files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Editor files
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
*.tmp
|
||||||
|
*.log
|
||||||
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2024 Crib
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
233
README.md
Normal file
233
README.md
Normal file
@@ -0,0 +1,233 @@
|
|||||||
|
# 🎨 HYPRARCH
|
||||||
|
|
||||||
|
A minimal, beautiful Hyprland rice for Arch Linux with Nord color scheme.
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
## ✨ Features
|
||||||
|
|
||||||
|
- 🪟 **Hyprland** - Dynamic tiling Wayland compositor with smooth animations
|
||||||
|
- 📊 **Waybar** - Minimal status bar with Nord styling
|
||||||
|
- 🚀 **Rofi** - Beautiful app launcher
|
||||||
|
- 🖥️ **Kitty** - GPU-accelerated terminal
|
||||||
|
- 🔔 **Dunst** - Clean notification daemon
|
||||||
|
- 🖼️ **SWWW** - Animated wallpaper daemon
|
||||||
|
- 🔒 **Hyprlock** - Stylish lock screen
|
||||||
|
- 🎨 **Nord Theme** - Cohesive color scheme throughout
|
||||||
|
|
||||||
|
## 📸 Screenshots
|
||||||
|
|
||||||
|
*Coming soon*
|
||||||
|
|
||||||
|
## ⚡ Quick Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Clone the repository
|
||||||
|
git clone https://git.cribdev.com/hyprarch/hyprarch.git ~/hyprarch
|
||||||
|
|
||||||
|
# Run the install script
|
||||||
|
cd ~/hyprarch
|
||||||
|
chmod +x install.sh
|
||||||
|
./install.sh
|
||||||
|
|
||||||
|
# Log out and select Hyprland, or start from TTY:
|
||||||
|
Hyprland
|
||||||
|
```
|
||||||
|
|
||||||
|
That's it! The script handles everything automatically.
|
||||||
|
|
||||||
|
## 📦 What Gets Installed
|
||||||
|
|
||||||
|
### Core
|
||||||
|
- Hyprland, Hyprpaper, Hyprpicker, Hypridle, Hyprlock
|
||||||
|
- Waybar, Rofi, Dunst, SWWW
|
||||||
|
- XDG Desktop Portal for Hyprland
|
||||||
|
|
||||||
|
### Utilities
|
||||||
|
- Kitty (terminal)
|
||||||
|
- Thunar (file manager)
|
||||||
|
- PipeWire (audio)
|
||||||
|
- NetworkManager, Blueman (connectivity)
|
||||||
|
|
||||||
|
### CLI Tools
|
||||||
|
- Neovim, Zsh, Starship prompt
|
||||||
|
- eza, bat, fzf, ripgrep, fd
|
||||||
|
|
||||||
|
### Applications
|
||||||
|
- Firefox, MPV, Zathura (PDF)
|
||||||
|
|
||||||
|
## ⌨️ Keybindings
|
||||||
|
|
||||||
|
| Key | Action |
|
||||||
|
|-----|--------|
|
||||||
|
| `SUPER + Return` | Terminal (Kitty) |
|
||||||
|
| `SUPER + D` | App Launcher (Rofi) |
|
||||||
|
| `SUPER + Q` | Close Window |
|
||||||
|
| `SUPER + E` | File Manager |
|
||||||
|
| `SUPER + V` | Toggle Floating |
|
||||||
|
| `SUPER + F` | Fullscreen |
|
||||||
|
| `SUPER + L` | Lock Screen |
|
||||||
|
| `SUPER + M` | Exit Hyprland |
|
||||||
|
| `SUPER + 1-9` | Switch Workspace |
|
||||||
|
| `SUPER + SHIFT + 1-9` | Move to Workspace |
|
||||||
|
| `SUPER + SHIFT + S` | Screenshot (select) |
|
||||||
|
| `Print` | Screenshot to file |
|
||||||
|
|
||||||
|
## 📁 File Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
hyprarch/
|
||||||
|
├── install.sh # Main install script
|
||||||
|
├── README.md # This file
|
||||||
|
├── .config/
|
||||||
|
│ ├── hypr/
|
||||||
|
│ │ ├── hyprland.conf # Main Hyprland config
|
||||||
|
│ │ └── hyprlock.conf # Lock screen config
|
||||||
|
│ ├── waybar/
|
||||||
|
│ │ ├── config # Waybar modules
|
||||||
|
│ │ └── style.css # Nord themed styling
|
||||||
|
│ ├── rofi/
|
||||||
|
│ │ ├── config.rasi # Rofi config
|
||||||
|
│ │ └── nord.rasi # Nord theme
|
||||||
|
│ ├── kitty/
|
||||||
|
│ │ └── kitty.conf # Terminal config
|
||||||
|
│ └── dunst/
|
||||||
|
│ └── dunstrc # Notification config
|
||||||
|
└── wallpapers/ # Wallpaper collection
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🎨 Color Scheme (Nord)
|
||||||
|
|
||||||
|
| Color | Hex | Usage |
|
||||||
|
|-------|-----|-------|
|
||||||
|
| Polar Night | `#2e3440` | Background |
|
||||||
|
| Snow Storm | `#eceff4` | Foreground |
|
||||||
|
| Frost | `#88c0d0` | Accent/Active |
|
||||||
|
| Aurora Red | `#bf616a` | Critical/Error |
|
||||||
|
| Aurora Green | `#a3be8c` | Success |
|
||||||
|
| Aurora Yellow | `#ebcb8b` | Warning |
|
||||||
|
|
||||||
|
## 🔧 Customization
|
||||||
|
|
||||||
|
### Change Wallpaper
|
||||||
|
```bash
|
||||||
|
swww img ~/Pictures/wallpapers/your-wallpaper.jpg --transition-type grow
|
||||||
|
```
|
||||||
|
|
||||||
|
### Edit Configs
|
||||||
|
```bash
|
||||||
|
# Hyprland
|
||||||
|
nvim ~/.config/hypr/hyprland.conf
|
||||||
|
|
||||||
|
# Waybar
|
||||||
|
nvim ~/.config/waybar/config
|
||||||
|
nvim ~/.config/waybar/style.css
|
||||||
|
|
||||||
|
# Rofi
|
||||||
|
nvim ~/.config/rofi/nord.rasi
|
||||||
|
|
||||||
|
# Kitty
|
||||||
|
nvim ~/.config/kitty/kitty.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
### Change Theme Colors
|
||||||
|
Edit the color variables in:
|
||||||
|
- `~/.config/waybar/style.css`
|
||||||
|
- `~/.config/rofi/nord.rasi`
|
||||||
|
- `~/.config/kitty/kitty.conf`
|
||||||
|
- `~/.config/dunst/dunstrc`
|
||||||
|
|
||||||
|
## 🔍 Troubleshooting
|
||||||
|
|
||||||
|
### Hyprland won't start
|
||||||
|
```bash
|
||||||
|
# Check if running Wayland
|
||||||
|
echo $XDG_SESSION_TYPE
|
||||||
|
|
||||||
|
# Check Hyprland logs
|
||||||
|
cat /tmp/hypr/*/hyprland.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### Waybar not showing
|
||||||
|
```bash
|
||||||
|
# Restart waybar
|
||||||
|
killall waybar
|
||||||
|
waybar &
|
||||||
|
```
|
||||||
|
|
||||||
|
### No sound
|
||||||
|
```bash
|
||||||
|
# Check PipeWire
|
||||||
|
systemctl --user status pipewire pipewire-pulse wireplumber
|
||||||
|
|
||||||
|
# Restart audio
|
||||||
|
systemctl --user restart pipewire pipewire-pulse wireplumber
|
||||||
|
```
|
||||||
|
|
||||||
|
### Wallpaper not loading
|
||||||
|
```bash
|
||||||
|
# Check if swww daemon is running
|
||||||
|
pgrep swww
|
||||||
|
|
||||||
|
# Start daemon and set wallpaper
|
||||||
|
swww-daemon &
|
||||||
|
sleep 1
|
||||||
|
swww img ~/Pictures/wallpapers/default.jpg
|
||||||
|
```
|
||||||
|
|
||||||
|
### Rofi not opening
|
||||||
|
```bash
|
||||||
|
# Test rofi
|
||||||
|
rofi -show drun
|
||||||
|
|
||||||
|
# Check if rofi-wayland is installed
|
||||||
|
pacman -Qs rofi
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔄 Updating
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/hyprarch
|
||||||
|
git pull
|
||||||
|
./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Your custom configs will be backed up before updating.
|
||||||
|
|
||||||
|
## 🗑️ Uninstall
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Remove configs
|
||||||
|
rm -rf ~/.config/hypr
|
||||||
|
rm -rf ~/.config/waybar
|
||||||
|
rm -rf ~/.config/rofi
|
||||||
|
rm -rf ~/.config/kitty
|
||||||
|
rm -rf ~/.config/dunst
|
||||||
|
|
||||||
|
# Optionally remove packages (be careful!)
|
||||||
|
# sudo pacman -Rns hyprland waybar rofi kitty dunst swww
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 Resources
|
||||||
|
|
||||||
|
- [Hyprland Wiki](https://wiki.hyprland.org/)
|
||||||
|
- [Nord Theme](https://www.nordtheme.com/)
|
||||||
|
- [Arch Wiki - Hyprland](https://wiki.archlinux.org/title/Hyprland)
|
||||||
|
|
||||||
|
## 🤝 Credits
|
||||||
|
|
||||||
|
- [Hyprland](https://hyprland.org/) by vaxerski
|
||||||
|
- [Nord Theme](https://www.nordtheme.com/) by Arctic Ice Studio
|
||||||
|
- [Nordic Wallpapers](https://github.com/linuxdotexe/nordic-wallpapers)
|
||||||
|
|
||||||
|
## 📄 License
|
||||||
|
|
||||||
|
MIT License - Feel free to use and modify!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
Made with 💙 for the Arch + Hyprland community
|
||||||
|
</p>
|
||||||
333
install.sh
Normal file
333
install.sh
Normal file
@@ -0,0 +1,333 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# ╔═══════════════════════════════════════════════════════════════════╗
|
||||||
|
# ║ HYPRARCH - Install Script ║
|
||||||
|
# ║ https://git.cribdev.com/hyprarch ║
|
||||||
|
# ╚═══════════════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Colors
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
BLUE='\033[0;34m'
|
||||||
|
CYAN='\033[0;36m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
# Banner
|
||||||
|
echo -e "${CYAN}"
|
||||||
|
cat << "EOF"
|
||||||
|
╦ ╦╦ ╦╔═╗╦═╗╔═╗╦═╗╔═╗╦ ╦
|
||||||
|
╠═╣╚╦╝╠═╝╠╦╝╠═╣╠╦╝║ ╠═╣
|
||||||
|
╩ ╩ ╩ ╩ ╩╚═╩ ╩╩╚═╚═╝╩ ╩
|
||||||
|
Hyprland Rice for Arch Linux
|
||||||
|
EOF
|
||||||
|
echo -e "${NC}"
|
||||||
|
|
||||||
|
# Check if running as root
|
||||||
|
if [ "$EUID" -eq 0 ]; then
|
||||||
|
echo -e "${RED}Error: Please don't run this script as root${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if running Arch Linux
|
||||||
|
if [ ! -f /etc/arch-release ]; then
|
||||||
|
echo -e "${RED}Error: This script is designed for Arch Linux${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Function to print status
|
||||||
|
print_status() {
|
||||||
|
echo -e "${BLUE}[*]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_success() {
|
||||||
|
echo -e "${GREEN}[✓]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_warning() {
|
||||||
|
echo -e "${YELLOW}[!]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_error() {
|
||||||
|
echo -e "${RED}[✗]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get script directory
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
# ── Step 1: Update System ────────────────────────────────────────────
|
||||||
|
print_status "Updating system..."
|
||||||
|
sudo pacman -Syu --noconfirm
|
||||||
|
|
||||||
|
# ── Step 2: Install yay (AUR helper) ─────────────────────────────────
|
||||||
|
if ! command -v yay &> /dev/null; then
|
||||||
|
print_status "Installing yay (AUR helper)..."
|
||||||
|
sudo pacman -S --needed --noconfirm git base-devel
|
||||||
|
git clone https://aur.archlinux.org/yay.git /tmp/yay
|
||||||
|
cd /tmp/yay && makepkg -si --noconfirm
|
||||||
|
cd "$SCRIPT_DIR"
|
||||||
|
rm -rf /tmp/yay
|
||||||
|
print_success "yay installed"
|
||||||
|
else
|
||||||
|
print_success "yay already installed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ── Step 3: Install Packages ─────────────────────────────────────────
|
||||||
|
print_status "Installing packages..."
|
||||||
|
|
||||||
|
# Core Hyprland packages
|
||||||
|
HYPRLAND_PKGS=(
|
||||||
|
hyprland
|
||||||
|
hyprpaper
|
||||||
|
hyprpicker
|
||||||
|
hypridle
|
||||||
|
hyprlock
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
|
)
|
||||||
|
|
||||||
|
# Wayland essentials
|
||||||
|
WAYLAND_PKGS=(
|
||||||
|
waybar
|
||||||
|
rofi-wayland
|
||||||
|
dunst
|
||||||
|
swww
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
wl-clipboard
|
||||||
|
)
|
||||||
|
|
||||||
|
# System utilities
|
||||||
|
SYSTEM_PKGS=(
|
||||||
|
kitty
|
||||||
|
thunar
|
||||||
|
thunar-archive-plugin
|
||||||
|
file-roller
|
||||||
|
pavucontrol
|
||||||
|
brightnessctl
|
||||||
|
networkmanager
|
||||||
|
network-manager-applet
|
||||||
|
bluez
|
||||||
|
bluez-utils
|
||||||
|
blueman
|
||||||
|
pipewire
|
||||||
|
pipewire-alsa
|
||||||
|
pipewire-pulse
|
||||||
|
pipewire-jack
|
||||||
|
wireplumber
|
||||||
|
)
|
||||||
|
|
||||||
|
# Fonts
|
||||||
|
FONT_PKGS=(
|
||||||
|
ttf-jetbrains-mono-nerd
|
||||||
|
ttf-fira-code
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk
|
||||||
|
noto-fonts-emoji
|
||||||
|
ttf-font-awesome
|
||||||
|
)
|
||||||
|
|
||||||
|
# CLI tools
|
||||||
|
CLI_PKGS=(
|
||||||
|
git
|
||||||
|
vim
|
||||||
|
neovim
|
||||||
|
htop
|
||||||
|
btop
|
||||||
|
wget
|
||||||
|
curl
|
||||||
|
unzip
|
||||||
|
zip
|
||||||
|
ripgrep
|
||||||
|
fd
|
||||||
|
fzf
|
||||||
|
bat
|
||||||
|
eza
|
||||||
|
jq
|
||||||
|
zsh
|
||||||
|
starship
|
||||||
|
)
|
||||||
|
|
||||||
|
# Applications
|
||||||
|
APP_PKGS=(
|
||||||
|
firefox
|
||||||
|
imv
|
||||||
|
zathura
|
||||||
|
zathura-pdf-mupdf
|
||||||
|
mpv
|
||||||
|
)
|
||||||
|
|
||||||
|
# Qt/GTK theming
|
||||||
|
THEME_PKGS=(
|
||||||
|
qt5ct
|
||||||
|
qt6ct
|
||||||
|
nwg-look
|
||||||
|
)
|
||||||
|
|
||||||
|
# Install official packages
|
||||||
|
print_status "Installing official packages..."
|
||||||
|
sudo pacman -S --needed --noconfirm "${HYPRLAND_PKGS[@]}" "${WAYLAND_PKGS[@]}" "${SYSTEM_PKGS[@]}" "${FONT_PKGS[@]}" "${CLI_PKGS[@]}" "${APP_PKGS[@]}" "${THEME_PKGS[@]}"
|
||||||
|
|
||||||
|
# AUR packages
|
||||||
|
AUR_PKGS=(
|
||||||
|
swaynotificationcenter
|
||||||
|
)
|
||||||
|
|
||||||
|
print_status "Installing AUR packages..."
|
||||||
|
yay -S --needed --noconfirm "${AUR_PKGS[@]}"
|
||||||
|
|
||||||
|
print_success "All packages installed"
|
||||||
|
|
||||||
|
# ── Step 4: Enable Services ──────────────────────────────────────────
|
||||||
|
print_status "Enabling services..."
|
||||||
|
sudo systemctl enable NetworkManager
|
||||||
|
sudo systemctl enable bluetooth
|
||||||
|
systemctl --user enable pipewire pipewire-pulse wireplumber
|
||||||
|
|
||||||
|
print_success "Services enabled"
|
||||||
|
|
||||||
|
# ── Step 5: Backup Existing Configs ──────────────────────────────────
|
||||||
|
print_status "Backing up existing configs..."
|
||||||
|
BACKUP_DIR="$HOME/.config-backup-$(date +%Y%m%d_%H%M%S)"
|
||||||
|
|
||||||
|
configs_to_backup=(
|
||||||
|
"$HOME/.config/hypr"
|
||||||
|
"$HOME/.config/waybar"
|
||||||
|
"$HOME/.config/rofi"
|
||||||
|
"$HOME/.config/kitty"
|
||||||
|
"$HOME/.config/dunst"
|
||||||
|
)
|
||||||
|
|
||||||
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
for config in "${configs_to_backup[@]}"; do
|
||||||
|
if [ -d "$config" ] || [ -f "$config" ]; then
|
||||||
|
cp -r "$config" "$BACKUP_DIR/" 2>/dev/null || true
|
||||||
|
print_warning "Backed up $(basename $config)"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
print_success "Backup created at $BACKUP_DIR"
|
||||||
|
|
||||||
|
# ── Step 6: Install Configs ──────────────────────────────────────────
|
||||||
|
print_status "Installing configs..."
|
||||||
|
|
||||||
|
# Create directories
|
||||||
|
mkdir -p "$HOME/.config/hypr"
|
||||||
|
mkdir -p "$HOME/.config/waybar"
|
||||||
|
mkdir -p "$HOME/.config/rofi"
|
||||||
|
mkdir -p "$HOME/.config/kitty"
|
||||||
|
mkdir -p "$HOME/.config/dunst"
|
||||||
|
mkdir -p "$HOME/Pictures/wallpapers"
|
||||||
|
mkdir -p "$HOME/Pictures/screenshots"
|
||||||
|
|
||||||
|
# Copy configs
|
||||||
|
cp -r "$SCRIPT_DIR/.config/hypr/"* "$HOME/.config/hypr/"
|
||||||
|
cp -r "$SCRIPT_DIR/.config/waybar/"* "$HOME/.config/waybar/"
|
||||||
|
cp -r "$SCRIPT_DIR/.config/rofi/"* "$HOME/.config/rofi/"
|
||||||
|
cp -r "$SCRIPT_DIR/.config/kitty/"* "$HOME/.config/kitty/"
|
||||||
|
cp -r "$SCRIPT_DIR/.config/dunst/"* "$HOME/.config/dunst/"
|
||||||
|
|
||||||
|
# Copy wallpapers if they exist
|
||||||
|
if [ -d "$SCRIPT_DIR/wallpapers" ] && [ "$(ls -A $SCRIPT_DIR/wallpapers 2>/dev/null)" ]; then
|
||||||
|
cp -r "$SCRIPT_DIR/wallpapers/"* "$HOME/Pictures/wallpapers/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_success "Configs installed"
|
||||||
|
|
||||||
|
# ── Step 7: Set Zsh as Default Shell ─────────────────────────────────
|
||||||
|
if [ "$SHELL" != "$(which zsh)" ]; then
|
||||||
|
print_status "Setting zsh as default shell..."
|
||||||
|
chsh -s $(which zsh)
|
||||||
|
print_success "Zsh set as default shell (will take effect on next login)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ── Step 8: Install Starship Config ──────────────────────────────────
|
||||||
|
print_status "Installing starship config..."
|
||||||
|
mkdir -p "$HOME/.config"
|
||||||
|
cat > "$HOME/.config/starship.toml" << 'EOF'
|
||||||
|
add_newline = false
|
||||||
|
format = "$directory$git_branch$git_status$character"
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
truncation_length = 3
|
||||||
|
truncate_to_repo = true
|
||||||
|
|
||||||
|
[character]
|
||||||
|
success_symbol = "[❯](bold green)"
|
||||||
|
error_symbol = "[❯](bold red)"
|
||||||
|
|
||||||
|
[git_branch]
|
||||||
|
format = "[$symbol$branch]($style) "
|
||||||
|
style = "bold purple"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
print_success "Starship config installed"
|
||||||
|
|
||||||
|
# ── Step 9: Setup Zsh Config ─────────────────────────────────────────
|
||||||
|
print_status "Setting up zsh config..."
|
||||||
|
cat > "$HOME/.zshrc" << 'EOF'
|
||||||
|
# HYPRARCH - Zsh Config
|
||||||
|
|
||||||
|
# History
|
||||||
|
HISTFILE=~/.zsh_history
|
||||||
|
HISTSIZE=10000
|
||||||
|
SAVEHIST=10000
|
||||||
|
setopt appendhistory
|
||||||
|
setopt sharehistory
|
||||||
|
setopt hist_ignore_dups
|
||||||
|
|
||||||
|
# Completion
|
||||||
|
autoload -Uz compinit
|
||||||
|
compinit
|
||||||
|
|
||||||
|
# Aliases
|
||||||
|
alias ls='eza'
|
||||||
|
alias ll='eza -la'
|
||||||
|
alias cat='bat'
|
||||||
|
alias vim='nvim'
|
||||||
|
alias update='sudo pacman -Syu'
|
||||||
|
alias cleanup='sudo pacman -Rns $(pacman -Qtdq)'
|
||||||
|
|
||||||
|
# Starship prompt
|
||||||
|
eval "$(starship init zsh)"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
print_success "Zsh config installed"
|
||||||
|
|
||||||
|
# ── Step 10: Download Default Wallpaper ──────────────────────────────
|
||||||
|
print_status "Downloading default wallpaper..."
|
||||||
|
if command -v wget &> /dev/null; then
|
||||||
|
wget -q "https://raw.githubusercontent.com/linuxdotexe/nordic-wallpapers/master/wallpapers/ign_astronaut.png" -O "$HOME/Pictures/wallpapers/default.jpg" 2>/dev/null || \
|
||||||
|
wget -q "https://images.unsplash.com/photo-1557682250-33bd709cbe85?w=1920" -O "$HOME/Pictures/wallpapers/default.jpg" 2>/dev/null || \
|
||||||
|
print_warning "Could not download wallpaper, please add one manually"
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_success "Wallpaper downloaded"
|
||||||
|
|
||||||
|
# ── Complete ─────────────────────────────────────────────────────────
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}╔═══════════════════════════════════════════════════════════════════╗${NC}"
|
||||||
|
echo -e "${GREEN}║ Installation Complete! ║${NC}"
|
||||||
|
echo -e "${GREEN}╚═══════════════════════════════════════════════════════════════════╝${NC}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${CYAN}Next steps:${NC}"
|
||||||
|
echo " 1. Log out and select Hyprland from your display manager"
|
||||||
|
echo " 2. Or start Hyprland from TTY: ${YELLOW}Hyprland${NC}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${CYAN}Keybindings:${NC}"
|
||||||
|
echo " SUPER + Return → Terminal (Kitty)"
|
||||||
|
echo " SUPER + D → App Launcher (Rofi)"
|
||||||
|
echo " SUPER + Q → Close Window"
|
||||||
|
echo " SUPER + E → File Manager"
|
||||||
|
echo " SUPER + 1-9 → Switch Workspace"
|
||||||
|
echo ""
|
||||||
|
echo -e "${CYAN}Config locations:${NC}"
|
||||||
|
echo " Hyprland: ~/.config/hypr/hyprland.conf"
|
||||||
|
echo " Waybar: ~/.config/waybar/"
|
||||||
|
echo " Rofi: ~/.config/rofi/"
|
||||||
|
echo " Kitty: ~/.config/kitty/kitty.conf"
|
||||||
|
echo ""
|
||||||
|
echo -e "${YELLOW}Backup of old configs: $BACKUP_DIR${NC}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}Enjoy your new rice! 🎨${NC}"
|
||||||
24
wallpapers/README.md
Normal file
24
wallpapers/README.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Wallpapers
|
||||||
|
|
||||||
|
Place your wallpapers here!
|
||||||
|
|
||||||
|
The default wallpaper will be downloaded during installation, but you can add your own.
|
||||||
|
|
||||||
|
## Setting Wallpaper
|
||||||
|
|
||||||
|
```bash
|
||||||
|
swww img ~/Pictures/wallpapers/your-wallpaper.jpg --transition-type grow
|
||||||
|
```
|
||||||
|
|
||||||
|
## Recommended Wallpaper Sources
|
||||||
|
|
||||||
|
- [Nordic Wallpapers](https://github.com/linuxdotexe/nordic-wallpapers)
|
||||||
|
- [Wallhaven](https://wallhaven.cc/)
|
||||||
|
- [Unsplash](https://unsplash.com/)
|
||||||
|
|
||||||
|
## Transition Types
|
||||||
|
|
||||||
|
- `grow` - Grows from center
|
||||||
|
- `wipe` - Wipes across screen
|
||||||
|
- `fade` - Fades between images
|
||||||
|
- `none` - Instant change
|
||||||
Reference in New Issue
Block a user