Skip to content
Open
13 changes: 6 additions & 7 deletions doc/src/testbeds.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,12 @@ uses.
graphical environments.
- `command` takes a command to be run once the graphical environment
has loaded
- `text` takes the string of the command
- `useTerminal` takes a boolean which determines whether the command
should be run in a terminal
- `application` takes a desktop application to be run once the graphical
environment has loaded. If one of its suboptions is set, all must be.
- `name` takes the string name of the desktop application
- `package` takes the package which provides the `.desktop` file
- `packages` are forwarded to `environment.systemPackages`
- `terminal` takes a boolean which determines whether the command should
be run in a terminal, defaulting to `false`
- `text` takes the string of the command, which is deduced from
`config.stylix.testbed.ui.command.packages` when it contains one
package.

### Home Manager

Expand Down
15 changes: 3 additions & 12 deletions modules/alacritty/testbeds/alacritty.nix
Original file line number Diff line number Diff line change
@@ -1,17 +1,8 @@
{ lib, pkgs, ... }:
let
package = pkgs.alacritty;
in
{ lib, ... }:
{
stylix.testbed.ui.application = {
name = "Alacritty";
inherit package;
};
stylix.testbed.ui.command.text = "alacritty";

home-manager.sharedModules = lib.singleton {
programs.alacritty = {
enable = true;
inherit package;
};
programs.alacritty.enable = true;
};
}
2 changes: 1 addition & 1 deletion modules/ashell/testbeds/ashell.nix
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{ lib, ... }:
{
stylix.testbed.ui = {
graphicalEnvironment = "hyprland";
command.text = "ashell";
graphicalEnvironment = "hyprland";
};

home-manager.sharedModules = lib.singleton {
Expand Down
15 changes: 8 additions & 7 deletions modules/bat/testbeds/bat.nix
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
{ lib, pkgs, ... }:
let
package = pkgs.bat;
in
{ lib, ... }:
{
environment = {
loginShellInit = "${lib.getExe package} flake-parts/flake.nix";
systemPackages = [ package ];
stylix.testbed.ui.command = {
terminal = true;
text = "bat flake-parts/flake.nix";
};

home-manager.sharedModules = lib.singleton {
programs.bat.enable = true;
};
}
10 changes: 1 addition & 9 deletions modules/blender/testbeds/blender.nix
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
{ pkgs, ... }:
let
package = pkgs.blender;
in
{
stylix.testbed.ui.application = {
name = "blender";
inherit package;
};

environment.systemPackages = [ package ];
stylix.testbed.ui.command.packages = [ pkgs.blender ];
}
7 changes: 1 addition & 6 deletions modules/bspwm/testbeds/bspwm.nix
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
{ pkgs, ... }:
{
stylix.testbed.ui = {
command.packages = [ pkgs.kitty ];
graphicalEnvironment = "bspwm";

# We need something to open a window so that we can check the window borders
application = {
name = "kitty";
package = pkgs.kitty;
};
};
}
6 changes: 3 additions & 3 deletions modules/btop/testbeds/btop.nix
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{ lib, pkgs, ... }:
{ lib, ... }:
{
stylix.testbed.ui.command = {
text = lib.getExe pkgs.btop;
useTerminal = true;
terminal = true;
text = "btop";
};

home-manager.sharedModules = lib.singleton {
Expand Down
8 changes: 3 additions & 5 deletions modules/cava/testbeds/cava-rainbow.nix
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
{ lib, pkgs, ... }:
{
stylix.testbed.ui.command = {
text = ''
${lib.getExe' pkgs.alsa-utils "aplay"} /dev/urandom &
${lib.getExe pkgs.cava}
'';
useTerminal = true;
packages = [ pkgs.alsa-utils ];
terminal = true;
text = "aplay /dev/urandom & cava";
};

home-manager.sharedModules = lib.singleton {
Expand Down
8 changes: 3 additions & 5 deletions modules/cava/testbeds/cava.nix
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
{ lib, pkgs, ... }:
{
stylix.testbed.ui.command = {
text = ''
${lib.getExe' pkgs.alsa-utils "aplay"} /dev/urandom &
${lib.getExe pkgs.cava}
'';
useTerminal = true;
packages = [ pkgs.alsa-utils ];
terminal = true;
text = "aplay /dev/urandom & cava";
};

home-manager.sharedModules = lib.singleton {
Expand Down
13 changes: 2 additions & 11 deletions modules/cavalier/testbeds/cavalier.nix
Original file line number Diff line number Diff line change
@@ -1,17 +1,8 @@
{ lib, pkgs, ... }:
let
package = pkgs.cavalier;
in
{
stylix.testbed.ui.application = {
name = "org.nickvision.cavalier";
inherit package;
};
stylix.testbed.ui.command.text = pkgs.cavalier.meta.mainProgram;

home-manager.sharedModules = lib.singleton {
programs.cavalier = {
enable = true;
inherit package;
};
programs.cavalier.enable = true;
};
}
14 changes: 5 additions & 9 deletions modules/chromium/testbeds/chromium.nix
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
{ pkgs, ... }:
let
package = pkgs.chromium;
in
{ lib, ... }:
{
stylix.testbed.ui.application = {
name = "chromium-browser";
inherit package;
};
stylix.testbed.ui.command.text = "chromium";

environment.systemPackages = [ package ];
home-manager.sharedModules = lib.singleton {
programs.chromium.enable = true;
};
}
26 changes: 8 additions & 18 deletions modules/discord/testbeds/vencord.nix
Original file line number Diff line number Diff line change
@@ -1,24 +1,14 @@
{ lib, pkgs, ... }:
let
package = pkgs.discord.override {
withVencord = true;
};
in
{
stylix.testbed = {
# Discord is not available on arm64.
enable = lib.meta.availableOn pkgs.stdenv.hostPlatform package;

ui.application = {
name = "discord";
inherit package;
stylix.testbed =
let
package = pkgs.discord.override { withVencord = true; };
in
{
enable = lib.meta.availableOn pkgs.stdenv.hostPlatform package;
ui.command.packages = [ package ];
};
};

environment.systemPackages = [ package ];
nixpkgs.config.allowUnfreePredicate =
pkg:
builtins.elem (lib.getName pkg) [
"discord"
];
pkg: builtins.elem (lib.getName pkg) [ "discord" ];
}
15 changes: 3 additions & 12 deletions modules/discord/testbeds/vesktop.nix
Original file line number Diff line number Diff line change
@@ -1,17 +1,8 @@
{ pkgs, lib, ... }:
let
package = pkgs.vesktop;
in
{ lib, ... }:
{
stylix.testbed.ui.application = {
name = "vesktop";
inherit package;
};
stylix.testbed.ui.command.text = "vesktop";

home-manager.sharedModules = lib.singleton {
programs.vesktop = {
enable = true;
inherit package;
};
programs.vesktop.enable = true;
};
}
7 changes: 2 additions & 5 deletions modules/emacs/testbeds/emacs.nix
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
{ lib, pkgs, ... }:
{ lib, ... }:
{
stylix.testbed.ui.command.text = "emacs flake-parts/flake.nix";

home-manager.sharedModules = lib.singleton {
programs.emacs = {
enable = true;
package = pkgs.emacs;
};
programs.emacs.enable = true;
};
}
4 changes: 2 additions & 2 deletions modules/eog/testbeds/eog.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{ pkgs, lib, ... }:
{ pkgs, ... }:
{
stylix.testbed.ui.command.text = lib.getExe pkgs.eog;
stylix.testbed.ui.command.packages = [ pkgs.eog ];
}
34 changes: 15 additions & 19 deletions modules/firefox/testbeds/firefox-gnome-theme.nix
Original file line number Diff line number Diff line change
@@ -1,24 +1,20 @@
{ lib, pkgs, ... }:
let
package = pkgs.firefox;
profileName = "stylix";
in
{ lib, ... }:
{
stylix.testbed.ui.application = {
name = "firefox";
inherit package;
};
stylix.testbed.ui.command.text = "firefox";

home-manager.sharedModules = lib.singleton {
programs.firefox = {
enable = true;
inherit package;
profiles.${profileName}.isDefault = true;
};
home-manager.sharedModules =
let
profileName = "stylix";
in
lib.singleton {
programs.firefox = {
enable = true;
profiles.${profileName}.isDefault = true;
};

stylix.targets.firefox = {
profileNames = [ profileName ];
firefoxGnomeTheme.enable = true;
stylix.targets.firefox = {
profileNames = [ profileName ];
firefoxGnomeTheme.enable = true;
};
};
};
}
30 changes: 13 additions & 17 deletions modules/firefox/testbeds/firefox.nix
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
{ lib, pkgs, ... }:
let
package = pkgs.firefox;
profileName = "stylix";
in
{ lib, ... }:
{
stylix.testbed.ui.application = {
name = "firefox";
inherit package;
};
stylix.testbed.ui.command.text = "firefox";

home-manager.sharedModules = lib.singleton {
programs.firefox = {
enable = true;
inherit package;
profiles.${profileName}.isDefault = true;
};
home-manager.sharedModules =
let
profileName = "stylix";
in
lib.singleton {
programs.firefox = {
enable = true;
profiles.${profileName}.isDefault = true;
};

stylix.targets.firefox.profileNames = [ profileName ];
};
stylix.targets.firefox.profileNames = [ profileName ];
};
}
2 changes: 1 addition & 1 deletion modules/fish/testbeds/fish-hm.nix
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{ lib, ... }:
{
stylix.testbed.ui.command = {
terminal = true;
text = "fish";
useTerminal = true;
};

home-manager.sharedModules = lib.singleton {
Expand Down
2 changes: 1 addition & 1 deletion modules/fish/testbeds/fish-nixos.nix
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
stylix.testbed.ui.command = {
terminal = true;
text = "fish";
useTerminal = true;
};

programs.fish.enable = true;
Expand Down
15 changes: 3 additions & 12 deletions modules/foliate/testbeds/foliate.nix
Original file line number Diff line number Diff line change
@@ -1,17 +1,8 @@
{ lib, pkgs, ... }:
let
package = pkgs.foliate;
in
{ lib, ... }:
{
stylix.testbed.ui.application = {
name = "com.github.johnfactotum.Foliate";
inherit package;
};
stylix.testbed.ui.command.text = "foliate";

home-manager.sharedModules = lib.singleton {
programs.foliate = {
enable = true;
inherit package;
};
programs.foliate.enable = true;
};
}
15 changes: 3 additions & 12 deletions modules/foot/testbeds/foot.nix
Original file line number Diff line number Diff line change
@@ -1,17 +1,8 @@
{ lib, pkgs, ... }:
let
package = pkgs.foot;
in
{ lib, ... }:
{
stylix.testbed.ui.application = {
name = "foot";
inherit package;
};
stylix.testbed.ui.command.text = "foot";

home-manager.sharedModules = lib.singleton {
programs.foot = {
enable = true;
inherit package;
};
programs.foot.enable = true;
};
}
2 changes: 1 addition & 1 deletion modules/fuzzel/testbeds/fuzzel.nix
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{ lib, ... }:
{
stylix.testbed.ui = {
graphicalEnvironment = "hyprland";
command.text = "fuzzel";
graphicalEnvironment = "hyprland";
};

home-manager.sharedModules = lib.singleton {
Expand Down
Loading