{ config, pkgs, ... }: let unstable = import { config = { allowUnfree = true; }; }; in { imports = [ ./graphics.nix ]; fonts.fonts = with pkgs; [ noto-fonts-emoji font-awesome ]; programs = { sway = { enable = true; extraPackages = with pkgs; [ unstable.pipewire swaylock swayidle unstable.mako unstable.libnotify waybar wl-clipboard slurp grim unstable.font-awesome unstable.xwayland unstable.kanshi unstable.gammastep ]; # TODO: this should come from the user's homedir maybe through dotfiles # somehow? home-manager? extraSessionCommands = '' systemctl --user import-environment export TERMINAL=kitty export BROWSER=firefox-devedition export WLC_REPEAT_DELAY=200 export WLC_REPEAT_RATE=60 export CLUTTER_BACKEND=wayland # export SDL_VIDEODRIVER=wayland export MOZ_ENABLE_WAYLAND=1 export XDG_SESSION_TYPE=wayland export XDG_CURRENT_DESKTOP=sway ''; }; }; services = { pipewire.enable = true; xserver = { libinput = { enable = true; tapping = true; naturalScrolling = true; disableWhileTyping = false; }; }; }; xdg.portal = { enable = true; gtkUsePortal = true; extraPortals = with pkgs; [ xdg-desktop-portal-gtk unstable.xdg-desktop-portal-wlr ]; }; }