diff --git a/flake.nix b/flake.nix index fa00954..ca70dff 100644 --- a/flake.nix +++ b/flake.nix @@ -16,8 +16,20 @@ windows-xp-cursor = pkgs.callPackage ./windows-xp-cursor.nix { }; windows-xp-plymouth = pkgs.callPackage ./windows-xp-plymouth.nix { }; windows-xp-grub = pkgs.callPackage ./windows-xp-grub.nix { }; + windows-xp-login = pkgs.callPackage ./windows-xp-login.nix { }; + default = self.packages.${system}.windows-xp-theme; - }; + }; + + nixosModules = { + default = self.nixosModules.mate-xp-config; + mate-xp-config = import ./mate-xp-config.nix; + }; + + homeModules = { + default = self.homeModules.mate-xp-home; + mate-xp-home = import ./mate-xp-home.nix; + }; }; } diff --git a/mate-xp-config.nix b/mate-xp-config.nix new file mode 100644 index 0000000..d8fc8b0 --- /dev/null +++ b/mate-xp-config.nix @@ -0,0 +1,30 @@ +{ + config, + lib, + pkgs, + system, + self, + ... +}: +{ + options = { + nixp.mate.enable = lib.mkEnableOption "Enable XP configuration in MATE"; + }; + + config = lib.mkIf config.nixp.mate.enable { + boot.loader = { + plymouth = { + theme = "xp"; + themePackages = [ self.packages.${system}.windows-xp-plymouth ]; + }; + }; + + services = { + xserver.displayManager.lightdm.background = ./wall.png; + + displayManager = { + defaultSession = lib.mkDefault "mate"; + }; + }; + }; +} diff --git a/mate-xp-home.nix b/mate-xp-home.nix new file mode 100644 index 0000000..9aef341 --- /dev/null +++ b/mate-xp-home.nix @@ -0,0 +1,129 @@ +{ + pkgs, + self, + system, + ... +}: +{ + dconf.settings = { + "org/mate/desktop/interface" = { + gtk-theme = "Windows XP Luna"; + icon-theme = "windows-xp-icon-theme"; + }; + + "org/mate/marco/general" = { + theme = "Windows XP Luna"; + }; + + "org/mate/desktop/peripherals/mouse" = { + cursor-theme = "ModernXP"; + }; + + "org/mate/desktop/background" = { + picture-filename = "/home/admin/.background-image"; + }; + + "org/mate/panel/general" = { + toplevel-id-list = [ "bottom" ]; + object-id-list = [ + "menu-bar" + "window-list" + "battery" + "brightness" + "notification-area" + "clock" + ]; + }; + + "org/mate/panel/objects/menu-bar" = { + locked = true; + object-type = "menu-bar"; + panel-right-stick = false; + position = 0; + toplevel-id = "bottom"; + }; + + "org/mate/panel/objects/window-list" = { + locked = true; + applet-iid = "WnckletFactory::WindowListApplet"; + object-type = "applet"; + #panel-right-stick = ; + position = 20; + toplevel-id = "bottom"; + }; + + "org/mate/panel/objects/battery" = { + locked = true; + applet-iid = "BattstatAppletFactory::BattstatApplet"; + object-type = "applet"; + panel-right-stick = true; + position = 222; + toplevel-id = "bottom"; + }; + + "org/mate/panel/objects/battery/prefs" = { + red-value = 15; + red-value-is-tiem = false; + show-text = 1; + }; + + "org/mate/panel/objects/brightness" = { + locked = true; + applet-iid = "BrightnessAppletFactory::BrightnessApplet"; + object-type = "applet"; + panel-right-stick = true; + position = 182; + toplevel-id = "bottom"; + }; + + "org/mate/panel/objects/notification-area"= { + locked = true; + applet-iid = "NotificationAreaAppletFactory::NotificationArea"; + object-type = "applet"; + panel-right-stick = true; + position = 158; + toplevel-id = "bottom"; + }; + + "org/mate/panel/objects/clock" = { + locked = true; + applet-iid = "ClockAppletFactory::ClockApplet"; + object-type = "applet"; + panel-right-stick = true; + position = 124; + toplevel-id = "bottom"; + }; + + "org/mate/panel/objects/clock/prefs" = { + expand-locations = false; + show-temperature = false; + show-weather = false; + }; + + "org/mate/panel/toplevels/bottom" = { + orientation = "bottom"; + y-bottom = 0; + }; + }; + + home.file.".background-image".source = ./wall.png; + + gtk = { + enable = true; + theme = { + name = "Windows XP Luna"; + package = self.windows-theme.packages.${system}.windows-xp-theme; + }; + iconTheme = { + name = "windows-XP"; + package = self.windows-theme.packages.${system}.windows-xp-icons; + }; + cursorTheme = { + name = "ModernXP"; + package = self.windows-theme.packages.${system}.windows-xp-cursor; + }; + #gtk3 = { + # extraConfig.gtk-application-prefer-dark-theme = true; + #}; + }; +} diff --git a/wall.png b/wall.png new file mode 100644 index 0000000..a037e11 Binary files /dev/null and b/wall.png differ