{ inputs, pkgs, ... }: { # nixpkgs.overlays = [ # inputs.nixpkgs-wayland.overlay # ]; nixpkgs.config.packageOVerrides = pkgs: { intel-vaapi-driver = pkgs.intel-vaapi-driver.override {enableHybridCodec = true;}; vaapiIntel = pkgs.vaapiIntel.override {enableHybridCodec = true;}; }; hardware.graphics = { enable = true; enable32Bit = true; extraPackages = [ pkgs.mesa pkgs.vaapiVdpau pkgs.libvdpau-va-gl ]; }; programs.niri = { enable = true; }; environment.variables = { WLR_NO_HARDWARE_CURSOR = "1"; }; environment.sessionVariables = { WLR_NO_HARDWARE_CURSOR = "1"; NIXOS_OZONE_WL = "1"; SDL_VIDEODRIVER = "wayland"; QT_QPA_PLATFORM = "wayland"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; _JAVA_AWT_WM_NONREPARENTING = "1"; MOZ_ENABLE_WAYLAND = "1"; # GTK_IM_MODULE = "fcitx"; # QT_IM_MODULE = "fcitx"; # SDL_IM_MODULE = "fcitx"; XDG_CURRENT_DESKTOP = "sway"; GDK_BACKEND = "wayland"; XDG_SESSION_TYPE = "wayland"; XMODIFIERS = "@im=fcitx"; }; xdg.portal = { enable = true; extraPortals = with pkgs; [ # xdg-desktop-portal-hyprland # xdg-desktop-portal-cosmic xdg-desktop-portal-gtk xdg-desktop-portal-gnome ]; config = { common = { default = [ "gnome" "gtk" ]; "org.freedesktop.impl.portal.Access" = ["gtk"]; "org.freedesktop.impl.portal.Notification" = ["gtk"]; "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"]; "org.freedesktop.impl.portal.FileChooser" = ["gtk"]; }; }; }; environment.systemPackages = with pkgs; [ # niri specific # xwayland xwayland-satellite # not used if using dank # quickshell fuzzel # hypridle # hyprlock # cliphist # # networkmanagerapplet # playerctl # qalculate-gtk # swaynotificationcenter # swayosd # syncthingtray # wl-clipboard # wl-clip-persist # wl-color-picker # wofi-power-menu # # cosmic-panel # xdg-utils # xdg-desktop-portal # xdg-desktop-portal-wlr # xdg-desktop-portal-gtk # # calibre # # nyxt # wofi # imv # swaylock # brightnessctl # swayidle # foot # mako # kanshi # grim # slurp # wl-clipboard # wf-recorder # viewnior # playerctl # blueman # wdisplays # inputs.waybar.packages.x86_64-linux.default # glxinfo # vulkan-tools # glmark2 # intel-media-driver # intel-vaapi-driver # pavucontrol # # icons # polkit_gnome # gnome-themes-extra # gtk-engine-murrine # gtk_engines # gsettings-desktop-schemas # lxappearance adwaita-qt adwaita-icon-theme # libcamera # pipewire seems to want this # easyeffects # tigervnc # foliate # # code # kdePackages.kompare # meld # # tmp # # browser TTS # # speechd # # espeak-ng # # espeak-ng-data wineWowPackages.waylandFull libcamera # pipewire seems to want this # tracy # colinuxol system watcher ]; services.speechd.enable = true; # cjk input i18n.inputMethod = { type = "fcitx5"; enable = true; fcitx5 = { # enabled = true; addons = with pkgs; [ rime-data fcitx5-rime fcitx5-mozc fcitx5-configtool fcitx5-chinese-addons fcitx5-gtk libsForQt5.fcitx5-qt ]; waylandFrontend = true; }; }; services.xserver.desktopManager.runXdgAutostartIfNone = true; fonts = { enableDefaultPackages = true; fontconfig = { defaultFonts.emoji = ["Noto Color Emoji"]; defaultFonts.monospace = ["Hack" "Sarasa Mono SC"]; defaultFonts.sansSerif = ["DejaVu Sans"]; defaultFonts.serif = ["DejaVu Serif" "Source Han Serif SC"]; }; packages = with pkgs; [ fira-code fira cooper-hewitt ibm-plex jetbrains-mono iosevka spleen fira-code-symbols powerline-fonts arphic-ukai arphic-uming dejavu_fonts font-awesome inconsolata # monospaced noto-fonts noto-fonts-cjk-sans noto-fonts-emoji noto-fonts-extra powerline-fonts source-han-sans-japanese source-han-sans-korean source-han-sans-simplified-chinese source-han-sans-traditional-chinese source-sans-pro ubuntu_font_family wqy_microhei wqy_zenhei ] ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); }; # screen capture # services.dbus.enable = true; ## Remove sound.enable or set it to false if you had it set previously, as sound.enable is only meant for ALSA-based configurations # rtkit is optional but recommended security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; wireplumber.enable = true; # If you want to use JACK applications, uncomment this jack.enable = true; }; # pipewire requires these off # sound.enable = true; # hardware.pulseaudio.enable = true; # hardware.bluetooth.enable = true; }