Add Hyprland support for nymph: packages, repo, dotfiles, and emptty session

This commit is contained in:
Fabio Scotto di Santolo
2026-03-28 20:09:50 +01:00
parent 654437843b
commit df0c9ea905
9 changed files with 535 additions and 6 deletions

View File

@@ -0,0 +1,193 @@
#############################################
# HYPRLAND CONFIG
# ThinkPad T480 (Intel + NVIDIA)
# Intel primary GPU + NVIDIA offload
#############################################
################
# Variables
################
$mod = SUPER
#$terminal = WINIT_UNIX_BACKEND=x11 ~/.local/bin/nvidia-run alacritty
$terminal = alacritty
$menu = rofi -show drun -config ~/.config/rofi/config.rasi
$powermenu = ~/.local/bin/powermenu
################
# Autostart
################
exec-once = hyprpaper
exec-once = waybar
exec-once = dunst
################
# Environment
################
env = AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = GBM_BACKEND,nvidia-drm
env = LIBVA_DRIVER_NAME,iHD
env = WLR_NO_HARDWARE_CURSORS,1
################
# Monitor
################
monitor = ,preferred,auto,1
################
# Input
################
input {
kb_layout = us
kb_variant = alt-intl
follow_mouse = 1
sensitivity = 0
touchpad {
natural_scroll = true
}
}
################
# General
################
general {
layout = master
gaps_in = 6
gaps_out = 10
border_size = 1
col.active_border = rgb(ffffff)
col.inactive_border = rgb(1a1a1a)
allow_tearing = false
}
################
# Master layout
################
master {
new_status = master
mfact = 0.55
inherit_fullscreen = true
}
################
# Decoration
################
decoration {
rounding = 0
blur {
enabled = false
}
}
################
# Animations
################
animations {
enabled = yes
bezier = easeOut, 0.16, 1, 0.3, 1
animation = windows,1,4,easeOut
animation = fade,1,4,easeOut
animation = workspaces,1,4,easeOut
}
################
# Misc
################
misc {
disable_hyprland_logo = true
disable_splash_rendering = true
}
################
# Window rules
################
windowrulev2 = opacity 0.96 0.96,class:^(Alacritty)$
windowrulev2 = float,class:^(Rofi)$
################
# Keybinds
################
# Terminal
bind = $mod, Return, exec, $terminal
# Launcher
bind = $mod, D, exec, $menu
# Powermenu
bind = $mod, Escape, exec, $powermenu
# Exit Hyprland (default)
bind = $mod SHIFT, E, exit
# Close window
bind = $mod, Q, killactive
# Fullscreen
bind = $mod, F, fullscreen, 1
# Floating
bind = $mod, Space, togglefloating
################
# Focus movement
################
bind = $mod, H, movefocus, l
bind = $mod, L, movefocus, r
bind = $mod, K, movefocus, u
bind = $mod, J, movefocus, d
################
# Master navigation
################
bind = $mod, J, layoutmsg, cyclenext
bind = $mod, K, layoutmsg, cycleprev
################
# Workspaces
################
bind = $mod, 1, workspace, 1
bind = $mod, 2, workspace, 2
bind = $mod, 3, workspace, 3
bind = $mod, 4, workspace, 4
bind = $mod, 5, workspace, 5
bind = $mod SHIFT, 1, movetoworkspace, 1
bind = $mod SHIFT, 2, movetoworkspace, 2
bind = $mod SHIFT, 3, movetoworkspace, 3
bind = $mod SHIFT, 4, movetoworkspace, 4
bind = $mod SHIFT, 5, movetoworkspace, 5

View File

@@ -0,0 +1,4 @@
preload = ~/Pictures/wallpapers/gargantua-black-hyprland.png
wallpaper = ,~/Pictures/wallpapers/gargantua-black-hyprland.png
splash = false
ipc = on

View File

@@ -0,0 +1,146 @@
{
"layer": "top",
"position": "top",
"height": 28,
"spacing": 4,
"modules-left": [
"hyprland/workspaces"
],
"modules-center": [
"custom/music"
],
"modules-right": [
"temperature",
"memory",
"cpu",
//"pulseaudio",
"backlight",
"network",
"bluetooth",
"battery",
"clock",
"custom/powermenu",
"tray"
],
"hyprland/workspaces": {
"disable-scroll": true,
"all-outputs": true,
"format": "{name}",
"on-click": "activate",
"persistent-workspaces": {
"*": [1, 2, 3, 4, 5]
}
},
"backlight": {
"device": "intel_backlight",
"on-scroll-up": "light -A 5",
"on-scroll-down": "light -U 5",
"format": "{percent}% {icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""]
},
"pulseaudio": {
"scroll-step": 1,
"format": "{volume}% {icon}",
"format-muted": "mute ",
"format-icons": {
"headphone": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol",
"tooltip": false
},
"battery": {
"interval": 10,
"states": {
"warning": 20,
"critical": 10
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% 󰂄",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
"format-icons": ["󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂"]
},
"clock": {
"interval": 1,
"timezone": "Europe/Rome",
"format": "{:%H:%M}",
"tooltip-format": "{:%Y %B}\n{calendar}",
"format-alt": "{:%A %d/%m/%Y}"
},
"memory": {
"interval": 1,
"format": "{percentage}% ",
"states": {
"warning": 85
}
},
"cpu": {
"interval": 1,
"format": "{usage}% ",
"tooltip": false
},
"network": {
"interval": 1,
"tooltip": true,
"format-wifi": "{icon}",
"format-ethernet": "{icon}",
"format-linked": "󰈁",
"format-icons": ["󰤟", "󰤢", "󰤥", "󰤨"],
"format-disconnected": "󰈂",
"tooltip-format": "{ifname}",
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
"tooltip-format-ethernet": "{ifname} ",
"tooltip-format-disconnected": "Disconnected",
"on-click": "nm-connection-editor"
},
"temperature": {
"critical-threshold": 80,
"format": "{temperatureC}°C ",
"tooltip": false
},
"custom/powermenu": {
"format": "",
"on-click": "~/.local/bin/powermenu",
"tooltip": false
},
"tray": {
"icon-size": 15,
"spacing": 6
},
"bluetooth": {
"format": "",
"format-connected": "{device_alias} ",
"format-connected-battery": "{device_alias} {device_battery_percentage}% ",
"format-off": "󰂲",
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%",
"on-click": "blueman-manager"
},
"custom/music": {
"format": "{}",
"return-type": "json",
"exec": "waybar-module-music"
}
}

View File

@@ -0,0 +1,107 @@
* {
border: none;
border-radius: 0;
min-height: 0;
padding: 0;
margin: 0;
font-family: "Liberation Mono", "Font Awesome 6 Free", "Font Awesome 6 Brands", monospace;
font-size: 12px;
}
window#waybar {
background: #000000;
color: #dcdcdc;
border-bottom: 1px solid #101010;
}
/* blocchi principali */
#workspaces,
#custom-music,
#temperature,
#memory,
#cpu,
#pulseaudio,
#backlight,
#network,
#bluetooth,
#battery,
#clock,
#custom-powermenu,
#tray {
font-size: 16px;
padding: 0 8px;
margin: 3px 0;
}
/* workspaces */
#workspaces {
padding-left: 10px;
}
#workspaces button {
background: transparent;
color: #6f6f6f;
padding: 0 7px;
margin: 0 2px;
border-bottom: 1px solid transparent;
}
#workspaces button:hover {
color: #dcdcdc;
background: transparent;
}
#workspaces button.active {
color: #ffffff;
border-bottom: 1px solid #ffffff;
}
#workspaces button.urgent {
color: #ffffff;
background: #0f0f0f;
}
/* centro */
#custom-music {
color: #bfbfbf;
}
/* moduli destra */
#temperature,
#memory,
#cpu,
#pulseaudio,
#backlight,
#network,
#bluetooth,
#battery {
color: #d0d0d0;
}
/* clock e power leggermente più evidenti */
#clock,
#custom-powermenu {
color: #ffffff;
}
#clock {
letter-spacing: 0.5px;
padding: 0 12px;
}
#custom-powermenu {
padding-left: 12px;
padding-right: 12px;
}
#tray {
padding-right: 12px;
}
/* tooltip */
tooltip {
background: #000000;
border: 1px solid #ffffff;
color: #e6e6e6;
padding: 10px;
}