{ inputs, pkgs, ... }: { 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.drivers pkgs.vaapiVdpau pkgs.libvdpau-va-gl ]; }; programs.sway = { enable = true; wrapperFeatures.gtk = true; extraOptions = ["unsupported-gpu" "--verbose" "--debug"]; extraPackages = with pkgs; [ 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.nixpkgs-wayland.packages.x86_64-linux.waybar glxinfo vulkan-tools glmark2 ]; extraSessionCommands = '' ''; }; # environment.loginShellInit = '' # if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then # exec swayc # fi #''; 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"; }; environment.systemPackages = with pkgs; [ intel-media-driver intel-vaapi-driver obsidian signal-desktop tdesktop gimp vlc mpv celluloid thunderbird kmail firefox pavucontrol # icons polkit_gnome gnome-themes-extra gtk-engine-murrine gtk_engines gsettings-desktop-schemas lxappearance adwaita-qt adwaita-icon-theme xfce.thunar libreoffice qbittorrent zathura # libcamera # pipewire seems to want this easyeffects tigervnc foliate # code kompare meld # tmp dosbox # browser TTS # speechd # espeak-ng # espeak-ng-data ghostty ]; 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 ]; 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 # xdg.portal.enable = true; xdg.portal.wlr.enable = true; 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; }