{ pkgs, nur-ryan4yin, ... }: { # refer to https://codeberg.org/dnkl/foot/src/branch/master/foot.ini xdg.configFile."foot/foot.ini".text = '' [main] dpi-aware=yes font=JetBrainsMono Nerd Font:size=13 shell=${pkgs.bash}/bin/bash --login -c 'nu --login --interactive' term=foot initial-window-size-pixels=3840x2160 initial-window-mode=windowed pad=0x0 # optionally append 'center' resize-delay-ms=10 [mouse] hide-when-typing=yes '' + (builtins.readFile "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-foot}/catppuccin-mocha.conf"); home.packages = [ pkgs.firefox-wayland # pkgs.nixpaks.firefox # pkgs.nixpaks.firefox-desktop-item ]; programs = { # a wayland only terminal emulator foot = { enable = true; # foot can also be run in a server mode. In this mode, one process hosts multiple windows. # All Wayland communication, VT parsing and rendering is done in the server process. # New windows are opened by running footclient, which remains running until the terminal window is closed. # # Advantages to run foot in server mode including reduced memory footprint and startup time. # The downside is a performance penalty. If one window is very busy with, for example, producing output, # then other windows will suffer. Also, should the server process crash, all windows will be gone. server.enable = true; }; # source code: https://github.com/nix-community/home-manager/blob/master/modules/programs/chromium.nix google-chrome = { enable = true; # https://wiki.archlinux.org/title/Chromium#Native_Wayland_support commandLineArgs = [ "--ozone-platform-hint=auto" "--ozone-platform=wayland" # make it use GTK_IM_MODULE if it runs with Gtk4, so fcitx5 can work with it. # (only supported by chromium/chrome at this time, not electron) "--gtk-version=4" # make it use text-input-v1, which works for kwin 5.27 and weston "--enable-wayland-ime" # enable hardware acceleration - vulkan api # "--enable-features=Vulkan" ]; }; vscode = { enable = true; # let vscode sync and update its configuration & extensions across devices, using github account. userSettings = {}; package = (pkgs.vscode.override { isInsiders = true; # https://wiki.archlinux.org/title/Wayland#Electron commandLineArgs = [ "--ozone-platform-hint=auto" "--ozone-platform=wayland" # make it use GTK_IM_MODULE if it runs with Gtk4, so fcitx5 can work with it. # (only supported by chromium/chrome at this time, not electron) "--gtk-version=4" # make it use text-input-v1, which works for kwin 5.27 and weston "--enable-wayland-ime" # TODO: fix https://github.com/microsoft/vscode/issues/187436 # still not works... "--password-store=gnome" # use gnome-keyring as password store ]; }) .overrideAttrs (oldAttrs: rec { # Use VSCode Insiders to fix crash: https://github.com/NixOS/nixpkgs/issues/246509 src = builtins.fetchTarball { url = "https://update.code.visualstudio.com/latest/linux-x64/insider"; sha256 = "0k2sh7rb6mrx9d6bkk2744ry4g17d13xpnhcisk4akl4x7dn6a83"; }; version = "latest"; }); }; }; }