summaryrefslogtreecommitdiff
path: root/hosts/local/niri.nix
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-10-22 14:02:16 +0700
committerpolwex <polwex@sortug.com>2025-10-22 14:02:16 +0700
commit21adca7e6d8f8233ac8d6c00c7be43dc026e8cc5 (patch)
tree1fffcd2c077af786ec4f28f1109a5d426295a398 /hosts/local/niri.nix
parent4bb8dd864cf5077018327d6f55058b87def03d45 (diff)
parentf11a2b69c2fb5ef6111af107deba37114f7ab2ff (diff)
Merge branch 'fw'
Diffstat (limited to 'hosts/local/niri.nix')
-rw-r--r--hosts/local/niri.nix224
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;
+}