??
This commit is contained in:
95
modules/hyprland.nix
Normal file
95
modules/hyprland.nix
Normal file
@@ -0,0 +1,95 @@
|
||||
{ config, pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
enableHidpi = true;
|
||||
};
|
||||
|
||||
# Environment variables for Wayland
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
|
||||
# QT Variables
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
|
||||
|
||||
# Toolkit Backends
|
||||
GDK_BACKEND = "wayland,x11,*";
|
||||
SDL_VIDEODRIVER = "wayland";
|
||||
CLUTTER_BACKEND = "wayland";
|
||||
|
||||
# XDG Specifications
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
XDG_SESSION_DESKTOP = "Hyprland";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Core
|
||||
waybar # Status bar
|
||||
rofi-wayland # App launcher
|
||||
swaynotificationcenter # Notifications
|
||||
libnotify # Notification library
|
||||
|
||||
# Theming & Wallpaper
|
||||
swww # Wallpaper daemon
|
||||
hyprcursor # Cursor theme manager
|
||||
|
||||
# Utilities
|
||||
wl-clipboard # Clipboard manager
|
||||
cliphist # Clipboard history
|
||||
grim # Screenshot tool
|
||||
slurp # Region selector
|
||||
swappy # Screenshot editor
|
||||
hyprpicker # Color picker
|
||||
|
||||
# System Management
|
||||
hypridle # Idle daemon
|
||||
hyprlock # Screen locker
|
||||
wlogout # Logout menu
|
||||
|
||||
# Audio
|
||||
pamixer
|
||||
playerctl
|
||||
|
||||
# File Management
|
||||
# (Dolphin or Nautilus usually handled by user preference, keeping system clean)
|
||||
|
||||
# Polkit Agent
|
||||
polkit_gnome
|
||||
];
|
||||
|
||||
# Security / Polkit
|
||||
security.polkit.enable = true;
|
||||
|
||||
systemd.user.services.polkit-gnome-authentication-agent-1 = {
|
||||
description = "polkit-gnome-authentication-agent-1";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
wants = [ "graphical-session.target" ];
|
||||
after = [ "graphical-session.target" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 1;
|
||||
TimeoutStopSec = 10;
|
||||
};
|
||||
};
|
||||
|
||||
# Portals
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -52,12 +52,6 @@ in
|
||||
impression
|
||||
streamcontroller
|
||||
onlyoffice-desktopeditors
|
||||
|
||||
# Gnome Extensions
|
||||
gnomeExtensions.blur-my-shell
|
||||
gnomeExtensions.just-perfection
|
||||
gnomeExtensions.arc-menu
|
||||
gnomeExtensions.appindicator
|
||||
];
|
||||
|
||||
# Programs with extra configuration
|
||||
|
||||
60
modules/stylix.nix
Normal file
60
modules/stylix.nix
Normal file
@@ -0,0 +1,60 @@
|
||||
{ config, pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
stylix = {
|
||||
enable = true;
|
||||
|
||||
# Set the wallpaper
|
||||
image = ../assets/wallpapers/japantrain.png;
|
||||
|
||||
# Set the color scheme (dark mode)
|
||||
polarity = "dark";
|
||||
|
||||
# Optionally force a specific scheme instead of generating from image
|
||||
# base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||
|
||||
cursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Ice";
|
||||
size = 24;
|
||||
};
|
||||
|
||||
fonts = {
|
||||
monospace = {
|
||||
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||
name = "JetBrainsMono Nerd Font Mono";
|
||||
};
|
||||
sansSerif = {
|
||||
package = pkgs.dejavu_fonts;
|
||||
name = "DejaVu Sans";
|
||||
};
|
||||
serif = {
|
||||
package = pkgs.dejavu_fonts;
|
||||
name = "DejaVu Serif";
|
||||
};
|
||||
|
||||
sizes = {
|
||||
applications = 12;
|
||||
terminal = 15;
|
||||
desktop = 10;
|
||||
popups = 10;
|
||||
};
|
||||
};
|
||||
|
||||
# Opacity for various applications
|
||||
opacity = {
|
||||
applications = 1.0;
|
||||
terminal = 0.95;
|
||||
desktop = 1.0;
|
||||
popups = 1.0;
|
||||
};
|
||||
|
||||
# Configure which targets Stylix should manage
|
||||
targets = {
|
||||
console.enable = true;
|
||||
gnome.enable = true;
|
||||
gtk.enable = true;
|
||||
nixos-icons.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user