nix/nixos/common/desktops/hyprland/default.nix

159 lines
4.6 KiB
Nix
Raw Normal View History

2024-01-06 21:47:19 +09:00
{lib, inputs, pkgs, gpu, platform, theme, ...}: {
2023-08-14 22:02:45 +09:00
2023-08-27 20:06:16 +09:00
# nixpkgs = {
# overlays = [
# # https://github.com/nix-community/nixpkgs-wayland
# inputs.nixpkgs-wayland.overlay
# ];
# };
2023-08-27 19:35:58 +09:00
2024-01-05 16:10:10 +09:00
imports = [
inputs.stylix.nixosModules.stylix
2024-01-07 22:32:06 +09:00
../../../../stylix/${theme}
2024-01-05 16:10:10 +09:00
];
2024-01-04 14:39:52 +09:00
2024-01-05 11:12:52 +09:00
stylix = {
2024-01-07 22:27:38 +09:00
image = /etc/nixos/git/wallpapers/${theme}/wallpaper1.png;
2024-01-07 15:50:30 +09:00
opacity = {
desktop = 0.7;
popups = 0.7;
applications = 1.0;
terminal = 1.0;
};
2024-01-05 11:12:52 +09:00
targets = {
plymouth.enable = false;
};
autoEnable = true;
fonts = {
serif = {
package = pkgs.dejavu_fonts;
name = "DejaVu Serif";
2024-01-04 14:39:52 +09:00
};
2024-01-05 11:12:52 +09:00
sansSerif = {
package = pkgs.dejavu_fonts;
name = "DejaVu Sans";
};
2024-01-04 14:39:52 +09:00
2024-01-05 11:12:52 +09:00
monospace = {
package = pkgs.dejavu_fonts;
name = "DejaVu Sans Mono";
};
2024-01-04 14:39:52 +09:00
2024-01-05 11:12:52 +09:00
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
2024-01-04 14:39:52 +09:00
};
};
2024-01-05 11:12:52 +09:00
};
2024-01-03 22:25:06 +09:00
2023-09-23 20:40:19 +09:00
services.xserver.videoDrivers = [ ] ++ lib.optional (builtins.isString gpu) gpu;
2023-08-27 19:35:58 +09:00
2023-08-17 15:40:32 +09:00
# tuigreet
2023-08-17 15:40:02 +09:00
services.greetd = {
2023-08-15 19:41:49 +09:00
enable = true;
2023-08-17 15:40:02 +09:00
settings = {
default_session = {
2024-01-04 22:22:55 +09:00
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland";
2023-08-17 15:40:02 +09:00
user = "greeter";
2023-08-15 22:09:48 +09:00
};
2023-08-15 20:49:57 +09:00
};
2023-08-15 19:41:49 +09:00
};
2023-08-15 19:21:32 +09:00
# Brightness and volume control
# https://haikarainen.github.io/light/
2023-08-15 19:21:32 +09:00
programs.light.enable = true;
2023-08-17 16:19:29 +09:00
# PolKit for the fingerprint reader
security.polkit.enable = true;
2023-08-17 19:26:20 +09:00
# https://github.com/NixOS/nixpkgs/issues/143365
security.pam.services.swaylock = {};
2023-08-15 19:21:32 +09:00
# Enabling hyprlnd on NixOS
programs.hyprland = {
enable = true;
2023-09-27 20:19:02 +09:00
# enableNvidiaPatches = true;
xwayland.enable = true;
};
environment.sessionVariables = {
# If your cursor becomes invisible, set this to 1
2023-08-27 19:35:58 +09:00
WLR_NO_HARDWARE_CURSORS = "0";
# Hint electron apps to use wayland
NIXOS_OZONE_WL = "1";
};
2023-08-30 08:28:18 +09:00
# https://www.freedesktop.org/software/systemd/man/logind.conf.html
2023-08-26 21:31:14 +09:00
services.logind.extraConfig = ''
IdleActionSec=900
IdleAction=suspend-then-hibernate
2023-08-30 08:28:18 +09:00
HandleLidSwitch=suspend-then-hibernate
HandleLidSwitchDocked=ignore
HandleLidSwitchExternalPower=suspend
2023-08-26 21:31:14 +09:00
'';
2023-08-30 08:28:18 +09:00
# https://www.systutorials.com/docs/linux/man/5-systemd-sleep.conf/
# HibernateDelaySec is the amount of time the
# system sleeps before entering hibernate when
# using suspend-then-hibernate
2023-08-27 15:21:27 +09:00
systemd.sleep.extraConfig = ''
2024-01-05 11:12:52 +09:00
AllowSuspend=yes
2024-01-05 11:16:53 +09:00
AllowHibernation=yes
2024-01-05 11:15:27 +09:00
AllowSuspendThenHibernate=yes
2024-01-05 11:12:52 +09:00
AllowHybridSleep=yes
HibernateDelaySec=600
2023-08-27 15:21:27 +09:00
'';
2023-08-14 20:01:44 +09:00
# XDG portal
xdg.portal.enable = true;
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
# system packages
2023-08-27 20:07:09 +09:00
environment.systemPackages = [
2024-01-07 18:19:12 +09:00
pkgs.waybar # taskbar
2023-08-27 20:07:09 +09:00
pkgs.libnotify # Notification libraries
pkgs.mako # Notification daemon
pkgs.swww # Wallpaper daemon
pkgs.kitty # Terminal emulator
pkgs.rofi-wayland # App Launcher
pkgs.grim # Screenshots
pkgs.slurp # Screenshots
pkgs.wl-clipboard # Clipboard
pkgs.font-awesome # Fonts
pkgs.libinput-gestures # Gesture Control
pkgs.playerctl # Control sublime-music from waybar?
pkgs.pavucontrol # Pulse Audio Volume CONTROL
pkgs.glib # Set GTK theme settings
pkgs.greetd.tuigreet # Greeter
pkgs.swayidle # Idle management daemon - Automatic lock screen
pkgs.swayosd # used for on-screen notifications for things like adjusting backlight, volume, etc
pkgs.wlogout # Logout/shutdown/hibernate/lock screen modal UI
2023-08-27 20:07:09 +09:00
pkgs.ranger # TUI file manager
pkgs.xdg-utils # Utilities for better X/Wayland integration
pkgs.bitwarden-cli # Bitwarden for rofi
pkgs.bitwarden-menu # Bitwarden for rofi
pkgs.pulsemixer # TUI Pipewire / volume management
2023-08-28 18:13:36 +09:00
pkgs.calcurse # TUI Calendar app
pkgs.udiskie # Automatic device mounting
2024-01-07 15:21:41 +09:00
pkgs.cava # Audio visualiser
pkgs.pyradio # Internet radio TUI
2023-08-27 20:12:19 +09:00
# Themes
pkgs.gruvbox-gtk-theme # Gruvbox Theme
pkgs.papirus-icon-theme # Papirus Icons
# wayland-packages
inputs.nixpkgs-wayland.packages.${platform}.wayprompt # from nixpkgs-wayland exclusively - pinentry UI
2023-08-27 19:38:34 +09:00
];
2023-08-27 19:35:58 +09:00
# Enable sound with pipewire.
sound.enable = true;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
2023-08-24 09:56:55 +09:00
}