mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-08-21 10:45:49 +02:00
Waybar here i come (#58)
This commit is contained in:
@@ -6,13 +6,9 @@
|
||||
then "4"
|
||||
else if animationSpeed == "medium"
|
||||
then "2.5"
|
||||
else "1.5";
|
||||
borderDuration =
|
||||
if animationSpeed == "slow"
|
||||
then "10"
|
||||
else if animationSpeed == "medium"
|
||||
then "6"
|
||||
else "3";
|
||||
else if animationSpeed == "fast"
|
||||
then "1.5"
|
||||
else "0.5";
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
animations = {
|
||||
@@ -38,7 +34,7 @@ in {
|
||||
"windows, 1, ${animationDuration}, md3_decel, popin 60%"
|
||||
"windowsIn, 1, ${animationDuration}, md3_decel, popin 60%"
|
||||
"windowsOut, 1, ${animationDuration}, md3_accel, popin 60%"
|
||||
"border, 1, ${borderDuration}, default"
|
||||
"border, 1, ${animationDuration}, default"
|
||||
"fade, 1, ${animationDuration}, md3_decel"
|
||||
"layersIn, 1, ${animationDuration}, menu_decel, slide"
|
||||
"layersOut, 1, ${animationDuration}, menu_accel"
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
...
|
||||
}: let
|
||||
colors = config.lib.stylix.colors;
|
||||
scripts = import ../waybar/scripts.nix {inherit pkgs config;};
|
||||
|
||||
mkMenu = menu: let
|
||||
configFile = pkgs.writeText "config.yaml" (
|
||||
@@ -91,14 +92,13 @@ in {
|
||||
"$mod,B, exec, uwsm app -- ${config.programs.helium.package}/bin/helium" # Browser
|
||||
|
||||
# Power
|
||||
"$mod, X, global, caelestia:session" # Powermenu
|
||||
(
|
||||
"$shiftMod, X, exec, "
|
||||
"$mod, X, exec, "
|
||||
+ lib.getExe (mkMenu [
|
||||
{
|
||||
key = "l";
|
||||
desc = "Lock";
|
||||
cmd = "hyprctl dispatch global caelestia:lock";
|
||||
cmd = "${pkgs.hyprlock}/bin/hyprlock";
|
||||
}
|
||||
{
|
||||
key = "s";
|
||||
@@ -115,31 +115,20 @@ in {
|
||||
desc = "Power Off";
|
||||
cmd = "systemctl poweroff";
|
||||
}
|
||||
{
|
||||
key = "n";
|
||||
desc = "Nightshift";
|
||||
cmd = "nightshift-toggle";
|
||||
}
|
||||
{
|
||||
key = "c";
|
||||
desc = "Restart caelestia";
|
||||
cmd = "hyprctl dispatch exec 'caelestia-shell kill | sleep 1 | caelestia-shell'";
|
||||
}
|
||||
])
|
||||
)
|
||||
|
||||
# Quick launch
|
||||
"$mod,RETURN, exec, uwsm app -- ${pkgs.ghostty}/bin/ghostty" # Ghostty (terminal)
|
||||
"$mod,E, exec, uwsm app -- ${pkgs.thunar}/bin/thunar" # Thunar
|
||||
"$shiftMod, E, exec, pkill fuzzel || caelestia emoji -p" # Emoji picker
|
||||
"$mod, SPACE, global, caelestia:launcher" # Launcher
|
||||
"$mod, N, exec, caelestia shell drawers toggle sidebar" # Sidebar (Notifications, quick actions)
|
||||
"$mod, D, exec, caelestia shell drawers toggle dashboard" # Dashboard
|
||||
"$mod,RETURN, exec, ${pkgs.ghostty}/bin/ghostty +new-window" # Ghostty (terminal, via daemon D-Bus)
|
||||
"$mod,E, exec, ${pkgs.ghostty}/bin/ghostty +new-window -e elio" # Elio
|
||||
"$mod, SPACE, exec, ${pkgs.tofi}/bin/tofi-drun" # Launcher
|
||||
"$mod, N, exec, ${pkgs.swaynotificationcenter}/bin/swaync-client -t" # Notification center
|
||||
|
||||
# Windows
|
||||
"$mod,Q, killactive," # Close window
|
||||
"$mod,F, fullscreen" # Toggle Fullscreen
|
||||
"$shiftMod,F, togglefloating," # Toggle Floating
|
||||
"$shiftMod, SPACE, exec, ${scripts.focus-toggle}/bin/focus-toggle" # Toggle focus mode
|
||||
|
||||
# Focus Windows
|
||||
"$mod,H, movefocus, l" # Move focus left
|
||||
@@ -151,11 +140,13 @@ in {
|
||||
"$shiftMod,K, layoutmsg, addmaster" # Add to master
|
||||
"$shiftMod,L, focusmonitor, 1" # Focus next monitor
|
||||
|
||||
# Special workspaces
|
||||
"$mod, S, togglespecialworkspace, scratch" # Toggle scratch workspace
|
||||
"$shiftMod, S, movetoworkspace, special:scratch" # Move to scratch workspace
|
||||
|
||||
# Utilities
|
||||
"$shiftMod, SPACE, exec, caelestia shell gameMode toggle" # Toggle Focus/Game mode
|
||||
"$shiftMod, S, global, caelestia:screenshotFreeze" # Capture region (freeze)
|
||||
", Print, global, caelestia:screenshotFreeze" # Capture region (freeze)
|
||||
"$shiftMod+Alt, S, global, caelestia:screenshot" # Capture region
|
||||
", Print, exec, ${pkgs.hyprshot}/bin/hyprshot -m region" # Capture region
|
||||
"$shiftMod, Print, exec, ${pkgs.hyprshot}/bin/hyprshot -m output" # Capture screen
|
||||
]
|
||||
++ (builtins.concatLists (
|
||||
builtins.genList (
|
||||
@@ -176,32 +167,21 @@ in {
|
||||
|
||||
bindl = [
|
||||
# Brightness
|
||||
", XF86MonBrightnessUp, global, caelestia:brightnessUp"
|
||||
", XF86MonBrightnessDown, global, caelestia:brightnessDown"
|
||||
", XF86MonBrightnessUp, exec, ${scripts.bright-up}/bin/bright-up"
|
||||
", XF86MonBrightnessDown, exec, ${scripts.bright-down}/bin/bright-down"
|
||||
|
||||
# Media
|
||||
", XF86AudioPlay, global, caelestia:mediaToggle"
|
||||
", XF86AudioPause, global, caelestia:mediaToggle"
|
||||
", XF86AudioNext, global, caelestia:mediaNext"
|
||||
", XF86AudioPrev, global, caelestia:mediaPrev"
|
||||
", XF86AudioStop, global, caelestia:mediaStop"
|
||||
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
|
||||
", XF86AudioPause, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
|
||||
", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next"
|
||||
", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous"
|
||||
", XF86AudioStop, exec, ${pkgs.playerctl}/bin/playerctl stop"
|
||||
|
||||
# Sound
|
||||
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
", XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
", XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
];
|
||||
|
||||
bindin = [
|
||||
# Launcher
|
||||
"$mod, mouse:272, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:273, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:274, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:275, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:276, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:277, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse_up, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse_down, global, caelestia:launcherInterrupt"
|
||||
", XF86AudioMute, exec, ${scripts.vol-mute}/bin/vol-mute"
|
||||
", XF86AudioRaiseVolume, exec, ${scripts.vol-up}/bin/vol-up"
|
||||
", XF86AudioLowerVolume, exec, ${scripts.vol-down}/bin/vol-down"
|
||||
", XF86AudioMicMute, exec, ${scripts.mic-mute}/bin/mic-mute"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# Hyprland is a dynamic tiling Wayland compositor that is highly customizable and performant.
|
||||
{
|
||||
pkgs-unstable,
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
@@ -19,51 +20,52 @@ in {
|
||||
./animations.nix
|
||||
./bindings.nix
|
||||
./polkitagent.nix
|
||||
./keyboard-backlight.nix # CHANGEME: This is for omen laptop only
|
||||
./hyprpaper.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
qt5.qtwayland
|
||||
qt6.qtwayland
|
||||
libsForQt5.qt5ct
|
||||
qt6Packages.qt6ct
|
||||
xcb-util-cursor
|
||||
libxcb
|
||||
hyprland-qtutils
|
||||
adw-gtk3
|
||||
hyprshot
|
||||
hyprpicker
|
||||
swappy
|
||||
imv
|
||||
wf-recorder
|
||||
wlr-randr
|
||||
brightnessctl
|
||||
gnome-themes-extra
|
||||
dconf
|
||||
wayland-utils
|
||||
wayland-protocols
|
||||
];
|
||||
home.packages =
|
||||
(with pkgs-unstable; [
|
||||
qt5.qtwayland
|
||||
qt6.qtwayland
|
||||
hyprland-qtutils
|
||||
])
|
||||
++ (with pkgs; [
|
||||
libsForQt5.qt5ct
|
||||
qt6Packages.qt6ct
|
||||
xcb-util-cursor
|
||||
papirus-icon-theme
|
||||
material-icons
|
||||
material-design-icons
|
||||
material-symbols
|
||||
libxcb
|
||||
adw-gtk3
|
||||
hyprshot
|
||||
hyprpicker
|
||||
satty
|
||||
imv
|
||||
wf-recorder
|
||||
brightnessctl
|
||||
gnome-themes-extra
|
||||
dconf
|
||||
wayland-utils
|
||||
wayland-protocols
|
||||
]);
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
configType = "hyprlang";
|
||||
xwayland.enable = true;
|
||||
systemd = {
|
||||
enable = false;
|
||||
variables = [
|
||||
"--all"
|
||||
]; # https://wiki.hyprland.org/Nix/Hyprland-on-Home-Manager/#programs-dont-work-in-systemd-services-but-do-on-the-terminal
|
||||
};
|
||||
systemd.enable = false;
|
||||
package = null;
|
||||
portalPackage = null;
|
||||
|
||||
settings = {
|
||||
exec-once = [
|
||||
"dbus-update-activation-environment --systemd --all &"
|
||||
monitor = [
|
||||
",preferred,auto,1" # default
|
||||
];
|
||||
|
||||
monitor = [
|
||||
",prefered,auto,1" # default
|
||||
exec-once = [
|
||||
"systemctl --user start app-com.mitchellh.ghostty.service"
|
||||
];
|
||||
|
||||
env = [
|
||||
@@ -84,7 +86,6 @@ in {
|
||||
|
||||
cursor = {
|
||||
no_hardware_cursors = true;
|
||||
default_monitor = "eDP-2";
|
||||
};
|
||||
|
||||
general = {
|
||||
@@ -122,6 +123,11 @@ in {
|
||||
|
||||
gesture = "3, horizontal, workspace";
|
||||
|
||||
layerrule = [
|
||||
"match:namespace launcher, animation popin 70%"
|
||||
"match:namespace swaync-control-center, animation slide right"
|
||||
];
|
||||
|
||||
windowrule = [
|
||||
"match:class .*, suppress_event maximize"
|
||||
"match:class helium, suppress_event fullscreen"
|
||||
@@ -168,4 +174,20 @@ in {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
qt.enable = true;
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
XDG_ICON_DIR = "${pkgs.papirus-icon-theme}/share/icons/Papirus";
|
||||
QS_ICON_THEME = "Papirus";
|
||||
QT_STYLE_OVERRIDE = lib.mkForce "Fusion";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# Hyprpaper is used to set the wallpaper on the system
|
||||
{lib, ...}: {
|
||||
# The wallpaper is set by stylix
|
||||
services.hyprpaper = {
|
||||
enable = true;
|
||||
settings = {
|
||||
ipc = "on";
|
||||
splash = false;
|
||||
};
|
||||
};
|
||||
systemd.user.services.hyprpaper.Unit.After = lib.mkForce "graphical-session.target";
|
||||
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
"systemctl --user enable --now hyprpaper.service"
|
||||
];
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
# Turn the keyboard red/off when the battery is low
|
||||
# Include this one only if you have a omen laptop with RGB keyboard
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
alert-when-low-battery = false;
|
||||
keyboard-backlight = pkgs.writeShellScriptBin "keyboard-backlight" ''
|
||||
function set_keyboard_backlight {
|
||||
local color=$1
|
||||
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone00
|
||||
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone01
|
||||
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone02
|
||||
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone03
|
||||
}
|
||||
state="white"
|
||||
set_keyboard_backlight ${config.lib.stylix.colors.base0D}
|
||||
if [ "${toString alert-when-low-battery}" = "false" ]; then
|
||||
exit 0
|
||||
fi
|
||||
while true; do
|
||||
BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity)
|
||||
IS_CHARGING=$(cat /sys/class/power_supply/BAT*/status)
|
||||
if [[ $BATTERY_LEVEL -le 10 && $IS_CHARGING != "Charging" ]]; then
|
||||
if [[ $state == "red" ]];then
|
||||
state="white"
|
||||
set_keyboard_backlight "000000"
|
||||
else
|
||||
state="red"
|
||||
set_keyboard_backlight "FF0000"
|
||||
fi
|
||||
else
|
||||
state="white"
|
||||
set_keyboard_backlight ${config.lib.stylix.colors.base0D}
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
'';
|
||||
|
||||
command = "bash ${keyboard-backlight}/bin/keyboard-backlight &";
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings.exec-once = [command];
|
||||
}
|
||||
Reference in New Issue
Block a user