feat(nixos-95): extract DE themining into nixosModule
the desktop environment can be included via `self.nixosModules.nixos95` this will expose two options (for now): nixos95.enable -> enable the desktop environment nixos95.wallpaper -> path to the wallpaper to use currently the setup is closy coupled to this configuration, which will change in the future, so it can be used with any configuration
This commit is contained in:
parent
915121f327
commit
6a9de226ef
21 changed files with 185 additions and 118 deletions
|
|
@ -23,48 +23,24 @@ in {
|
||||||
# Home Manager integration
|
# Home Manager integration
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
|
||||||
|
# nixos95
|
||||||
|
inputs.self.nixosModules.nixos95
|
||||||
|
|
||||||
];
|
];
|
||||||
################################################################
|
################################################################
|
||||||
# Display & Desktop Environment
|
# Display & Desktop Environment
|
||||||
################################################################
|
################################################################
|
||||||
|
|
||||||
services.xserver = {
|
nixos95 = {
|
||||||
enable = true;
|
enable = true;
|
||||||
desktopManager.xfce.enable = true;
|
user = username;
|
||||||
xkb = {
|
|
||||||
layout = "de";
|
|
||||||
variant = "";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.xserver.displayManager.lightdm.enable = false;
|
|
||||||
|
|
||||||
services.displayManager.sddm = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.qt6Packages.sddm;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
|
||||||
|
|
||||||
################################################################
|
################################################################
|
||||||
# System Packages (XFCE & Utilities)
|
# System Packages (XFCE & Utilities)
|
||||||
################################################################
|
################################################################
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
|
|
||||||
# XFCE Core
|
|
||||||
xfce.xfwm4
|
|
||||||
xfce.xfce4-panel
|
|
||||||
xfce.xfce4-session
|
|
||||||
xfce.xfce4-settings
|
|
||||||
xfce.thunar
|
|
||||||
xfce.mousepad
|
|
||||||
xfce.xfce4-terminal
|
|
||||||
xfce.xfce4-appfinder
|
|
||||||
xfce.xfce4-power-manager
|
|
||||||
xfce.xfce4-notifyd
|
|
||||||
xfce.xfce4-whiskermenu-plugin
|
|
||||||
|
|
||||||
# Optional Extras
|
# Optional Extras
|
||||||
xfce.gigolo
|
xfce.gigolo
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,6 @@ in {
|
||||||
# All Home Manager Modules
|
# All Home Manager Modules
|
||||||
../../../../Modules/Applications
|
../../../../Modules/Applications
|
||||||
|
|
||||||
# Extended Retro theme
|
|
||||||
../../../../Modules/Desktops/XFCE-retro
|
|
||||||
|
|
||||||
# Desktop applications
|
# Desktop applications
|
||||||
./desktop.nix
|
./desktop.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
|
|
||||||
chicago95 = pkgs.callPackage ../../../Ressources/Themes/Chicago95/chicago95.nix {};
|
|
||||||
dotfilesPath = ./Dotfiles;
|
|
||||||
resourcesPath = ../../../Ressources;
|
|
||||||
wallpaperFile = "Wallpaper/NixOS-95-wallpaper.png";
|
|
||||||
wallpaperPath = "${config.home.homeDirectory}/${wallpaperFile}";
|
|
||||||
wallpaperOrigin = "${resourcesPath}/Images/Wallpapers/Wallpaper-1.png";
|
|
||||||
dotfiles = "${dotfilesPath}";
|
|
||||||
in {
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
theme = {
|
|
||||||
name = "Chicago95";
|
|
||||||
package = chicago95;
|
|
||||||
};
|
|
||||||
iconTheme = {
|
|
||||||
name = "Win95_plus";
|
|
||||||
package = pkgs.callPackage ../../../Ressources/Themes/Win95_plus/win95_plus.nix {};
|
|
||||||
};
|
|
||||||
cursorTheme = {
|
|
||||||
name = "Chicago95";
|
|
||||||
package = chicago95;
|
|
||||||
};
|
|
||||||
font = {
|
|
||||||
name = "Sans";
|
|
||||||
size = 12;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.pointerCursor = {
|
|
||||||
name = "Chicago95";
|
|
||||||
package = chicago95;
|
|
||||||
size = 24;
|
|
||||||
gtk.enable = true;
|
|
||||||
x11.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
xfce.xfce4-panel
|
|
||||||
xfce.xfconf
|
|
||||||
xfce.xfdesktop
|
|
||||||
xfce.xfce4-whiskermenu-plugin
|
|
||||||
xfce.xfce4-docklike-plugin
|
|
||||||
xorg.xrandr
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file = {
|
|
||||||
"${wallpaperFile}" = {
|
|
||||||
source = wallpaperOrigin;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile = {
|
|
||||||
"xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml".source = "${dotfiles}/xfce4-desktop.xml";
|
|
||||||
"xfce4/xfconf/xfce-perchannel-xml/xfce4-sessions.xml".source = "${dotfiles}/xfce4-sessions.xml";
|
|
||||||
"xfce4/xfconf/xfce-perchannel-xml/xsettings.xml".source = "${dotfiles}/xsettings.xml";
|
|
||||||
"xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml".source = "${dotfiles}/xfwm4.xml";
|
|
||||||
"xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml".source = "${dotfiles}/xfce4-keyboard-shortcuts.xml";
|
|
||||||
|
|
||||||
# Panel:
|
|
||||||
"xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml".source = "${dotfiles}/xfce4-panel.xml";
|
|
||||||
"xfce4/panel/launcher-13/brave.desktop".source = "${dotfiles}/launcher-13/brave.desktop";
|
|
||||||
"xfce4/panel/launcher-14/signal.desktop".source = "${dotfiles}/launcher-14/signal.desktop";
|
|
||||||
"xfce4/panel/launcher-15/obsidian.desktop".source = "${dotfiles}/launcher-15/obsidian.desktop";
|
|
||||||
"xfce4/panel/launcher-16/spotify.desktop".source = "${dotfiles}/launcher-16/spotify.desktop";
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
home.activation.applyXfceTweaks = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
|
||||||
${pkgs.xfce.xfdesktop}/bin/xfdesktop --reload
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
12
README.md
12
README.md
|
|
@ -40,11 +40,15 @@ NixOS-95/
|
||||||
│ └── user-vars.nix
|
│ └── user-vars.nix
|
||||||
├── Modules/
|
├── Modules/
|
||||||
│ ├── Applications/
|
│ ├── Applications/
|
||||||
│ ├── Desktops/
|
|
||||||
│ │ └── XFCE-retro/
|
|
||||||
│ │ ├── default.nix
|
|
||||||
│ │ └── Dotfiles/
|
|
||||||
│ └── System/
|
│ └── System/
|
||||||
|
├── nixos95
|
||||||
|
│ ├── dotfiles/
|
||||||
|
│ ├── core.nix
|
||||||
|
│ ├── default.nix
|
||||||
|
│ ├── desktop.nix
|
||||||
|
│ ├── keybinds.nix
|
||||||
|
│ ├── taskbar.nix
|
||||||
|
│ └── theme.nix
|
||||||
├── Ressources/
|
├── Ressources/
|
||||||
│ ├── Icons/
|
│ ├── Icons/
|
||||||
│ ├── Images/
|
│ ├── Images/
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,9 @@
|
||||||
home-manager,
|
home-manager,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
|
||||||
|
nixosModules.nixos95 = import ./nixos95;
|
||||||
|
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
############################################################
|
############################################################
|
||||||
# 💻 Default Host
|
# 💻 Default Host
|
||||||
|
|
|
||||||
22
nixos95/core.nix
Normal file
22
nixos95/core.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{ config, lib, pkgs, ... }: let
|
||||||
|
cfg = config.nixos95;
|
||||||
|
in lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
desktopManager.xfce.enable = true;
|
||||||
|
xkb = {
|
||||||
|
layout = "de";
|
||||||
|
variant = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.xserver.displayManager.lightdm.enable = false;
|
||||||
|
|
||||||
|
services.displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.qt6Packages.sddm;
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||||
|
|
||||||
|
}
|
||||||
24
nixos95/default.nix
Normal file
24
nixos95/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
{ config, lib, ...}: let
|
||||||
|
cfg = config.nixos95;
|
||||||
|
in {
|
||||||
|
|
||||||
|
options.nixos95 = {
|
||||||
|
enable = lib.mkEnableOption "NixOS-95 Desktop environment";
|
||||||
|
user = lib.mkOption {
|
||||||
|
description = ''
|
||||||
|
Username of the home-manager user.
|
||||||
|
'';
|
||||||
|
type = lib.types.str;
|
||||||
|
example = "user";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./core.nix
|
||||||
|
./desktop.nix
|
||||||
|
./keybinds.nix
|
||||||
|
./taskbar.nix
|
||||||
|
./theme.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
35
nixos95/desktop.nix
Normal file
35
nixos95/desktop.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
{ inputs, config, lib, pkgs, ... }: let
|
||||||
|
cfg = config.nixos95;
|
||||||
|
in {
|
||||||
|
|
||||||
|
options.nixos95 = {
|
||||||
|
|
||||||
|
wallpaper = lib.mkOption {
|
||||||
|
description = "The wallpaper to use";
|
||||||
|
type = lib.types.path;
|
||||||
|
default = "${inputs.self}/Ressources/Images/Wallpapers/Wallpaper-1.png";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
home-manager.users.${cfg.user} = {
|
||||||
|
|
||||||
|
xdg.configFile = {
|
||||||
|
"xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml" = let
|
||||||
|
sed = lib.getExe pkgs.gnused;
|
||||||
|
desktop = pkgs.runCommand "desktop.xml" { } ''
|
||||||
|
${sed} -e "s|NIXOS-95_WALLPAPER|${cfg.wallpaper}|g" ${./dotfiles/xfce4-desktop.xml} > $out
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
force = true;
|
||||||
|
source = desktop;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -5,13 +5,13 @@
|
||||||
<property name="backdrop" type="empty">
|
<property name="backdrop" type="empty">
|
||||||
<property name="screen0" type="empty">
|
<property name="screen0" type="empty">
|
||||||
<property name="monitor0" type="empty">
|
<property name="monitor0" type="empty">
|
||||||
<property name="image-path" type="string" value="/home/user/Wallpaper/NixOS-95-wallpaper.png"/>
|
<property name="image-path" type="string" value="NIXOS-95_WALLPAPER"/>
|
||||||
<property name="image-show" type="bool" value="true"/>
|
<property name="image-show" type="bool" value="true"/>
|
||||||
<property name="image-style" type="int" value="5"/>
|
<property name="image-style" type="int" value="5"/>
|
||||||
</property>
|
</property>
|
||||||
<property name="monitoreDP-1" type="empty">
|
<property name="monitoreDP-1" type="empty">
|
||||||
<property name="workspace0" type="empty">
|
<property name="workspace0" type="empty">
|
||||||
<property name="last-image" type="string" value="/home/user/Wallpaper/NixOS-95-wallpaper.png"/>
|
<property name="last-image" type="string" value="NIXOS-95_WALLPAPER"/>
|
||||||
<property name="image-style" type="int" value="5"/>
|
<property name="image-style" type="int" value="5"/>
|
||||||
</property>
|
</property>
|
||||||
</property>
|
</property>
|
||||||
20
nixos95/keybinds.nix
Normal file
20
nixos95/keybinds.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
/**
|
||||||
|
* For now this just hard copies the config file.
|
||||||
|
* This can be improved by allowing users to define there own keybinds
|
||||||
|
*/
|
||||||
|
{ config, lib, ... }: let
|
||||||
|
cfg = config.nixos95;
|
||||||
|
in lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
home-manager.users.${cfg.user} = {
|
||||||
|
|
||||||
|
xdg.configFile = {
|
||||||
|
"xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml" = {
|
||||||
|
force = true;
|
||||||
|
source = ./dotfiles/xfce4-keyboard-shortcuts.xml;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
30
nixos95/taskbar.nix
Normal file
30
nixos95/taskbar.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
/**
|
||||||
|
* For now this just hard copies the config file.
|
||||||
|
* This can be improved by allowing users to define there own task bar config
|
||||||
|
*/
|
||||||
|
{ config, lib, pkgs, ... }: let
|
||||||
|
cfg = config.nixos95;
|
||||||
|
in lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.xfce.xfce4-whiskermenu-plugin
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.users.${cfg.user} = {
|
||||||
|
|
||||||
|
xdg.configFile = {
|
||||||
|
"xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml" = {
|
||||||
|
force = true;
|
||||||
|
source = ./dotfiles/xfce4-panel.xml;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Panel:
|
||||||
|
"xfce4/panel/launcher-13/brave.desktop".source = ./dotfiles/launcher-13/brave.desktop;
|
||||||
|
"xfce4/panel/launcher-14/signal.desktop".source = ./dotfiles/launcher-14/signal.desktop;
|
||||||
|
"xfce4/panel/launcher-15/obsidian.desktop".source = ./dotfiles/launcher-15/obsidian.desktop;
|
||||||
|
"xfce4/panel/launcher-16/spotify.desktop".source = ./dotfiles/launcher-16/spotify.desktop;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
35
nixos95/theme.nix
Normal file
35
nixos95/theme.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
{ inputs, config, lib, pkgs, ... }: let
|
||||||
|
cfg = config.nixos95;
|
||||||
|
|
||||||
|
theme_dir = "${inputs.self}/Ressources/Themes";
|
||||||
|
baseTheme = {
|
||||||
|
name = "Chicago95";
|
||||||
|
package = pkgs.callPackage "${theme_dir}/Chicago95/chicago95.nix" { };
|
||||||
|
};
|
||||||
|
iconTheme = {
|
||||||
|
name = "Win95_plus";
|
||||||
|
package = pkgs.callPackage "${theme_dir}/Win95_plus/win95_plus.nix" { };
|
||||||
|
};
|
||||||
|
in lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
home-manager.users.${cfg.user} = {
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme = baseTheme;
|
||||||
|
iconTheme = iconTheme;
|
||||||
|
cursorTheme = baseTheme;
|
||||||
|
font = {
|
||||||
|
name = "Sans";
|
||||||
|
size = 12;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.pointerCursor = {
|
||||||
|
size = 24;
|
||||||
|
gtk.enable = true;
|
||||||
|
x11.enable = true;
|
||||||
|
} // baseTheme;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue