diff --git a/system/configuration.nix b/system/configuration.nix index 463cc79..033c3cb 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -3,6 +3,7 @@ { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix + ./de-twm.nix ./boot.nix ./filesystems.nix ./flatpak.nix @@ -28,9 +29,6 @@ displayManager.lightdm.enable = true; - desktopManager.cinnamon.enable = true; - desktopManager.xfce.enable = true; - xkb.layout = "us"; xkb.variant = ""; }; @@ -111,24 +109,23 @@ environment.systemPackages = with pkgs; [ fastfetch btop htop wget fzf ripgrep obsidian metasploit google-chrome home-manager - xclip sqlite lsd gpick nsxiv pulseaudio + sqlite lsd nsxiv pulseaudio mpc brightnessctl sdcv speedcrunch screenkey bitwarden-desktop keepassxc rustup gcc gnumake clang-tools nodejs pnpm imagemagick pandoc nixd dbeaver-bin gdu sl pavucontrol ffmpeg ffmpegthumbnailer p7zip rar unrar zip unzip dig nix-du - nh graphviz libnotify xtitle xwinmosaic xorg.xev xdo xdotool xsel - drawing xorg.xinit wmctrl simplescreenrecorder + nh graphviz libnotify drawing wmctrl - xfce.gigolo xfce.xfce4-dict xfce.xfce4-panel xfce.xfce4-pulseaudio-plugin - xfce.xfce4-whiskermenu-plugin xfce.mousepad - xfce.xfwm4-themes xfce.xfce4-netload-plugin + #### X11 stuff + xorg.xev xorg.xinit xtitle xwinmosaic xdo xdotool xsel xclip + simplescreenrecorder gpick # stuff that will ONLY work in X inputs.zen-browser.packages.${pkgs.system}.default ]; - environment.xfce.excludePackages = with pkgs.xfce; [ - xfce4-appfinder xfce4-taskmanager xfce4-terminal - ]; + ### DESKTOP + deWm.cinnamon.enable = true; + deWm.xfce.enable = true; ### ENV environment.variables = { diff --git a/system/de-twm.nix b/system/de-twm.nix new file mode 100644 index 0000000..25db8ae --- /dev/null +++ b/system/de-twm.nix @@ -0,0 +1,36 @@ +{ config, pkgs, lib, ... }: + +let + inherit (lib) mkOption mkIf types; + cfg = config.deWm; +in +{ + options.deWm = { + cinnamon.enable = mkOption { + default = false; + type = types.bool; + }; + xfce.enable = mkOption { + default = false; + type = types.bool; + }; + }; + + config = { + services = { + xserver = { + desktopManager.cinnamon.enable = cfg.cinnamon.enable; + desktopManager.xfce.enable = cfg.xfce.enable; + }; + }; + + environment.xfce.excludePackages = with pkgs.xfce; mkIf cfg.xfce.enable [ + xfce4-appfinder xfce4-taskmanager xfce4-terminal + ]; + + environment.systemPackages = with pkgs.xfce; mkIf cfg.xfce.enable [ + gigolo xfce4-dict xfce4-panel xfce4-pulseaudio-plugin + xfce4-whiskermenu-plugin mousepad xfwm4-themes xfce4-netload-plugin + ]; + }; +}