diff --git a/flake.lock b/flake.lock index 177441e..b8f013a 100644 --- a/flake.lock +++ b/flake.lock @@ -7,32 +7,32 @@ ] }, "locked": { - "lastModified": 1685599623, - "narHash": "sha256-Tob4CMOVHue0D3RzguDBCtUmX5ji2PsdbQDbIOIKvsc=", + "lastModified": 1698128422, + "narHash": "sha256-Qf39ATHrj6wfeC+K6uwD/FnI7RKrdEiN3uWaciUi0rM=", "owner": "nix-community", "repo": "home-manager", - "rev": "93db05480c0c0f30382d3e80779e8386dcb4f9dd", + "rev": "6045b68ee725167ed0487f0fb88123202ba61923", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-23.05", + "ref": "master", "repo": "home-manager", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1686431482, - "narHash": "sha256-oPVQ/0YP7yC2ztNsxvWLrV+f0NQ2QAwxbrZ+bgGydEM=", + "lastModified": 1697723726, + "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d3bb401dcfc5a46ce51cdfb5762e70cc75d082d2", + "rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-23.05", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 7ee4474..3c8a2d2 100644 --- a/flake.nix +++ b/flake.nix @@ -3,10 +3,13 @@ inputs = { # Nixpkgs - nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + + # Gnome testing branch (getting new major versions earlier) + # gnomeNixpkgs.url = "github:NixOS/nixpkgs/gnome"; # Home manager - home-manager.url = "github:nix-community/home-manager/release-23.05"; + home-manager.url = "github:nix-community/home-manager/master"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; # TODO: Add any other flake you might need @@ -32,19 +35,23 @@ nixos = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs outputs;}; # > Our main nixos configuration file < - modules = [./nixos/configuration.nix]; + modules = [ + ./nixos/configuration.nix + ./nixos/modules/desktop/kde.nix + ]; }; }; # Standalone home-manager configuration entrypoint # Available through 'home-manager --flake .#your-username@your-hostname' homeConfigurations = { - # FIXME replace with your username@hostname "jo@nixos" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance extraSpecialArgs = {inherit inputs outputs;}; # > Our main home-manager configuration file < - modules = [./home-manager/home.nix]; + modules = [ + ./home-manager/home.nix + ]; }; }; }; diff --git a/home-manager/home.nix b/home-manager/home.nix index 4e56820..2ab0ec1 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -1,5 +1,3 @@ -# This is your home-manager configuration file -# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix) { inputs, lib, @@ -11,9 +9,6 @@ imports = [ # If you want to use home-manager modules from other flakes (such as nix-colors): # inputs.nix-colors.homeManagerModule - - # You can also split up your configuration and import pieces of it here: - # ./nvim.nix ]; nixpkgs = { @@ -38,12 +33,89 @@ }; }; - # TODO: Set your username home = { username = "jo"; homeDirectory = "/home/jo"; }; + home.packages = with pkgs.gnomeExtensions; [ + user-themes + dash-to-dock + appindicator + blur-my-shell + rounded-window-corners + ]; + + dconf.settings = with lib.hm.gvariant; { + "org/gnome/shell" = { + disable-user-extensions = false; + # enabled-extensions = map (extension: extension.extensionUuid) home.packages; + disabled-extensions = [ ]; + }; + + "org/gnome/shell/extensions/user-theme" = { + name = config.gtk.theme.name; + }; + + # "org/gnome/shell/extensions/dash-to-dock" = { + # "appicon-margin" = 0; + # "appicon-padding" = 6; + # "tray-padding" = 4; + # "click-action" = "TOGGLE-SHOWPREVIEW"; + # "dot-position" = "TOP"; + # "dot-style-focused" = "METRO"; + # "dot-style-unfocused" = "DASHES"; + # "group-apps" = true; + # "isolate-workspaces" = true; + # "middle-click-action" = "MINIMIZE"; + # "shift-click-action" = "LAUNCH"; + # "scroll-icon-action" = "NOTHING"; + # "scroll-panel-action" = "NOTHING"; + # "stockgs-panelbtn-click-only" = true; + # }; + + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + clock-show-weekday = true; + clock-show-date = true; + clock-show-seconds = false; + enable-hot-corners = false; + }; + + "org/gnome/desktop/input-sources" = { + sources = [ (mkTuple [ "xkb" "de" ]) ]; + }; + + "org/gnome/shell" = { + favorite-apps = [ + "firefox.desktop" + "org.gnome.Nautilus.desktop" + ]; + }; + }; + + gtk = { + enable = true; + + theme = { + name = "Adw-gtk3"; + package = pkgs.adw-gtk3; + }; + + cursorTheme = { + name = "Catppuccin-Macchiato-Dark-Cursors"; + package = pkgs.catppuccin-cursors.macchiatoRed; + size = 32; + }; + }; + + # home.file.".config/gtk-4.0/gtk.css".source = "${orchis}/share/themes/Orchis-Green-Dark-Compact/gtk-4.0/gtk.css"; + # home.file.".config/gtk-4.0/gtk-dark.css".source = "${orchis}/share/themes/Orchis-Green-Dark-Compact/gtk-4.0/gtk-dark.css"; + # home.file.".config/gtk-4.0/assets" = { + # recursive = true; + # source = "${orchis}/share/themes/Orchis-Green-Dark-Compact/gtk-4.0/assets"; + # }; + # Add stuff for your user as you see fit: # programs.neovim.enable = true; # home.packages = with pkgs; [ steam ]; diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 4fd39b9..9aa994b 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -11,9 +11,6 @@ # inputs.hardware.nixosModules.common-cpu-amd # inputs.hardware.nixosModules.common-ssd - # You can also split up your configuration and import pieces of it here: - # ./users.nix - # Import your generated (nixos-generate-config) hardware configuration ./hardware-configuration.nix ]; @@ -40,10 +37,24 @@ nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; settings = { - # Enable flakes and new 'nix' command - experimental-features = "nix-command flakes"; - # Deduplicate and optimize nix store + substituters = [ + "https://cache.nixos.org?priority=10" + "https://nix-community.cachix.org" + ]; + auto-optimise-store = true; + builders-use-substitutes = true; + experimental-features = [ "nix-command" "flakes" "repl-flake" ]; + keep-derivations = true; + keep-outputs = true; + max-jobs = "auto"; + warn-dirty = false; + }; + + gc = { + automatic = true; + dates = "daily"; + options = "--delete-older-than 3d"; }; }; @@ -51,12 +62,7 @@ boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - networking.hostName = "nixos"; # Define your hostname. - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + networking.hostName = "nixos"; # Enable networking networking.networkmanager.enable = true; @@ -79,19 +85,6 @@ LC_TIME = "de_DE.UTF-8"; }; - # Enable the X11 windowing system. - services.xserver.enable = true; - - # Enable the GNOME Desktop Environment. - services.xserver.displayManager.gdm.enable = true; - services.xserver.desktopManager.gnome.enable = true; - - # Configure keymap in X11 - services.xserver = { - layout = "de"; - xkbVariant = ""; - }; - # Configure console keymap console.keyMap = "de"; @@ -120,6 +113,8 @@ extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; [ discord + # ciscoPacketTracer8 + wireshark ]; }; @@ -140,16 +135,13 @@ # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ - # GNOME packages (extensions, themes, etc...) - gnome.gnome-tweaks - adw-gtk3 - - # Other packages nano git vscodium firefox thunderbird + + gnome.gnome-tweaks ]; # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion diff --git a/nixos/modules/desktop/gnome.nix b/nixos/modules/desktop/gnome.nix new file mode 100644 index 0000000..72048d9 --- /dev/null +++ b/nixos/modules/desktop/gnome.nix @@ -0,0 +1,20 @@ +{ + inputs, + lib, + config, + pkgs, + ... +}: { + # Enable the X11 windowing system. + services.xserver.enable = true; + + # Enable the GNOME Desktop Environment. + services.xserver.displayManager.gdm.enable = true; + services.xserver.desktopManager.gnome.enable = true; + + # Configure keymap in X11 + services.xserver = { + layout = "de"; + xkbVariant = ""; + }; +} \ No newline at end of file diff --git a/nixos/modules/desktop/kde.nix b/nixos/modules/desktop/kde.nix new file mode 100644 index 0000000..8358c59 --- /dev/null +++ b/nixos/modules/desktop/kde.nix @@ -0,0 +1,20 @@ +{ + inputs, + lib, + config, + pkgs, + ... +}: { + # Enable the X11 windowing system. + services.xserver.enable = true; + + # Enable the GNOME Desktop Environment. + services.xserver.displayManager.sddm.enable = true; + services.xserver.desktopManager.plasma5.enable = true; + + # Configure keymap in X11 + services.xserver = { + layout = "de"; + xkbVariant = ""; + }; +} \ No newline at end of file