Initial Hyprland config

This commit is contained in:
2025-02-23 16:14:01 +00:00
parent 170391da4e
commit 1ab975e643
7 changed files with 1114 additions and 1 deletions

206
home/.config/foot/foot.ini Normal file
View File

@@ -0,0 +1,206 @@
# -*- conf -*-
shell=/bin/bash
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
# login-shell=no
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
title=Terminal
# locked-title=no
font=JetBrains Mono Nerd Font:size=12
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
# font-size-adjustment=0.5
# line-height=<font metrics>
# letter-spacing=0
# horizontal-letter-offset=0
# vertical-letter-offset=0
# underline-offset=<font metrics>
# underline-thickness=<font underline thickness>
# box-drawings-uses-font-glyphs=no
# dpi-aware=no
# initial-window-size-pixels=700x500 # Or,
# initial-window-size-chars=<COLSxROWS>
# initial-window-mode=windowed
pad=5x5 center # optionally append 'center'
# resize-delay-ms=100
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
# bold-text-in-bright=no
# word-delimiters=,│`|:"'()[]{}<>
# selection-target=primary
# workers=<number of logical CPUs>
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is libutempter (Linux)
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ulog (FreeBSD)
[environment]
# name=value
[bell]
# urgent=no
# notify=no
# visual=no
# command=
# command-focused=no
[scrollback]
lines=1000
# multiplier=3.0
# indicator-position=relative
# indicator-format=""
[url]
launch=xdg-open ${url}
# label-letters=sadfjklewcmpgh
# osc8-underline=url-mode
# protocols=http, https, ftp, ftps, file, gemini, gopher
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
[cursor]
style=block
# color=<inverse foreground/background>
# blink=no
# beam-thickness=1.5
# underline-thickness=<font underline thickness>
[mouse]
# hide-when-typing=no
# alternate-scroll-mode=yes
[touch]
# long-press-delay=400
# JetBrains Darcula
# Palette based on the same theme from https://github.com/dexpota/kitty-themes
#[cursor]
#color=282a36 f8f8f2
[colors]
alpha=0.95
background=282828
foreground=ebdbb2
regular0=282828
regular1=cc241d
regular2=98971a
regular3=d79921
regular4=458588
regular5=b16286
regular6=689d6a
regular7=a89984
bright0=928374
bright1=fb4934
bright2=b8bb26
bright3=fabd2f
bright4=83a598
bright5=d3869b
bright6=8ec07c
bright7=ebdbb2
[csd]
# preferred=server
# size=26
# font=<primary font>
# color=<foreground color>
# hide-when-maximized=no
# double-click-to-maximize=yes
# border-width=0
# border-color=<csd.color>
# button-width=26
# button-color=<background color>
# button-minimize-color=<regular4>
# button-maximize-color=<regular2>
# button-close-color=<regular1>
[key-bindings]
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
# clipboard-copy=Control+Shift+c XF86Copy
# clipboard-paste=Control+Shift+v XF86Paste
# primary-paste=Shift+Insert
# search-start=Control+Shift+r
# font-increase=Control+plus Control+equal Control+KP_Add
# font-decrease=Control+minus Control+KP_Subtract
# font-reset=Control+0 Control+KP_0
# spawn-terminal=Control+Shift+n
# minimize=none
# maximize=none
# fullscreen=none
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-selected=[xargs -r firefox] none
# show-urls-launch=Control+Shift+o
# show-urls-copy=none
# show-urls-persistent=none
# prompt-prev=Control+Shift+z
# prompt-next=Control+Shift+x
# unicode-input=Control+Shift+u
# noop=none
[search-bindings]
# cancel=Control+g Control+c Escape
# commit=Return
# find-prev=Control+r
# find-next=Control+s
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace
# delete-prev-word=Mod1+BackSpace Control+BackSpace
# delete-next=Delete
# delete-next-word=Mod1+d Control+Delete
# extend-char=Shift+Right
# extend-to-word-boundary=Control+w Control+Shift+Right
# extend-to-next-whitespace=Control+Shift+w
# extend-line-down=Shift+Down
# extend-backward-char=Shift+Left
# extend-backward-to-word-boundary=Control+Shift+Left
# extend-backward-to-next-whitespace=none
# extend-line-up=Shift+Up
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
# primary-paste=Shift+Insert
# unicode-input=none
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
[url-bindings]
# cancel=Control+g Control+c Control+d Escape
# toggle-url-visible=t
[text-bindings]
# \x03=Mod4+c # Map Super+c -> Ctrl+c
[mouse-bindings]
scrollback-up-mouse=BTN_BACK
scrollback-down-mouse=BTN_FORWARD
# selection-override-modifiers=Shift
primary-paste=BTN_MIDDLE
# select-begin=BTN_LEFT
# select-begin-block=Control+BTN_LEFT
# select-extend=BTN_RIGHT
# select-extend-character-wise=Control+BTN_RIGHT
# select-word=BTN_LEFT-2
# select-word-whitespace=Control+BTN_LEFT-2
# select-quote = BTN_LEFT-3
# select-row=BTN_LEFT-4
# vim: ft=dosini

View File

@@ -0,0 +1,282 @@
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,auto
###################
### MY PROGRAMS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = foot
$fileManager = nautilus
$menu = wofi --show drun
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
# exec-once = $terminal
# exec-once = nm-applet &
exec-once = dunst
exec-once = hyprpaper
exec-once = hyprpolkitagent
exec-once = hyprsunset
exec-once = nm-applet
exec-once = udiskie
exec-once = waybar
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 20
border_size = 2
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = true
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 10
rounding_power = 2
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = yes, please :)
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = easeOutQuint,0.23,1,0.32,1
bezier = easeInOutCubic,0.65,0.05,0.36,1
bezier = linear,0,0,1,1
bezier = almostLinear,0.5,0.5,0.75,1.0
bezier = quick,0.15,0,0.1,1
animation = global, 1, 10, default
animation = border, 1, 5.39, easeOutQuint
animation = windows, 1, 4.79, easeOutQuint
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1.49, linear, popin 87%
animation = fadeIn, 1, 1.73, almostLinear
animation = fadeOut, 1, 1.46, almostLinear
animation = fade, 1, 3.03, quick
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
animation = workspaces, 1, 1.94, almostLinear, fade
animation = workspacesIn, 1, 1.21, almostLinear, fade
animation = workspacesOut, 1, 1.94, almostLinear, fade
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
###################
### KEYBINDINGS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
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 a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @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%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0

192
home/.config/waybar/config Normal file
View File

@@ -0,0 +1,192 @@
{
"layer": "top", // Waybar at top layer
// "position": "bottom", // Waybar position (top|bottom|left|right)
"height": 30, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
"spacing": 5, // Gaps between modules (4px)
"margin-top": 5,
"margin-right": 5,
"margin-left": 5,
"margin-bottom": 0,
// Choose the order of the modules
"modules-left": ["clock", "backlight", "battery", "sway/scratchpad", "mpd", "tray"],
"modules-center": ["sway/workspaces"],
"modules-right": ["wireplumber", "network", "cpu", "memory", "temperature"],
// Modules configuration
"custom/power": {
"format": "󰣇",
"on-click": "",
},
"sway/workspaces": {
"disable-scroll": true,
"all-outputs": true,
"format": "{icon}",
"format-icons": {
"focused": "",
"default": ""
}
},
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"sway/scratchpad": {
"format": "{icon} {count}",
"show-empty": false,
"format-icons": ["", ""],
"tooltip": true,
"tooltip-format": "{app}: {title}"
},
"mpd": {
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
"format-disconnected": "Disconnected ",
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon} Stopped ",
"unknown-tag": "N/A",
"interval": 2,
"consume-icons": {
"on": " "
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ",
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "󰾪",
"deactivated": "󰅶"
}
},
"tray": {
// "icon-size": 21,
"spacing": 10
},
//"clock": {
// // "timezone": "America/New_York",
// "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
// "format-alt": "{:%Y-%m-%d}"
//},
"clock": {
"format": "{:%H:%M} ",
"format-alt": "{:%A, %B %d, %Y (%R)} 󰃭",
"tooltip-format": "<tt><small>{calendar}</small></tt>",
"calendar": {
"mode" : "year",
"mode-mon-col" : 3,
"weeks-pos" : "right",
"on-scroll" : 1,
"on-click-right": "mode",
"format": {
"months": "<span color='#ffead3'><b>{}</b></span>",
"days": "<span color='#ecc6d9'><b>{}</b></span>",
"weeks": "<span color='#99ffdd'><b>W{}</b></span>",
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
"today": "<span color='#ff6699'><b><u>{}</u></b></span>"
}
},
"actions": {
"on-click-right": "mode",
"on-click-forward": "tz_up",
"on-click-backward": "tz_down",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
},
"cpu": {
"interval": 1,
"format": "{usage}% ",
"tooltip": false
},
"memory": {
"interval": 2,
"format": "{}% "
},
"temperature": {
// "thermal-zone": 2,
"hwmon-path": "/sys/class/hwmon/hwmon3/temp1_input",
"critical-threshold": 80,
"format-critical": "{temperatureC}°C 󰈸",
"format": "{temperatureC}°C {icon}",
"format-icons": ["󱃃", "󰔏"],
"interval": 1
},
"temperature#gpu": {
// "thermal-zone": 2,
"hwmon-path": "/sys/class/hwmon/hwmon5/temp1_input",
"critical-threshold": 80,
"format-critical": "󰽉 {temperatureC}°C 󰈸",
"format": "󰽉 {temperatureC}°C {icon}",
"format-icons": ["󱃃", "󰔏"],
"interval": 1
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""]
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% 󱐋",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"battery#bat2": {
"bat": "BAT2"
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%) 󰤨",
"format-ethernet": "{ipaddr}/{cidr} 󰈀",
"tooltip-format": "{ifname} via {gwaddr} 󰩟",
"format-linked": "{ifname} (No IP) 󱦂",
"format-disconnected": "Disconnected ",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"wireplumber": {
"format": "{volume}% {icon}",
"format-muted": "",
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"format-icons": ["", "", ""]
},
"custom/media": {
"format": "{icon} {}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
}
}

View File

@@ -0,0 +1,308 @@
@define-color base #282828;
@define-color foreground #ebdbb2;
@define-color cyan #83a598;
@define-color green #8ec07c;
@define-color orange #fe8019;
@define-color pink #d3869b;
@define-color purple #b16286;
@define-color red #fb4934;
@define-color yellow #fabd2f;
* {
/* `otf-font-awesome` is required to be installed for icons */
font-family: "JetBrainsMono Nerd Font", "Material Design Icons";
font-size: 14px;
color: @foreground;
}
#window {
color: @pink;
background: @base;
transition-property: background-color;
border-radius: 100px;
padding: 0 10px;
}
#waybar.empty #window {
background: none;
}
window#waybar {
background-color: transparent;
}
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
button {
margin-right: 5px;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
background: @base;
box-shadow: none;
text-shadow: none;
}
button:hover {
color: @pink;
border: none;
box-shadow: none;
text-shadow: none;
}
#workspaces {
border-radius: 100px;
background: @base;
padding: 0 15px;
}
#workspaces button {
border: none;
background-color: @base;
color: @foreground;
transition: 0.2s;
padding-left: 0;
padding-right: 4px;
margin-left: 2px;
margin-right: 2px;
}
#workspaces button:hover {
color: @orange;
background: @base;
transition: 0.2s;
}
#workspaces button.focused {
background: @base;
}
#workspaces button.urgent {
color: @red;
}
#mode {
background: @base;
box-shadow: none;
text-shadow: none;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#scratchpad,
#mpd,
#language,
#keyboard-state,
#custom-power {
padding-left: 15px;
padding-right: 18px;
background-color: @base;
border-radius: 100px;
}
#window,
#workspaces {
margin: 0 5px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#clock {
color: @orange;
}
#temperature {
color: @orange;
}
#battery {
color: @purple;
}
#battery.charging,
#battery.plugged {
color: @orange;
}
@keyframes blink {
to {
background-color: @base;
color: #000000;
}
}
#battery.critical:not(.charging) {
background-color: @red;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
color: @foreground;
}
#cpu {
color: @purple;
}
#memory {
color: @purple;
}
#disk {
color: @purple;
}
#backlight {
color: @yellow;
}
#network {
color: @pink;
}
#network.disconnected {
color: @red;
}
#pulseaudio {
color: @cyan;
}
#pulseaudio.muted {
color: @red;
}
#wireplumber {
color: @cyan;
}
#wireplumber.muted {
color: @red;
}
#custom-media {
color: @purple;
min-width: 100px;
}
#custom-media.custom-spotify {
color: @purple;
}
#custom-media.custom-vlc {
color: @purple;
}
#temperature {
color: @purple;
}
#temperature.critical {
color: @base;
background: @red;
box-shadow: inset 0px 0px 0px 3px @base;
}
#tray {
color: @foreground;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: @base;
}
#tray * {
background: @base;
}
#idle_inhibitor {
color: @yellow;
}
#idle_inhibitor.activated {
background-color: @red;
box-shadow: inset 0px 0px 0px 3px @base;
color: @base;
}
#mpd {
color: @purple;
}
#mpd.disconnected {
background-color: @red;
color: @base;
box-shadow: inset 0px 0px 0px 3px @base;
}
#mpd.stopped {
color: @red;
}
#mpd.paused {
color: @yellow;
}
#language {
color: @orange;
min-width: 16px;
}
#keyboard-state {
color: @orange;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 5px;
}
#keyboard-state > label.locked {
color: @red;
}
#scratchpad {
color: @yellow;
}
#scratchpad.empty {
color: @cyan;
}

1
home/.config/wofi/config Normal file
View File

@@ -0,0 +1 @@
width=450

View File

@@ -0,0 +1,83 @@
@define-color darkbase #1d2021;
@define-color base #282828;
@define-color foreground #ebdbb2;
@define-color cyan #83a598;
@define-color green #8ec07c;
@define-color orange #fe8019;
@define-color pink #d3869b;
@define-color purple #d3869b;
@define-color red #fb4934;
@define-color yellow #fabd2f;
window {
margin: 0px;
border: 3px solid @foreground;
background-color: @base;
border-radius: 8px;
outline-style: none;
}
#input {
margin: 5px;
border: none;
border-radius: 8px;
color: @foreground;
background-color: @darkbase;
outline-style: none;
}
#inner-box {
margin: 5px;
border: none;
background-color: @base;
outline-style: none;
}
#outer-box {
margin: 5px;
border: none;
background-color: @base;
outline-style: none;
}
#scroll {
margin: 0px;
border: none;
outline-style: none;
}
#text {
margin: 5px;
border: none;
color: @foreground;
}
#entry {
border-radius: 50px;
outline-style: none;
}
#entry.activatable #text {
color: @darkbase;
}
#entry > * {
color: @base;
}
#entry:selected {
background-color: @darkbase;
border: none;
border-radius: 8px;
outline-style: none;
}
#entry:selected #text {
font-weight: bold;
color: @foreground;
background-color: @darkbase;
}
#img:selected {
background: none;
}

View File

@@ -1,7 +1,13 @@
#!/bin/bash
# Parse flags
help_message="Usage: $0 [--desktop|-d | --terminal|-t]"
help_message="Usage: $0 [--desktop|-d | --hyprland|-h | --terminal|-t]
Options:
--desktop, -d Install desktop programs and configure GNOME (must already be installed).
--hyprland, -h Install desktop programs and Hyprland.
--terminal, -t Only install the basic dependencies for CLI use."
if [ $# -eq 0 ]; then
echo "$help_message"
exit 1
@@ -11,10 +17,17 @@ while [[ $# -gt 0 ]]; do
case "$1" in
--desktop | -d)
desktop=true
hyprland=false
shift
;;
--hyprland | -h)
desktop=true
hyprland=true
shift
;;
--terminal | -t)
desktop=false
hyprland=false
shift
;;
*)
@@ -85,6 +98,34 @@ if $desktop; then
)
fi
if $hyprland; then
programs+=(
dunst # Notifications
foot # Terminal
hyprland # Window manager
hyprlock # Screen locker
hyprpaper # Wallpaper manager
hyprpicker # Color picker
hyprpolkitagent # Auth pop-up for sudo access
hyprsunset # Blue light filter
nm-applet # Network manager applet
pipewire # Audio server
udiskie # Automount USB drives
waybar # Status bar
wireplumber # PipeWire session manager
wofi # Launcher
xdg-desktop-portal-hyprland # D-Bus support for Hyprland
nautilus # File manager
nautilus-admin-gtk4 # Open as administrator
nautilus-image-converter # Image converter
nautilus-open-any-terminal # Terminal in Nautilus
qt5-wayland # Qt5 Wayland support
qt6-wayland # Qt6 Wayland support
)
fi
for prog in "${programs[@]}"; do
echo -e "${YELLOW}[+] Installing ${prog}...${NC}"
case $pkg_manager in