diff options
| author | polwex <polwex@sortug.com> | 2025-10-22 13:59:25 +0700 |
|---|---|---|
| committer | polwex <polwex@sortug.com> | 2025-10-22 13:59:25 +0700 |
| commit | f11a2b69c2fb5ef6111af107deba37114f7ab2ff (patch) | |
| tree | d259b7df857c63011dea9e47191c338eaabe9746 /hosts/local/niri.nix | |
| parent | 0983b8509b5595c8214f0df9264ccfb34af50ad7 (diff) | |
niri on fwfw
Diffstat (limited to 'hosts/local/niri.nix')
| -rw-r--r-- | hosts/local/niri.nix | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/hosts/local/niri.nix b/hosts/local/niri.nix new file mode 100644 index 0000000..7db141e --- /dev/null +++ b/hosts/local/niri.nix @@ -0,0 +1,224 @@ +{ + 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 + 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; [ + quickshell + cosmic-panel + fuzzel + # + cliphist + hypridle + hyprlock + networkmanagerapplet + playerctl + qalculate-gtk + swaynotificationcenter + swayosd + syncthingtray + wl-clipboard + wl-clip-persist + wl-color-picker + wofi-power-menu + + # 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 # cool 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 + ]; + 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; +} |
