summaryrefslogtreecommitdiff
path: root/hosts/local/wayland.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/local/wayland.nix')
-rw-r--r--hosts/local/wayland.nix188
1 files changed, 188 insertions, 0 deletions
diff --git a/hosts/local/wayland.nix b/hosts/local/wayland.nix
new file mode 100644
index 0000000..c94a1dc
--- /dev/null
+++ b/hosts/local/wayland.nix
@@ -0,0 +1,188 @@
+{pkgs, ...}: {
+ hardware.graphics = {
+ enable = true;
+ enable32Bit = true;
+ extraPackages = [
+ pkgs.mesa.drivers
+ pkgs.vaapiIntel
+ pkgs.vaapiVdpau
+ pkgs.libvdpau-va-gl
+ pkgs.intel-media-driver
+ ];
+ };
+ programs.sway = {
+ enable = true;
+ wrapperFeatures.gtk = true;
+ extraOptions = ["--verbose" "--debug"];
+ extraPackages = with pkgs; [
+ xdg-utils
+ xdg-desktop-portal
+ xdg-desktop-portal-wlr
+ xdg-desktop-portal-gtk
+ alacritty
+ calibre
+ # nyxt
+ wofi
+ imv
+ swaylock
+ brightnessctl
+ swayidle
+ foot
+ (waybar.override {
+ wireplumberSupport = false;
+ })
+ mako
+ kanshi
+ grim
+ slurp
+ wl-clipboard
+ wf-recorder
+ viewnior
+ playerctl
+ blueman
+ wdisplays
+ ];
+ extraSessionCommands = ''
+ '';
+ };
+ # environment.loginShellInit = ''
+ # if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
+ # exec swayc
+ # fi
+ #'';
+
+ environment.sessionVariables = {
+ 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; [
+ obsidian
+ signal-desktop
+ tdesktop
+ brave
+ gimp
+ vlc
+ mpv
+ celluloid
+ thunderbird
+ kmail
+ firefox
+ chromium
+ 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
+ grapejuice
+ dosbox
+ ];
+
+ # cjk input
+ i18n = {
+ inputMethod = {
+ type = "fcitx5";
+ fcitx5 = {
+ # enabled = true;
+ addons = with pkgs; [fcitx5-rime fcitx5-mozc];
+ waylandFrontend = 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
+ nerdfonts
+ arphic-ukai
+ arphic-uming
+ dejavu_fonts
+ font-awesome
+ inconsolata # monospaced
+ noto-fonts
+ noto-fonts-cjk
+ 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
+ ];
+ };
+
+ # 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;
+}