mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-03-23 09:51:34 +01:00
90 lines
2.4 KiB
Nix
90 lines
2.4 KiB
Nix
{pkgs, ...}:
|
|
|
|
|
|
{
|
|
# i3wm: old and stable, only support X11
|
|
# sway: compatible with i3wm, support Wayland. do not support Nvidia GPU officially.
|
|
# hyprland: project starts from 2022, support Wayland, envolving fast, good looking, support Nvidia GPU.
|
|
|
|
environment.pathsToLink = [ "/libexec" ]; # links /libexec from derivations to /run/current-system/sw
|
|
services.xserver = {
|
|
enable = true;
|
|
|
|
desktopManager = {
|
|
xterm.enable = false;
|
|
};
|
|
|
|
displayManager = {
|
|
defaultSession = "hyprland";
|
|
lightdm.enable = false;
|
|
gdm = {
|
|
enable = true;
|
|
wayland = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
programs.hyprland = {
|
|
enable = true;
|
|
|
|
xwayland = {
|
|
enable = true;
|
|
hidpi = true;
|
|
};
|
|
|
|
nvidiaPatches = true;
|
|
};
|
|
programs.light.enable = true; # monitor backlight control
|
|
|
|
|
|
# thunar file manager(part of xfce) related options
|
|
programs.thunar.plugins = with pkgs.xfce; [
|
|
thunar-archive-plugin
|
|
thunar-volman
|
|
];
|
|
services.gvfs.enable = true; # Mount, trash, and other functionalities
|
|
services.tumbler.enable = true; # Thumbnail support for images
|
|
|
|
# List packages installed in system profile. To search, run:
|
|
# $ nix search wget
|
|
environment.systemPackages = with pkgs; [
|
|
waybar # the status bar
|
|
swaybg # the wallpaper
|
|
swayidle # the idle timeout
|
|
swaylock # locking the screen
|
|
wlogout # logout menu
|
|
wl-clipboard # copying and pasting
|
|
|
|
wf-recorder # creen recording
|
|
grim # taking screenshots
|
|
slurp # selecting a region to screenshot
|
|
# TODO replace by `flameshot gui --raw | wl-copy`
|
|
|
|
wofi # A rofi inspired launcher for wlroots compositors such as sway/hyprland
|
|
mako # the notification daemon, the same as dunst
|
|
|
|
yad # a fork of zenity, for creating dialogs
|
|
|
|
# 用于播放系统音效
|
|
mpd # for playing system sounds
|
|
mpc-cli # command-line mpd client
|
|
ncmpcpp # a mpd client with a UI
|
|
networkmanagerapplet # provide GUI app: nm-connection-editor
|
|
];
|
|
|
|
xdg.portal = {
|
|
enable = true;
|
|
wlr.enable = true;
|
|
xdgOpenUsePortal = true;
|
|
extraPortals = with pkgs; [
|
|
xdg-desktop-portal-wlr # for wlroots based compositors
|
|
xdg-desktop-portal-gtk # for gtk
|
|
# xdg-desktop-portal-kde # for kde
|
|
];
|
|
};
|
|
|
|
# for power management
|
|
services.upower.enable = true;
|
|
|
|
}
|