feat: ralph, waybar, formatted

This commit is contained in:
jackjohn7 2026-03-28 18:35:54 -05:00
parent 774daebdff
commit 1eb01464e1
38 changed files with 1913 additions and 609 deletions

View file

@ -1,60 +1,75 @@
{ self, inputs, ... }: {
flake.nixosModules.hyprland = { pkgs, lib, config, ... }: {
imports = [ self.nixosModules.cursors ];
options.hyprland-users = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = "List of users to configure hyprland for";
};
config = {
# System-level configuration
programs.hyprland.enable = true;
environment.systemPackages = with pkgs; [
waybar
hyprpaper
wofi
kitty
firefox
dolphin
wl-clipboard
brightnessctl
playerctl
grim
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
gnome-keyring
seahorse
{ self, inputs, ... }:
{
flake.nixosModules.hyprland =
{
pkgs,
lib,
config,
...
}:
{
imports = [
self.nixosModules.cursors
self.nixosModules.waybar
self.nixosModules.wallpapers
];
services.gnome.gnome-keyring.enable = true;
services.dbus.packages = [ pkgs.gnome-keyring pkgs.gcr ];
programs.seahorse.enable = true;
options.hyprland-users = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = "List of users to configure hyprland for";
};
xdg.portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-hyprland
config = {
# System-level configuration
programs.hyprland.enable = true;
environment.systemPackages = with pkgs; [
waybar
hyprpaper
wofi
kitty
firefox
wl-clipboard
brightnessctl
playerctl
grim
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
gnome-keyring
seahorse
flameshot
];
configPackages = [ pkgs.xdg-desktop-portal-gnome ];
};
# Configure hjem for specified users
hjem = lib.mkIf (config.hyprland-users != []) {
users = lib.genAttrs config.hyprland-users (username: {
services.gnome.gnome-keyring.enable = true;
services.dbus.packages = [
pkgs.gnome-keyring
pkgs.gcr
];
programs.seahorse.enable = true;
xdg.portal = {
enable = true;
files = {
".config/hypr/hyprland.conf".source = ./hyprland.conf;
".config/hypr/hyprpaper.conf".source = ./hyprpaper.conf;
};
});
};
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-hyprland
];
configPackages = [ pkgs.xdg-desktop-portal-gnome ];
};
# Enable cursors for hyprland users
cursor-users = lib.mkDefault config.hyprland-users;
# Configure hjem for specified users
hjem = lib.mkIf (config.hyprland-users != [ ]) {
users = lib.genAttrs config.hyprland-users (username: {
enable = true;
files = {
".config/hypr/hyprland.conf".source = ./hyprland.conf;
".config/hypr/hyprpaper.conf".source = ./hyprpaper.conf;
};
});
};
# Enable cursors for hyprland users
cursor-users = lib.mkDefault config.hyprland-users;
};
};
};
}

View file

@ -32,7 +32,7 @@ $menu = wofi --show drun
# exec-once = $terminal
# exec-once = nm-applet &
exec-once = hyprctl setcursor Bibata-Modern-Ice 24
exec-once = waybar & hyprpaper
exec-once = waybar & flameshot & hyprpaper
# This exports the necessary variables for Electron to find the Keyring
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
# This starts the daemon and makes it the "Secret Service" provider
@ -197,9 +197,9 @@ input {
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
# gestures {
# workspace_swipe = false
# }
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
@ -291,11 +291,35 @@ bindl = , XF86AudioPrev, exec, playerctl previous
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule
windowrulev2 = workspace 2, class:^(firefox)$
windowrulev2 = workspace 4, class:^(vesktop)$
windowrule {
name = firefox-on-w2
match:class = ^(firefox)$
workspace = 2
}
windowrule {
name = vesktop-on-w4
match:class = ^(vesktop)$
workspace = 4
}
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
windowrule {
# Ignore maximize requests from all apps. You'll probably like this.
name = suppress-maximize-events
match:class = .*
suppress_event = maximize
}
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
windowrule {
# Fix some dragging issues with XWayland
name = fix-xwayland-drags
match:class = ^$
match:title = ^$
match:xwayland = true
match:float = true
match:fullscreen = false
match:pin = false
no_focus = true
}