mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-04-27 10:26:58 +02:00
refactor(home/linux/desktop): home/linux/desktop => home/linux/gui
This commit is contained in:
96
home/linux/gui/hyprland/values/wayland-apps.nix
Normal file
96
home/linux/gui/hyprland/values/wayland-apps.nix
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
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");
|
||||
|
||||
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"
|
||||
];
|
||||
};
|
||||
|
||||
firefox = {
|
||||
enable = true;
|
||||
enableGnomeExtensions = false;
|
||||
package = pkgs.firefox-wayland; # firefox with wayland support
|
||||
};
|
||||
|
||||
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";
|
||||
});
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user