{ config, lib, pkgs, ... }: let cfg = config.orbekk.desktop; in { options = { orbekk.desktop = { enable = lib.mkEnableOption "Enable standard desktop config"; }; }; config = lib.mkIf cfg.enable { orbekk.yubikey.enable = lib.mkDefault true; orbekk.simple-firewall.enable = true; orbekk.builder.enableRemoteBuilds = true; location.latitude = 40.0; location.longitude = -74.0; sound.enable = true; nix.gc.automatic = true; nix.gc.options = "--delete-older-than 30d"; hardware = { opengl = { enable = true; driSupport32Bit = true; extraPackages32 = with pkgs.pkgsi686Linux; [ libva ]; }; bluetooth.enable = true; pulseaudio = { enable = true; support32Bit = true; package = pkgs.pulseaudioFull; zeroconf.discovery.enable = true; zeroconf.publish.enable = true; tcp.enable = true; tcp.anonymousClients.allowAll = true; }; }; fonts = { enableDefaultFonts = true; fonts = with pkgs; [ fira-code dejavu_fonts steamPackages.steam-fonts wqy_microhei ]; fontconfig = { defaultFonts = { sansSerif = [ "Noto Sans" "WenQuanYi Micro Hei" ]; serif = [ "Noto Serif" "WenQuanYi Micro Hei-14" ]; emoji = [ "Noto Color Emoji" ]; monospace = [ "DejaVu Sans Mono" "WenQuanYi Micro Hei Mono" ]; }; }; }; environment.systemPackages = with pkgs; [ (conky.override { pulseSupport = true; }) anki autorandr chromium discord dmenu dzen2 emacs ffmpeg firefox-bin haskellPackages.xmobar hledger hledger-ui imagemagick iw ledger networkmanagerapplet nix-index pavucontrol rofi rxvt_unicode-with-plugins signal-desktop sshfsFuse trayer vlc wirelesstools xbindkeys xdotool xorg.xbacklight xorg.xev xscreensaver xsel # used by urxvt clipboard xss-lock ]; i18n.inputMethod = { enabled = "fcitx"; fcitx.engines = with pkgs.fcitx-engines; [cloudpinyin]; }; services = { avahi.enable = true; xserver = { enable = true; layout = "us"; # xkbVariant = "dvorak"; xkbOptions = "caps:ctrl_modifier"; desktopManager.plasma5 = { enable = true; }; windowManager.xmonad = { enable = true; enableContribAndExtras = true; extraPackages = hpkgs: [ hpkgs.xmobar hpkgs.split ]; }; displayManager.lightdm = { enable = true; }; libinput.enable = true; }; redshift = { enable = true; extraOptions = ["-r"]; }; }; }; }