feat(nix): Move all the gui stuff behind a bool

This commit is contained in:
uttarayan21
2024-04-04 21:51:27 +05:30
parent ae43c82e5c
commit 03a24ae5e6
13 changed files with 75 additions and 43 deletions

View File

@@ -4,7 +4,7 @@
...
}: {
programs.firefox = {
enable = device.isLinux;
enable = device.hasGui;
profiles.default = {
userChrome = let
# TODO: Move to subflake

33
common/gui.nix Normal file
View File

@@ -0,0 +1,33 @@
{
pkgs,
device,
lib,
...
}:
lib.attrsets.optionalAttrs device.hasGui {
home.packages = with pkgs;
[]
++ lib.optionals device.isLinux [
ferdium
psst
sony-headphones-client
abaddon
catppuccinThemes.gtk
catppuccinThemes.papirus-folders
gnome.seahorse
gnome.nautilus
nextcloud-client
gparted
polkit_gnome
mullvad-vpn
mullvad-closest
mullvad-browser
steam-run
webcord-vencord
spotify
wl-clipboard
];
}

View File

@@ -35,13 +35,15 @@ in {
imports =
[
inputs.nix-index-database.hmModules.nix-index
./tmux.nix
./wezterm.nix
./kitty.nix
./gui.nix
./tmux.nix
./nvim.nix
./goread.nix
./ncmpcpp.nix
./zellij.nix
./kitty.nix
../modules
]
++ lib.optionals device.isLinux [../linux];
@@ -95,32 +97,14 @@ in {
(pkgs.mpv-unwrapped.override {sixelSupport = true;}) {})
]
++ lib.optionals device.isLinux [
ferdium
psst
sony-headphones-client
abaddon
rr
catppuccinThemes.gtk
catppuccinThemes.papirus-folders
gnome.seahorse
gnome.nautilus
nextcloud-client
sbctl
gparted
gptfdisk
polkit_gnome
dig
mullvad-vpn
mullvad-closest
mullvad-browser
steam-run
usbutils
handlr-regex
handlr-xdg
webcord-vencord
spotify
lsof
wl-clipboard
ncpamixer
]
++ lib.optionals device.isMac [];

View File

@@ -1,6 +1,10 @@
{pkgs, ...}: {
{
pkgs,
device,
...
}: {
programs.kitty = {
enable = true;
enable = device.hasGui;
font = {
name = "Hasklug Nerd Font Mono";
size = 13;

View File

@@ -1,6 +1,10 @@
{pkgs, ...}: {
{
pkgs,
device,
...
}: {
programs.wezterm = {
enable = true;
enable = device.hasGui;
extraConfig =
/*
lua

View File

@@ -102,6 +102,7 @@
name = "genzai";
system = "x86_64-linux";
user = "fs0c131y";
hasGui = false; # Don't wan't to run GUI apps on a headless server
}
{
name = "Uttarayans-MacBook-Pro";
@@ -112,11 +113,13 @@
name = "Serviuss-iMac-Pro";
system = "x86_64-darwin";
user = "servius";
hasGui = false; # It's a vm so no GUI apps are used
}
{
name = "SteamDeck";
system = "x86_64-linux";
user = "deck";
hasGui = false; # Don't wan't to run GUI apps on the SteamDeck
}
];
@@ -127,6 +130,10 @@
then device.isNix
else false;
isMac = !isNull (builtins.match ".*-darwin" device.system);
hasGui =
if (builtins.hasAttr "hasGui" device)
then device.hasGui
else true;
system = device.system;
name = device.name;
user = device.user;

View File

@@ -7,7 +7,7 @@
}: {
imports = [inputs.anyrun.nixosModules.home-manager];
programs.anyrun = {
enable = true;
enable = device.hasGui;
config = {
plugins = with inputs.anyrun.packages.${pkgs.system}; [
inputs.anyrun-nixos-options.packages.${pkgs.system}.default

View File

@@ -1,8 +1,6 @@
{
pkgs,
device,
nur,
inputs,
...
}: {
imports = [
@@ -15,11 +13,11 @@
../linux/mpd.nix
];
services.kdeconnect.enable = true;
services.kdeconnect.indicator = true;
services.swayosd.enable = true;
services.kdeconnect.enable = device.hasGui;
services.kdeconnect.indicator = device.hasGui;
services.swayosd.enable = device.hasGui;
services.nextcloud-client = {
enable = true;
enable = device.hasGui;
startInBackground = true;
};

View File

@@ -1,6 +1,10 @@
{pkgs, ...}: {
{
pkgs,
device,
...
}: {
programs.foot = {
enable = pkgs.stdenv.isLinux;
enable = device.hasGui;
server.enable = true;
settings = {
main = {

View File

@@ -1,6 +1,6 @@
{pkgs, ...}: {
{pkgs, device, ...}: {
gtk = {
enable = true;
enable = device.hasGui;
theme = {
name = "Catppuccin-Mocha-Standard-Mauve-Dark";
package = pkgs.catppuccin-gtk.override {

View File

@@ -1,6 +1,7 @@
{
pkgs,
inputs,
device,
...
}: {
imports = [../modules/hyprpaper.nix inputs.hyprlock.homeManagerModules.hyprlock];
@@ -8,7 +9,7 @@
programs.hyprpaper = let
wallpapers = import ../utils/wallhaven.nix {inherit pkgs;};
in {
enable = true;
enable = device.hasGui;
systemd.enable = true;
systemd.target = "hyprland-session.target";
settings.preload = wallpapers.all;

View File

@@ -1,11 +1,12 @@
{
inputs,
pkgs,
device,
...
}: {
imports = [inputs.ironbar.homeManagerModules.default];
programs.ironbar = {
enable = true;
enable = device.hasGui;
config.monitors = {
DP-1 = {
position = "bottom";

View File

@@ -1,8 +1,4 @@
{
# pkgs,
# config,
...
}: {
{...}: {
services.mpd = {
enable = true;
};