Compare commits
No commits in common. "3cf6b93eb5c4f58dd7efb68ae47715f90dcfc299" and "40c3432f806fa1ca4d19ffafcdc93f0bb7477476" have entirely different histories.
3cf6b93eb5
...
40c3432f80
@ -42,7 +42,8 @@
|
|||||||
specialisation.plasma.configuration = {
|
specialisation.plasma.configuration = {
|
||||||
system.nixos.tags = [ "Plasma" ];
|
system.nixos.tags = [ "Plasma" ];
|
||||||
nixfiles = {
|
nixfiles = {
|
||||||
session = "plasma";
|
sessions.hyprland.enable = false;
|
||||||
|
sessions.plasma.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -51,7 +52,7 @@
|
|||||||
|
|
||||||
# nixfiles
|
# nixfiles
|
||||||
nixfiles = {
|
nixfiles = {
|
||||||
profile.workstation.enable = true;
|
profile.pc.enable = true;
|
||||||
programs.adb.enable = true;
|
programs.adb.enable = true;
|
||||||
workarounds.nvidiaPrimary = true;
|
workarounds.nvidiaPrimary = true;
|
||||||
programs.greetd = {
|
programs.greetd = {
|
||||||
@ -64,7 +65,8 @@
|
|||||||
};
|
};
|
||||||
programs.unbound.enable = true;
|
programs.unbound.enable = true;
|
||||||
common.remoteAccess.enable = true;
|
common.remoteAccess.enable = true;
|
||||||
session = lib.mkDefault "hyprland";
|
sessions.plasma.enable = lib.mkDefault false;
|
||||||
|
sessions.hyprland.enable = lib.mkDefault true;
|
||||||
hardware.nvidia.modesetting.enable = true;
|
hardware.nvidia.modesetting.enable = true;
|
||||||
packageSets.gaming.enable = true;
|
packageSets.gaming.enable = true;
|
||||||
};
|
};
|
||||||
|
@ -36,7 +36,8 @@
|
|||||||
specialisation.plasma.configuration = {
|
specialisation.plasma.configuration = {
|
||||||
system.nixos.tags = [ "Plasma" ];
|
system.nixos.tags = [ "Plasma" ];
|
||||||
nixfiles = {
|
nixfiles = {
|
||||||
session = "plasma";
|
sessions.hyprland.enable = false;
|
||||||
|
sessions.plasma.enable = true;
|
||||||
};
|
};
|
||||||
services.displayManager.sddm.enable = lib.mkForce true;
|
services.displayManager.sddm.enable = lib.mkForce true;
|
||||||
services.xserver.displayManager.startx.enable = lib.mkForce false;
|
services.xserver.displayManager.startx.enable = lib.mkForce false;
|
||||||
@ -48,14 +49,15 @@
|
|||||||
services.displayManager.sddm.enable = false;
|
services.displayManager.sddm.enable = false;
|
||||||
|
|
||||||
nixfiles = {
|
nixfiles = {
|
||||||
profile.workstation.enable = true;
|
profile.pc.enable = true;
|
||||||
common.remoteAccess.enable = true;
|
common.remoteAccess.enable = true;
|
||||||
hardware.opengl.enable = true;
|
hardware.opengl.enable = true;
|
||||||
packageSets = {
|
packageSets = {
|
||||||
gaming.enable = true;
|
gaming.enable = true;
|
||||||
fun.enable = true;
|
fun.enable = true;
|
||||||
};
|
};
|
||||||
session = lib.mkDefault "hyprland";
|
sessions.hyprland.enable = lib.mkDefault true;
|
||||||
|
sessions.plasma.enable = lib.mkDefault false;
|
||||||
programs = {
|
programs = {
|
||||||
adb.enable = true;
|
adb.enable = true;
|
||||||
unbound.enable = false;
|
unbound.enable = false;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{...}:
|
{...}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./desktop.nix
|
||||||
./me.nix
|
./me.nix
|
||||||
./remote.nix
|
./remote.nix
|
||||||
./wm.nix
|
./wm.nix
|
||||||
|
66
system/common/desktop.nix
Normal file
66
system/common/desktop.nix
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
{ config, lib, pkgs, outputs, ...}:
|
||||||
|
let
|
||||||
|
cfg = config.nixfiles.common.desktop;
|
||||||
|
inherit (lib) mkIf mkDefault mkForce mkEnableOption;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# imports = [
|
||||||
|
# ./base.nix
|
||||||
|
# ./fragments/sound.nix
|
||||||
|
# ./fragments/multimedia.nix
|
||||||
|
# ./fragments/software/syncthing.nix
|
||||||
|
# ./fragments/hardware/bluetooth.nix
|
||||||
|
# ];
|
||||||
|
|
||||||
|
options.nixfiles.common.desktop = {
|
||||||
|
enable = mkEnableOption "common desktop configuration";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
# enable option sets
|
||||||
|
nixfiles = {
|
||||||
|
profile.base.enable = true;
|
||||||
|
packageSets.multimedia.enable = mkDefault true;
|
||||||
|
programs.syncthing.enable = mkDefault true;
|
||||||
|
hardware = {
|
||||||
|
bluetooth.enable = mkDefault true;
|
||||||
|
sound.enable = mkDefault true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable the X11 windowing system.
|
||||||
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
arc-theme
|
||||||
|
wl-clipboard
|
||||||
|
];
|
||||||
|
|
||||||
|
# this solves some inconsistent behavior with xdg-open
|
||||||
|
xdg.portal.xdgOpenUsePortal = true;
|
||||||
|
|
||||||
|
# Enable flatpak
|
||||||
|
services.flatpak.enable = mkDefault true;
|
||||||
|
|
||||||
|
# Enable CUPS to print documents.
|
||||||
|
services.printing = {
|
||||||
|
enable = mkDefault true;
|
||||||
|
cups-pdf.enable = mkDefault true;
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
(nerdfonts.override { fonts = [ "FiraCode" ]; })
|
||||||
|
font-awesome
|
||||||
|
noto-fonts-cjk
|
||||||
|
(google-fonts.override { fonts = [ "NovaSquare" ];})
|
||||||
|
];
|
||||||
|
|
||||||
|
# TODO this should be defined in home-manager or not at all probably
|
||||||
|
# FIXME also my name is hardcoded
|
||||||
|
users.users.nullbite = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
firefox
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -3,7 +3,6 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./base.nix
|
./base.nix
|
||||||
./pc.nix
|
./pc.nix
|
||||||
./workstation.nix
|
|
||||||
./server.nix
|
./server.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -1,48 +1,17 @@
|
|||||||
{ pkgs, config, lib, ... }:
|
{ pkgs, config, lib, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.nixfiles.profile.pc;
|
cfg = config.nixfiles.profile.pc;
|
||||||
inherit (lib) mkDefault;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.nixfiles.profile.pc.enable = lib.mkEnableOption "minimal PC profile" // {
|
options.nixfiles.profile.pc.enable = lib.mkEnableOption "the personal computer profile";
|
||||||
description = ''
|
|
||||||
Whether to enable the minimal PC profile. This profile configures basic
|
|
||||||
system configuration for physical PCs, such as enabling sound and
|
|
||||||
Bluetooth support.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
nixfiles.profile.base.enable = lib.mkDefault true;
|
nixfiles.profile.base.enable = lib.mkDefault true;
|
||||||
|
nixfiles.binfmt.enable = lib.mkDefault true;
|
||||||
# disabling this for now; it doesn't work in chroot yet (the only reason i
|
|
||||||
# want it) and it takes forever to compile.
|
|
||||||
# nixfiles.binfmt.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
# networking.hostName = "nixos"; # Define your hostname.
|
# networking.hostName = "nixos"; # Define your hostname.
|
||||||
# Pick only one of the below networking options.
|
# Pick only one of the below networking options.
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
# FIXME find somewhere else to put this
|
# FIXME find somewhere else to put this
|
||||||
networking.networkmanager.enable = lib.mkDefault true; # Easiest to use and most distros use this by default.
|
networking.networkmanager.enable = lib.mkDefault true; # Easiest to use and most distros use this by default.
|
||||||
|
|
||||||
# enable option sets
|
|
||||||
nixfiles = {
|
|
||||||
hardware = {
|
|
||||||
bluetooth.enable = mkDefault true;
|
|
||||||
sound.enable = mkDefault true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# probably unnecessary, this will be enabled by whatever session i use
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
# services.xserver.enable = true;
|
|
||||||
|
|
||||||
# this solves some inconsistent behavior with xdg-open
|
|
||||||
xdg.portal.xdgOpenUsePortal = lib.mkDefault true;
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
services.printing = {
|
|
||||||
enable = mkDefault true;
|
|
||||||
cups-pdf.enable = mkDefault true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
{ pkgs, config, lib, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.nixfiles.profile.workstation;
|
|
||||||
inherit (lib) mkDefault;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.nixfiles.profile.workstation.enable = lib.mkEnableOption "workstation (featureful PC) profile" //
|
|
||||||
{
|
|
||||||
description = ''
|
|
||||||
Whether to enable the workstation (featureful PC) profile. This profile
|
|
||||||
enables the base PC profile, as well as installs and configures various
|
|
||||||
other programs for a more complete computing experience.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
nixfiles.profile.pc.enable = lib.mkDefault true;
|
|
||||||
nixfiles.packageSets.multimedia.enable = lib.mkDefault true;
|
|
||||||
nixfiles.programs.syncthing.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
# probably unnecessary, this will be enabled by whatever session i use
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
# services.xserver.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
arc-theme
|
|
||||||
wl-clipboard
|
|
||||||
xclip
|
|
||||||
];
|
|
||||||
|
|
||||||
# this solves some inconsistent behavior with xdg-open
|
|
||||||
xdg.portal.xdgOpenUsePortal = true;
|
|
||||||
|
|
||||||
# Enable flatpak
|
|
||||||
services.flatpak.enable = mkDefault true;
|
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
|
||||||
(nerdfonts.override { fonts = [ "FiraCode" ]; })
|
|
||||||
font-awesome
|
|
||||||
noto-fonts-cjk
|
|
||||||
(google-fonts.override { fonts = [ "NovaSquare" ];})
|
|
||||||
];
|
|
||||||
|
|
||||||
# TODO this should be defined in home-manager or not at all probably
|
|
||||||
# FIXME also my name is hardcoded
|
|
||||||
users.users.nullbite = {
|
|
||||||
packages = with pkgs; [
|
|
||||||
firefox
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,26 +1,5 @@
|
|||||||
{ config, lib, options, ... }:
|
{...}:
|
||||||
let
|
{ imports = [
|
||||||
inherit (lib) types;
|
|
||||||
cfg = config.nixfiles.session;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hyprland.nix
|
./hyprland.nix
|
||||||
./plasma.nix
|
./plasma.nix
|
||||||
];
|
];}
|
||||||
|
|
||||||
options.nixfiles.session = lib.mkOption {
|
|
||||||
description = ''
|
|
||||||
Desktop session to enable. This option serves as a convenient way to
|
|
||||||
enable sessions in a mutually exclusive manner, e.g., for use with
|
|
||||||
specialisations.
|
|
||||||
'';
|
|
||||||
type = with types; nullOr (enum (builtins.attrNames options.nixfiles.sessions));
|
|
||||||
default = null;
|
|
||||||
example = "hyprland";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf (!(builtins.isNull cfg)) {
|
|
||||||
nixfiles.sessions.${cfg}.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
@ -26,6 +26,7 @@ in
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
# enable dependencies
|
# enable dependencies
|
||||||
nixfiles.common = {
|
nixfiles.common = {
|
||||||
|
desktop.enable = true;
|
||||||
wm.enable = true;
|
wm.enable = true;
|
||||||
};
|
};
|
||||||
nixfiles.meta.wayland = true;
|
nixfiles.meta.wayland = true;
|
||||||
@ -38,8 +39,6 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# misleading name
|
|
||||||
services.xserver.enable = true;
|
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# # TODO base this on if nvidia is enabled
|
# # TODO base this on if nvidia is enabled
|
||||||
|
@ -15,10 +15,11 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.xserver.enable = true;
|
nixfiles.common.desktop.enable = true;
|
||||||
|
|
||||||
services.displayManager.sddm.enable = mkDefault true;
|
services.displayManager.sddm.enable = mkDefault true;
|
||||||
services.xserver.desktopManager.plasma6.enable = true;
|
services.xserver.desktopManager.plasma5.enable = true;
|
||||||
services.displayManager.defaultSession = "plasma";
|
services.displayManager.defaultSession = "plasmawayland";
|
||||||
programs.kdeconnect.enable = mkDefault true;
|
programs.kdeconnect.enable = mkDefault true;
|
||||||
nixfiles.meta.wayland = true;
|
nixfiles.meta.wayland = true;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user