feat(nixos-95): extract DE themining into nixosModule #2
21 changed files with 185 additions and 118 deletions
|
|
@ -23,48 +23,24 @@ in {
|
|||
# Home Manager integration
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
|
||||
# nixos95
|
||||
inputs.self.nixosModules.nixos95
|
||||
|
||||
];
|
||||
################################################################
|
||||
# Display & Desktop Environment
|
||||
################################################################
|
||||
|
||||
services.xserver = {
|
||||
nixos95 = {
|
||||
enable = true;
|
||||
desktopManager.xfce.enable = true;
|
||||
xkb = {
|
||||
layout = "de";
|
||||
variant = "";
|
||||
};
|
||||
user = username;
|
||||
};
|
||||
|
||||
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)
|
||||
################################################################
|
||||
|
||||
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
|
||||
xfce.gigolo
|
||||
|
|
@ -136,4 +112,4 @@ in {
|
|||
################################################################
|
||||
|
||||
system.stateVersion = "25.05";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,9 +24,6 @@ in {
|
|||
# All Home Manager Modules
|
||||
../../../../Modules/Applications
|
||||
|
||||
# Extended Retro theme
|
||||
../../../../Modules/Desktops/XFCE-retro
|
||||
|
||||
# Desktop applications
|
||||
./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
|
||||
├── Modules/
|
||||
│ ├── Applications/
|
||||
│ ├── Desktops/
|
||||
│ │ └── XFCE-retro/
|
||||
│ │ ├── default.nix
|
||||
│ │ └── Dotfiles/
|
||||
│ └── System/
|
||||
├── nixos95
|
||||
│ ├── dotfiles/
|
||||
│ ├── core.nix
|
||||
│ ├── default.nix
|
||||
│ ├── desktop.nix
|
||||
│ ├── keybinds.nix
|
||||
│ ├── taskbar.nix
|
||||
│ └── theme.nix
|
||||
├── Ressources/
|
||||
│ ├── Icons/
|
||||
│ ├── Images/
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@
|
|||
home-manager,
|
||||
...
|
||||
}: {
|
||||
|
||||
nixosModules.nixos95 = import ./nixos95;
|
||||
|
||||
nixosConfigurations = {
|
||||
############################################################
|
||||
# 💻 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="screen0" 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-style" type="int" value="5"/>
|
||||
</property>
|
||||
<property name="monitoreDP-1" 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>
|
||||
</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