diff --git a/aly.nix b/aly.nix new file mode 100644 index 00000000..720c88d7 --- /dev/null +++ b/aly.nix @@ -0,0 +1,50 @@ +{ + inputs, + config, + pkgs, + lib, + ... +}: { + imports = [./homeManagerModules]; + home.username = "aly"; + home.homeDirectory = "/home/aly"; + programs.home-manager.enable = true; + + home.packages = with pkgs; [ + browsh + curl + gh + git + python3 + ruby + wget + zoom-us + obsidian + google-chrome + fractal + ]; + + alyraffauf = { + services.syncthing.enable = true; + desktop.hyprland = { + enable = true; + hyprpaper.randomWallpaper.enable = true; + }; + apps = { + alacritty.enable = true; + firefox.enable = true; + bash.enable = true; + emacs.enable = true; + eza.enable = true; + fzf.enable = true; + neofetch.enable = true; + neovim.enable = true; + tmux.enable = true; + chromium.enable = false; + tauon.enable = true; + thunderbird.enable = true; + vsCodium.enable = true; + webCord.enable = true; + }; + }; +} diff --git a/dustin.nix b/dustin.nix new file mode 100644 index 00000000..238b00ad --- /dev/null +++ b/dustin.nix @@ -0,0 +1,38 @@ +{ + inputs, + config, + pkgs, + lib, + ... +}: { + imports = [./homeManagerModules]; + home.username = "dustin"; + home.homeDirectory = "/home/dustin"; + programs.home-manager.enable = true; + + home.packages = with pkgs; [ + fractal + google-chrome + libreoffice-fresh + plexamp + vlc + zoom-us + ]; + + alyraffauf = { + desktop.hyprland = { + enable = true; + hyprpaper.randomWallpaper.enable = false; + }; + apps = { + alacritty.enable = true; + bash.enable = true; + chromium.enable = true; + eza.enable = true; + firefox.enable = true; + fzf.enable = true; + vsCodium.enable = true; + webCord.enable = true; + }; + }; +} diff --git a/flake.lock b/flake.lock index d011a882..03b39a98 100644 --- a/flake.lock +++ b/flake.lock @@ -1,26 +1,9 @@ { "nodes": { "disko": { - "inputs": { - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1713406758, - "narHash": "sha256-kwZvhmx+hSZvjzemKxsAqzEqWmXZS47VVwQhNrINORQ=", - "owner": "nix-community", - "repo": "disko", - "rev": "1efd500e9805a9efbce401ed5999006d397b9f11", - "type": "github" - }, - "original": { - "id": "disko", - "type": "indirect" - } - }, - "disko-unstable": { "inputs": { "nixpkgs": [ - "nixpkgs-unstable" + "nixpkgs" ] }, "locked": { @@ -44,30 +27,11 @@ ] }, "locked": { - "lastModified": 1712386041, - "narHash": "sha256-dA82pOMQNnCJMAsPG7AXG35VmCSMZsJHTFlTHizpKWQ=", - "rev": "d6bb9f934f2870e5cbc5b94c79e9db22246141ff", - "revCount": 3180, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/nix-community/home-manager/0.2311.3180%2Brev-d6bb9f934f2870e5cbc5b94c79e9db22246141ff/018eb24b-3591-77b8-b621-8f2cd8f7cf91/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/nix-community/home-manager/0.%2A.%2A.tar.gz" - } - }, - "home-manager-unstable": { - "inputs": { - "nixpkgs": [ - "nixpkgs-unstable" - ] - }, - "locked": { - "lastModified": 1713391096, - "narHash": "sha256-5xkzsy+ILgQlmvDDipL5xqAehnjWBenAQXV4/NLg2dE=", + "lastModified": 1713453913, + "narHash": "sha256-vbXq52VRlL1defMHrwhsoeHm95O3mFefsSSJyNEghbA=", "owner": "nix-community", "repo": "home-manager", - "rev": "f46814ec7cbef9c2aef18ca1cbe89f2bb1e8c394", + "rev": "178e26895b3aef028a00a32fb7e7ed0fc660645c", "type": "github" }, "original": { @@ -111,7 +75,7 @@ "hyprcursor": "hyprcursor", "hyprland-protocols": "hyprland-protocols", "hyprlang": "hyprlang", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs", "systems": "systems", "wlroots": "wlroots", "xdph": "xdph" @@ -213,21 +177,21 @@ }, "nixpkgs": { "locked": { - "lastModified": 1713254108, - "narHash": "sha256-0TZIsfDbHG5zibtlw6x0yOp3jkInIGaJ35B7Y4G8Pec=", + "lastModified": 1712963716, + "narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fd19c8be2551a61c1ddc3d9f86d748f4db94f00", + "rev": "cfd6b5fc90b15709b780a5a1619695a88505a176", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable": { + "nixpkgs_2": { "locked": { "lastModified": 1713248628, "narHash": "sha256-NLznXB5AOnniUtZsyy/aPWOk8ussTuePp2acb9U+ISA=", @@ -243,47 +207,14 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1712963716, - "narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "cfd6b5fc90b15709b780a5a1619695a88505a176", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1713145326, - "narHash": "sha256-m7+IWM6mkWOg22EC5kRUFCycXsXLSU7hWmHdmBfmC3s=", - "rev": "53a2c32bc66f5ae41a28d7a9a49d321172af621e", - "revCount": 557721, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2311.557721%2Brev-53a2c32bc66f5ae41a28d7a9a49d321172af621e/018ee413-6e9c-72d4-be11-b9bef24c16bc/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/NixOS/nixpkgs/%2A.tar.gz" - } - }, "root": { "inputs": { "disko": "disko", - "disko-unstable": "disko-unstable", "home-manager": "home-manager", - "home-manager-unstable": "home-manager-unstable", "hyprland": "hyprland", "impermanence": "impermanence", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_3", - "nixpkgs-unstable": "nixpkgs-unstable" + "nixpkgs": "nixpkgs_2" } }, "systems": { diff --git a/flake.nix b/flake.nix index a90be405..1a0167ff 100644 --- a/flake.nix +++ b/flake.nix @@ -2,27 +2,20 @@ description = "Aly's NixOS flake."; inputs = { - # Latest Stable NixOS, tracked by FlakeHub. - nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/*.tar.gz"; + # Unstable NixOS channel. + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - # Tracks latest stable home-manager using FlakeHub. + # Home-manager, used for managing user configuration. home-manager = { - url = "https://flakehub.com/f/nix-community/home-manager/0.*.*.tar.gz"; + url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; - # Unstable NixOS channel. - nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; - - # Home-manager, used for managing user configuration. - home-manager-unstable = { - url = "github:nix-community/home-manager/master"; - inputs.nixpkgs.follows = "nixpkgs-unstable"; + disko = { + url = "github:nix-community/disko"; + inputs.nixpkgs.follows = "nixpkgs"; }; - disko-unstable.url = "github:nix-community/disko"; - disko-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable"; - impermanence.url = "github:nix-community/impermanence"; # Latest Hyprland @@ -42,67 +35,83 @@ outputs = inputs @ { nixpkgs, - nixpkgs-unstable, home-manager, - home-manager-unstable, nixos-hardware, impermanence, disko, - disko-unstable, + hyprland, ... }: { - homeConfigurations.aly = home-manager-unstable.lib.homeManagerConfiguration { - pkgs = import nixpkgs-unstable {system = "x86_64-linux";}; - modules = [./home.nix]; + homeConfigurations.aly = home-manager.lib.homeManagerConfiguration { + pkgs = import nixpkgs {system = "x86_64-linux";}; + modules = [./aly.nix]; + }; + + homeConfigurations.dustin = home-manager.lib.homeManagerConfiguration { + pkgs = import nixpkgs {system = "x86_64-linux";}; + modules = [./dustin.nix]; }; nixosConfigurations = { # Framework 13 with AMD Ryzen 7640U and 32GB RAM. - lavaridge = nixpkgs-unstable.lib.nixosSystem { + lavaridge = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = {inherit inputs;}; modules = [ nixos-hardware.nixosModules.framework-13-7040-amd - home-manager-unstable.nixosModules.home-manager + home-manager.nixosModules.home-manager ./hosts/lavaridge ./nixosModules ]; }; - # Home Lab. Ryzen 5 2600 with 16GB RAM, RX 6700. - mauville = nixpkgs-unstable.lib.nixosSystem { + # Framework 13 with 11th Gen Intel Core i5 and 16GB RAM. + fallarbor = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = {inherit inputs;}; modules = [ - home-manager-unstable.nixosModules.home-manager + disko.nixosModules.disko + nixos-hardware.nixosModules.framework-11th-gen-intel + home-manager.nixosModules.home-manager + ./hosts/fallarbor + ./nixosModules + ]; + }; + + # Home Lab. Ryzen 5 2600 with 16GB RAM, RX 6700. + mauville = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = {inherit inputs;}; + modules = [ + home-manager.nixosModules.home-manager ./hosts/mauville ./nixosModules ]; }; # Lenovo Yoga 9i with i7-1360P and 16GB RAM. - petalburg = nixpkgs-unstable.lib.nixosSystem { + petalburg = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = {inherit inputs;}; modules = [ - disko-unstable.nixosModules.disko + disko.nixosModules.disko nixos-hardware.nixosModules.common-pc-laptop-ssd nixos-hardware.nixosModules.common-cpu-intel - home-manager-unstable.nixosModules.home-manager + home-manager.nixosModules.home-manager ./hosts/petalburg ./nixosModules ]; }; # T440p with i5-4210M and 16GB RAM. - rustboro = nixpkgs-unstable.lib.nixosSystem { + rustboro = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = {inherit inputs;}; modules = [ - disko-unstable.nixosModules.disko + disko.nixosModules.disko impermanence.nixosModules.impermanence nixos-hardware.nixosModules.lenovo-thinkpad-t440p - home-manager-unstable.nixosModules.home-manager + home-manager.nixosModules.home-manager ./hosts/rustboro ./nixosModules ]; diff --git a/home.nix b/home.nix deleted file mode 100644 index f81606f8..00000000 --- a/home.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - inputs, - config, - pkgs, - lib, - ... -}: { - imports = [./homeManagerModules]; - home.username = "aly"; - home.homeDirectory = "/home/aly"; - - home.stateVersion = "23.11"; - programs.home-manager.enable = true; -} diff --git a/homeManagerModules/apps/default.nix b/homeManagerModules/apps/default.nix index 3648c8d2..a5092070 100644 --- a/homeManagerModules/apps/default.nix +++ b/homeManagerModules/apps/default.nix @@ -11,16 +11,13 @@ ./emacs ./eza ./firefox - ./fractal ./fuzzel ./fzf - ./google-chrome ./kanshi ./librewolf ./mako ./neofetch ./neovim - ./obsidian ./tauon ./thunderbird ./tmux @@ -28,41 +25,5 @@ ./waybar ./webCord ./wlogout - ./zoom ]; - - home.packages = with pkgs; [ - # backblaze-b2 - browsh - curl - gh - git - python3 - ruby - wget - ]; - - programs.nnn.enable = lib.mkDefault true; - - programs.rbw.enable = lib.mkDefault true; - - alyraffauf.apps.bash.enable = lib.mkDefault true; - alyraffauf.apps.emacs.enable = lib.mkDefault true; - alyraffauf.apps.eza.enable = lib.mkDefault true; - alyraffauf.apps.fzf.enable = lib.mkDefault true; - alyraffauf.apps.neofetch.enable = lib.mkDefault true; - alyraffauf.apps.neovim.enable = lib.mkDefault true; - alyraffauf.apps.tmux.enable = lib.mkDefault true; - - alyraffauf.apps.alacritty.enable = lib.mkDefault true; - alyraffauf.apps.chromium.enable = lib.mkDefault false; - alyraffauf.apps.firefox.enable = lib.mkDefault true; - alyraffauf.apps.fractal.enable = lib.mkDefault true; - alyraffauf.apps.google-chrome.enable = lib.mkDefault true; - alyraffauf.apps.obsidian.enable = lib.mkDefault true; - alyraffauf.apps.tauon.enable = lib.mkDefault true; - alyraffauf.apps.thunderbird.enable = lib.mkDefault true; - alyraffauf.apps.vsCodium.enable = lib.mkDefault true; - alyraffauf.apps.webCord.enable = lib.mkDefault true; - alyraffauf.apps.zoom.enable = lib.mkDefault true; } diff --git a/homeManagerModules/apps/fractal/default.nix b/homeManagerModules/apps/fractal/default.nix deleted file mode 100644 index 18ddcad0..00000000 --- a/homeManagerModules/apps/fractal/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: { - options = { - alyraffauf.apps.fractal.enable = - lib.mkEnableOption "Enables Fractal Matrix client."; - }; - - config = lib.mkIf config.alyraffauf.apps.fractal.enable { - home.packages = with pkgs; [fractal]; - }; -} diff --git a/homeManagerModules/apps/google-chrome/default.nix b/homeManagerModules/apps/google-chrome/default.nix deleted file mode 100644 index b28229d2..00000000 --- a/homeManagerModules/apps/google-chrome/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: { - options = { - alyraffauf.apps.google-chrome.enable = lib.mkEnableOption "Enable Google Chrome."; - }; - - config = lib.mkIf config.alyraffauf.apps.google-chrome.enable { - home.packages = with pkgs; [google-chrome]; - }; -} diff --git a/homeManagerModules/apps/obsidian/default.nix b/homeManagerModules/apps/obsidian/default.nix deleted file mode 100644 index 3515d8f7..00000000 --- a/homeManagerModules/apps/obsidian/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: { - options = { - alyraffauf.apps.obsidian.enable = lib.mkEnableOption "Enables Obsidian."; - }; - - config = lib.mkIf config.alyraffauf.apps.obsidian.enable { - home.packages = with pkgs; [obsidian]; - }; -} diff --git a/homeManagerModules/apps/zoom/default.nix b/homeManagerModules/apps/zoom/default.nix deleted file mode 100644 index 8ed41d93..00000000 --- a/homeManagerModules/apps/zoom/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: { - options = {alyraffauf.apps.zoom.enable = lib.mkEnableOption "Enables Zoom.";}; - - config = lib.mkIf config.alyraffauf.apps.zoom.enable { - home.packages = with pkgs; [zoom-us]; - }; -} diff --git a/homeManagerModules/default.nix b/homeManagerModules/default.nix index 0f2b2d72..b0ba3cca 100644 --- a/homeManagerModules/default.nix +++ b/homeManagerModules/default.nix @@ -29,4 +29,14 @@ }; xdg.dataFile."backgrounds/".source = ../files/wallpapers; + + dconf = { + enable = true; + settings = { + "org/virt-manager/virt-manager/connections" = { + autoconnect = ["qemu:///system"]; + uris = ["qemu:///system"]; + }; + }; + }; } diff --git a/homeManagerModules/desktop/default.nix b/homeManagerModules/desktop/default.nix index be666139..7e61dbaa 100644 --- a/homeManagerModules/desktop/default.nix +++ b/homeManagerModules/desktop/default.nix @@ -5,6 +5,4 @@ ... }: { imports = [./gnome ./hypr ./sway ./river]; - - alyraffauf.desktop.hyprland.enable = lib.mkDefault true; } diff --git a/homeManagerModules/desktop/gnome/default.nix b/homeManagerModules/desktop/gnome/default.nix index 30a50aa9..6d5b69bf 100644 --- a/homeManagerModules/desktop/gnome/default.nix +++ b/homeManagerModules/desktop/gnome/default.nix @@ -44,10 +44,6 @@ "tiling-assistant@leleat-on-github" "drive-menu@gnome-shell-extensions.gcampax.github.com" ]; - "org/virt-manager/virt-manager/connections" = { - autoconnect = ["qemu:///system"]; - uris = ["qemu:///system"]; - }; }; }; } diff --git a/homeManagerModules/desktop/hypr/default.nix b/homeManagerModules/desktop/hypr/default.nix index b2618e5c..ba02a4a0 100644 --- a/homeManagerModules/desktop/hypr/default.nix +++ b/homeManagerModules/desktop/hypr/default.nix @@ -28,10 +28,10 @@ alyraffauf.apps.alacritty.enable = lib.mkDefault true; alyraffauf.apps.firefox.enable = lib.mkDefault true; + services.cliphist.enable = lib.mkDefault true; + # Packages that should be installed to the user profile. home.packages = with pkgs; [ - # brightnessctl - # hyprnome celluloid evince gnome.eog @@ -53,8 +53,6 @@ xfce.xfconf ]; - services.cliphist.enable = lib.mkDefault true; - xdg.configFile."xfce4/helpers.rc".text = '' TerminalEmulator=alacritty FileManager=thunar @@ -158,6 +156,7 @@ exec-once = ${pkgs.hypridle}/bin/hypridle exec-once = ${pkgs.swayosd}/bin/swayosd-server exec-once = ${pkgs.networkmanagerapplet}/bin/nm-applet + exec-once = ${pkgs.trayscale}/bin/trayscale --hide-window # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ @@ -249,7 +248,7 @@ # Firefox picture-in-picture windowrulev2 = float, class:^(firefox)$, title:^(Picture-in-Picture)$ windowrulev2 = pin, class:^(firefox)$, title:^(Picture-in-Picture)$ - windowrulev2 = move 75% 20%, class:^(firefox)$, title:^(Picture-in-Picture)$ + windowrulev2 = move 75% 20%, class:^(firefox)$, title:^(Picture-in-Picture)$ windowrulev2 = center(1),class:(blueberry.py) windowrulev2 = center(1),class:(nmtui) diff --git a/homeManagerModules/desktop/hypr/hyprpaper/default.nix b/homeManagerModules/desktop/hypr/hyprpaper/default.nix index 182a42bf..f8a151de 100644 --- a/homeManagerModules/desktop/hypr/hyprpaper/default.nix +++ b/homeManagerModules/desktop/hypr/hyprpaper/default.nix @@ -15,8 +15,6 @@ # Packages that should be installed to the user profile. home.packages = with pkgs; [hyprpaper]; - alyraffauf.desktop.hyprland.hyprpaper.randomWallpaper.enable = lib.mkDefault true; - xdg.configFile."hypr/hyprpaper.conf".source = ./hyprpaper.conf; }; } diff --git a/homeManagerModules/desktop/river/default.nix b/homeManagerModules/desktop/river/default.nix index fa94ad9a..e074ccf4 100644 --- a/homeManagerModules/desktop/river/default.nix +++ b/homeManagerModules/desktop/river/default.nix @@ -11,14 +11,22 @@ }; config = lib.mkIf config.alyraffauf.desktop.river.enable { - # Basic apps needed to run a riverwm desktop. - alyraffauf.apps.waybar.enable = lib.mkDefault true; - alyraffauf.apps.mako.enable = lib.mkDefault true; - alyraffauf.apps.fuzzel.enable = lib.mkDefault true; - alyraffauf.apps.wlogout.enable = lib.mkDefault true; - alyraffauf.apps.alacritty.enable = lib.mkDefault true; - alyraffauf.apps.firefox.enable = lib.mkDefault true; - alyraffauf.apps.kanshi.enable = lib.mkDefault true; + alyraffauf = { + apps = { + waybar.enable = lib.mkDefault true; + mako.enable = lib.mkDefault true; + fuzzel.enable = lib.mkDefault true; + wlogout.enable = lib.mkDefault true; + alacritty.enable = lib.mkDefault true; + firefox.enable = lib.mkDefault true; + kanshi.enable = lib.mkDefault true; + }; + desktop.river.randomWallpaper.enable = lib.mkDefault true; + }; + + programs.swaylock.enable = lib.mkDefault true; + + services.cliphist.enable = lib.mkDefault true; # Packages that should be installed to the user profile. home.packages = with pkgs; [ @@ -45,12 +53,6 @@ swayidle ]; - alyraffauf.desktop.river.randomWallpaper.enable = lib.mkDefault true; - - programs.swaylock.enable = lib.mkDefault true; - - services.cliphist.enable = lib.mkDefault true; - xdg.configFile."xfce4/helpers.rc".text = '' TerminalEmulator=alacritty FileManager=thunar diff --git a/homeManagerModules/desktop/river/theme.nix b/homeManagerModules/desktop/river/theme.nix deleted file mode 100644 index 266d6e06..00000000 --- a/homeManagerModules/desktop/river/theme.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: { - options = { - alyraffauf.desktop.hyprland.theme.enable = - lib.mkEnableOption "Hyprland GTK and Qt themes."; - }; - - config = lib.mkIf config.alyraffauf.desktop.hyprland.theme.enable { - home.pointerCursor = { - gtk.enable = true; - x11.enable = true; - package = pkgs.catppuccin-cursors.frappeDark; - name = "Catppuccin-Frappe-Dark-Cursors"; - size = 24; - }; - - qt = { - enable = true; - platformTheme = "gtk"; - style.name = "gtk2"; - }; - - gtk = { - enable = true; - - theme = { - package = pkgs.catppuccin-gtk.override { - accents = ["mauve"]; - size = "compact"; - variant = "frappe"; - tweaks = ["normal"]; - }; - name = "Catppuccin-Frappe-Compact-Mauve-Dark"; - }; - - iconTheme = { - package = pkgs.catppuccin-papirus-folders.override { - flavor = "frappe"; - accent = "mauve"; - }; - name = "Papirus-Dark"; - }; - - font = { - name = "NotoSans Nerd Font Regular"; - package = pkgs.nerdfonts.override {fonts = ["Noto"];}; - size = 11; - }; - - gtk3.extraConfig = {gtk-application-prefer-dark-theme = 1;}; - - gtk4.extraConfig = {gtk-application-prefer-dark-theme = 1;}; - }; - - dconf.settings = { - "org/gnome/desktop/interface" = { - gtk-theme = "Catppuccin-Frappe-Compact-Mauve-Dark"; - color-scheme = "prefer-dark"; - cursor-theme = "Catppuccin-Frappe-Dark-Cursors"; - cursor-size = 24; - }; - }; - }; -} diff --git a/homeManagerModules/desktop/sway/config b/homeManagerModules/desktop/sway/config deleted file mode 100644 index beb471f1..00000000 --- a/homeManagerModules/desktop/sway/config +++ /dev/null @@ -1,108 +0,0 @@ -font pango:monospace 8.000000 -floating_modifier Mod1 -default_border normal 2 -default_floating_border normal 2 -hide_edge_borders none -focus_wrapping no -focus_follows_mouse yes -focus_on_window_activation smart -mouse_warping output -workspace_layout default -workspace_auto_back_and_forth no -client.focused #4c7899 #285577 #ffffff #2e9ef4 #285577 -client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a -client.unfocused #333333 #222222 #888888 #292d2e #222222 -client.urgent #2f343a #900000 #ffffff #900000 #900000 -client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c -client.background #ffffff - -bindsym Mod1+0 workspace number 10 -bindsym Mod1+1 workspace number 1 -bindsym Mod1+2 workspace number 2 -bindsym Mod1+3 workspace number 3 -bindsym Mod1+4 workspace number 4 -bindsym Mod1+5 workspace number 5 -bindsym Mod1+6 workspace number 6 -bindsym Mod1+7 workspace number 7 -bindsym Mod1+8 workspace number 8 -bindsym Mod1+9 workspace number 9 -bindsym Mod1+Down focus down -bindsym Mod1+Left focus left -bindsym Mod1+Return exec alacritty -bindsym Mod1+Right focus right -bindsym Mod1+Shift+0 move container to workspace number 10 -bindsym Mod1+Shift+1 move container to workspace number 1 -bindsym Mod1+Shift+2 move container to workspace number 2 -bindsym Mod1+Shift+3 move container to workspace number 3 -bindsym Mod1+Shift+4 move container to workspace number 4 -bindsym Mod1+Shift+5 move container to workspace number 5 -bindsym Mod1+Shift+6 move container to workspace number 6 -bindsym Mod1+Shift+7 move container to workspace number 7 -bindsym Mod1+Shift+8 move container to workspace number 8 -bindsym Mod1+Shift+9 move container to workspace number 9 -bindsym Mod1+Shift+Down move down -bindsym Mod1+Shift+Left move left -bindsym Mod1+Shift+Right move right -bindsym Mod1+Shift+Up move up -bindsym Mod1+Shift+c reload -bindsym Mod1+Shift+e exec wlogout -bindsym Mod1+Shift+h move left -bindsym Mod1+Shift+j move down -bindsym Mod1+Shift+k move up -bindsym Mod1+Shift+l move right -bindsym Mod1+Shift+minus move scratchpad -bindsym Mod1+Shift+q kill -bindsym Mod1+Shift+space floating toggle -bindsym Mod1+Up focus up -bindsym Mod1+a focus parent -bindsym Mod1+b splith -bindsym Mod1+d exec fuzzel -bindsym Mod1+e layout toggle split -bindsym Mod1+f fullscreen toggle -bindsym Mod1+h focus left -bindsym Mod1+j focus down -bindsym Mod1+k focus up -bindsym Mod1+l focus right -bindsym Mod1+minus scratchpad show -bindsym Mod1+r mode resize -bindsym Mod1+s layout stacking -bindsym Mod1+space focus mode_toggle -bindsym Mod1+v splitv -bindsym Mod1+w layout tabbed - -mode "resize" { - bindsym Down resize grow height 10 px - bindsym Escape mode default - bindsym Left resize shrink width 10 px - bindsym Return mode default - bindsym Right resize grow width 10 px - bindsym Up resize shrink height 10 px - bindsym h resize shrink width 10 px - bindsym j resize grow height 10 px - bindsym k resize shrink height 10 px - bindsym l resize grow width 10 px -} - -bar { - font pango:monospace 8.000000 - mode dock - hidden_state hide - position bottom - status_command /nix/store/dg4f4b9zcl0cn0993qaw5dd4nny6zm8j-i3status-2.14/bin/i3status - swaybar_command /nix/store/4qg7qmx19n0c1z26fjbxfndr6v7vbaxy-sway-1.9/bin/swaybar - workspace_buttons yes - strip_workspace_numbers no - tray_output primary - colors { - background #000000 - statusline #ffffff - separator #666666 - focused_workspace #4c7899 #285577 #ffffff - active_workspace #333333 #5f676a #ffffff - inactive_workspace #333333 #222222 #888888 - urgent_workspace #2f343a #900000 #ffffff - binding_mode #2f343a #900000 #ffffff - } -} - -exec "/nix/store/f9w2kp8y55zvcyz33b5lnr7qwhx652y8-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP XDG_SESSION_TYPE NIXOS_OZONE_WL XCURSOR_THEME XCURSOR_SIZE; systemctl --user start sway-session.target" diff --git a/homeManagerModules/desktop/sway/default.nix b/homeManagerModules/desktop/sway/default.nix index 363122ad..49dfa1d2 100644 --- a/homeManagerModules/desktop/sway/default.nix +++ b/homeManagerModules/desktop/sway/default.nix @@ -9,19 +9,19 @@ }; config = lib.mkIf config.alyraffauf.desktop.sway.enable { - # Basic apps needed to run a hyprland desktop. - alyraffauf.apps.waybar.enable = lib.mkDefault true; - alyraffauf.apps.mako.enable = lib.mkDefault true; - alyraffauf.apps.fuzzel.enable = lib.mkDefault true; - alyraffauf.apps.wlogout.enable = lib.mkDefault true; - alyraffauf.apps.alacritty.enable = lib.mkDefault true; - alyraffauf.apps.firefox.enable = lib.mkDefault true; - alyraffauf.apps.kanshi.enable = lib.mkDefault true; - + alyraffauf = { + apps = { + waybar.enable = lib.mkDefault true; + mako.enable = lib.mkDefault true; + fuzzel.enable = lib.mkDefault true; + wlogout.enable = lib.mkDefault true; + alacritty.enable = lib.mkDefault true; + firefox.enable = lib.mkDefault true; + kanshi.enable = lib.mkDefault true; + }; + }; # Packages that should be installed to the user profile. home.packages = with pkgs; [ - # brightnessctl - # hyprnome celluloid evince gnome.eog diff --git a/homeManagerModules/services/default.nix b/homeManagerModules/services/default.nix index 99f96960..a97863ed 100644 --- a/homeManagerModules/services/default.nix +++ b/homeManagerModules/services/default.nix @@ -5,6 +5,4 @@ ... }: { imports = [./syncthing ./easyeffects ./mpd]; - - alyraffauf.services.syncthing.enable = lib.mkDefault true; } diff --git a/hosts/fallarbor/default.nix b/hosts/fallarbor/default.nix new file mode 100644 index 00000000..f752e1d0 --- /dev/null +++ b/hosts/fallarbor/default.nix @@ -0,0 +1,54 @@ +# Framework 13 with 11th gen Intel Core i5, 16GB RAM, 512GB SSD. +{ + config, + pkgs, + ... +}: { + imports = [ + ./disko.nix + ./hardware-configuration.nix # Include the results of the hardware scan. + ./home.nix + ]; + + boot = { + # Bootloader. + loader.systemd-boot.enable = true; + loader.efi.canTouchEfiVariables = true; + + # Use latest Linux kernel. + kernelPackages = pkgs.linuxPackages_latest; + }; + + networking.hostName = "fallarbor"; # Define your hostname. + + services = { + fwupd.enable = true; + fprintd.package = pkgs.fprintd.overrideAttrs { + mesonCheckFlags = ["--no-suite" "fprintd:TestPamFprintd"]; + }; + }; + + alyraffauf = { + system = { + plymouth.enable = true; + zramSwap = {enable = true;}; + }; + user = { + aly.enable = true; + dustin.enable = true; + }; + desktop = { + enable = true; + hyprland.enable = true; + }; + apps = { + flatpak.enable = true; + steam.enable = true; + }; + }; + + users.users.dustin.hashedPassword = "$y$j9T$OXQYhj4IWjRJWWYsSwcqf.$lCcdq9S7m0EAdej9KMHWj9flH8K2pUb2gitNhLTlLG/"; + users.users.aly.hashedPassword = "$y$j9T$Ug0ZLHQQuRciFJDgOI6r00$eHc.KyQY0oU4k0LKRiZiGWJ19jkKNWHpOoyCJbtJif8"; + + system.stateVersion = "23.11"; +} diff --git a/hosts/fallarbor/disko.nix b/hosts/fallarbor/disko.nix new file mode 100644 index 00000000..1d4f0fc5 --- /dev/null +++ b/hosts/fallarbor/disko.nix @@ -0,0 +1,51 @@ +{ + disko.devices = { + disk = { + vdb = { + type = "disk"; + device = "/dev/nvme0n1"; + content = { + type = "gpt"; + partitions = { + ESP = { + priority = 1; + name = "ESP"; + start = "1M"; + end = "1024M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + root = { + size = "100%"; + content = { + type = "btrfs"; + extraArgs = ["-f"]; # Override existing partition + # Subvolumes must set a mountpoint in order to be mounted, + # unless their parent is mounted + subvolumes = { + # Subvolume name is different from mountpoint + "rootfs" = {mountpoint = "/";}; + # Subvolume name is the same as the mountpoint + "home" = { + mountOptions = ["compress=zstd"]; + mountpoint = "/home"; + }; + # Parent is not mounted so the mountpoint must be set + "nix" = { + mountOptions = ["compress=zstd" "noatime"]; + mountpoint = "/nix"; + }; + }; + mountpoint = "/partition-root"; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/hosts/fallarbor/hardware-configuration.nix b/hosts/fallarbor/hardware-configuration.nix new file mode 100644 index 00000000..00039d64 --- /dev/null +++ b/hosts/fallarbor/hardware-configuration.nix @@ -0,0 +1,47 @@ +{ + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [(modulesPath + "/installer/scan/not-detected.nix")]; + + boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; + + # Intel drivers with accelerated video playback support. + nixpkgs.config.packageOverrides = pkgs: { + intel-vaapi-driver = + pkgs.intel-vaapi-driver.override {enableHybridCodec = true;}; + }; + + hardware.opengl = { + enable = true; + extraPackages = with pkgs; [ + intel-media-driver # LIBVA_DRIVER_NAME=iHD + intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) + libvdpau-va-gl + ]; + }; + + environment.sessionVariables = { + LIBVA_DRIVER_NAME = "iHD"; + }; # Force intel-media-driver + + # Save power/better manage heat & fans. + powerManagement.powertop.enable = true; + services.thermald.enable = true; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/fallarbor/home.nix b/hosts/fallarbor/home.nix new file mode 100644 index 00000000..792e2209 --- /dev/null +++ b/hosts/fallarbor/home.nix @@ -0,0 +1,18 @@ +{ + inputs, + config, + pkgs, + lib, + ... +}: { + home-manager.users = { + aly = { + imports = [../../homeManagerModules ../../aly.nix]; + home.stateVersion = "23.11"; + }; + dustin = { + imports = [../../homeManagerModules ../../dustin.nix]; + home.stateVersion = "23.11"; + }; + }; +} diff --git a/hosts/lavaridge/default.nix b/hosts/lavaridge/default.nix index e7b95721..059368b6 100644 --- a/hosts/lavaridge/default.nix +++ b/hosts/lavaridge/default.nix @@ -29,21 +29,24 @@ }; }; - alyraffauf.system = { - plymouth.enable = true; - zramSwap.enable = true; - }; - - alyraffauf.desktop = { - enable = true; - hyprland.enable = true; - }; - - alyraffauf.apps = { - flatpak.enable = true; - podman.enable = true; - steam.enable = true; - virt-manager.enable = true; + alyraffauf = { + system = { + plymouth.enable = true; + zramSwap = {enable = true;}; + }; + user = { + aly.enable = true; + dustin.enable = true; + }; + desktop = { + enable = true; + hyprland.enable = true; + }; + apps = { + steam.enable = true; + podman.enable = true; + virt-manager.enable = true; + }; }; users.users.aly.hashedPassword = "$y$j9T$O9NgTk6iRfh3mxiRDvfdm1$BjvsAKYEMB3C28652FF15cj/i.3TgQAObQvR0rN1E6C"; diff --git a/hosts/lavaridge/home.nix b/hosts/lavaridge/home.nix index b72d00b9..7016e5bf 100644 --- a/hosts/lavaridge/home.nix +++ b/hosts/lavaridge/home.nix @@ -6,16 +6,7 @@ ... }: { home-manager.users.aly = { - imports = [../../homeManagerModules]; - home.username = "aly"; - home.homeDirectory = "/home/aly"; - + imports = [../../homeManagerModules ../../aly.nix]; home.stateVersion = "23.11"; - programs.home-manager.enable = true; - - alyraffauf.services.easyeffects = { - enable = true; - preset = "framework13.json"; - }; }; } diff --git a/hosts/mauville/default.nix b/hosts/mauville/default.nix index 7527cee9..9d19abc5 100644 --- a/hosts/mauville/default.nix +++ b/hosts/mauville/default.nix @@ -13,19 +13,28 @@ networking.hostName = "mauville"; # Define your hostname. - alyraffauf.system = { - zramSwap = { - enable = true; - size = 100; + alyraffauf = { + system = { + plymouth.enable = true; + zramSwap = { + enable = true; + size = 100; + }; + }; + user = { + aly.enable = true; + dustin.enable = true; + }; + desktop = { + enable = true; + hyprland.enable = true; + }; + homeLab.enable = true; + apps = { + steam.enable = true; + podman.enable = true; + virt-manager.enable = true; }; - }; - - alyraffauf.homeLab.enable = true; - alyraffauf.desktop.enable = true; - - alyraffauf.apps = { - flatpak.enable = true; - steam.enable = true; }; system.stateVersion = "23.11"; diff --git a/hosts/mauville/home.nix b/hosts/mauville/home.nix index 67c266c0..58f43dfb 100644 --- a/hosts/mauville/home.nix +++ b/hosts/mauville/home.nix @@ -6,13 +6,8 @@ ... }: { home-manager.users.aly = { - imports = [../../homeManagerModules]; - home.username = "aly"; - home.homeDirectory = "/home/aly"; - - home.stateVersion = "23.11"; - programs.home-manager.enable = true; - + imports = [../../homeManagerModules ../../aly.nix]; xdg.userDirs.music = "/mnt/Media/Music"; + home.stateVersion = "23.11"; }; } diff --git a/hosts/petalburg/default.nix b/hosts/petalburg/default.nix index 188b64b6..a4777e90 100644 --- a/hosts/petalburg/default.nix +++ b/hosts/petalburg/default.nix @@ -71,22 +71,27 @@ in { environment.systemPackages = [cs-adjuster cs-adjuster-plasma pp-adjuster]; - alyraffauf.desktop = { - enable = true; - hyprland.enable = true; + alyraffauf = { + system = { + plymouth.enable = true; + zramSwap = {enable = true;}; + }; + user = { + aly.enable = true; + dustin.enable = true; + }; + desktop = { + enable = true; + hyprland.enable = true; + }; + apps = { + steam.enable = true; + podman.enable = true; + virt-manager.enable = true; + }; }; - alyraffauf.system = { - plymouth.enable = true; - zramSwap = {enable = true;}; - }; - - alyraffauf.apps = { - flatpak.enable = true; - podman.enable = true; - steam.enable = true; - virt-manager.enable = true; - }; + users.users.aly.hashedPassword = "$y$j9T$Ug0ZLHQQuRciFJDgOI6r00$eHc.KyQY0oU4k0LKRiZiGWJ19jkKNWHpOoyCJbtJif8"; system.stateVersion = "23.11"; } diff --git a/hosts/petalburg/home.nix b/hosts/petalburg/home.nix index d3fd38cb..7016e5bf 100644 --- a/hosts/petalburg/home.nix +++ b/hosts/petalburg/home.nix @@ -5,13 +5,8 @@ lib, ... }: { - users.users.aly.hashedPassword = "$y$j9T$Ug0ZLHQQuRciFJDgOI6r00$eHc.KyQY0oU4k0LKRiZiGWJ19jkKNWHpOoyCJbtJif8"; home-manager.users.aly = { - imports = [../../homeManagerModules]; - home.username = "aly"; - home.homeDirectory = "/home/aly"; - + imports = [../../homeManagerModules ../../aly.nix]; home.stateVersion = "23.11"; - programs.home-manager.enable = true; }; } diff --git a/hosts/rustboro/default.nix b/hosts/rustboro/default.nix index 8eccba7c..6b92123f 100644 --- a/hosts/rustboro/default.nix +++ b/hosts/rustboro/default.nix @@ -44,23 +44,28 @@ networking.hostName = "rustboro"; # Define your hostname. - alyraffauf.system = { - plymouth.enable = true; - zramSwap = { + alyraffauf = { + system = { + plymouth.enable = true; + zramSwap = { + enable = true; + size = 100; + }; + }; + user = { + aly.enable = true; + dustin.enable = true; + }; + desktop = { enable = true; - size = 100; + hyprland.enable = true; + }; + apps = { + steam.enable = true; }; }; - alyraffauf.desktop = { - enable = true; - hyprland.enable = true; - }; - - alyraffauf.apps = { - flatpak.enable = true; - steam.enable = false; - }; + users.users.aly.hashedPassword = "$y$j9T$VdtiEyMOegHpcUwgmCVFD0$K8Ne6.zk//VJNq2zxVQ0xE0Wg3LohvAQd3Xm9aXdM15"; # environment.persistence."/persist" = { # hideMounts = true; diff --git a/hosts/rustboro/home.nix b/hosts/rustboro/home.nix index 47a8b1c1..252ed0ca 100644 --- a/hosts/rustboro/home.nix +++ b/hosts/rustboro/home.nix @@ -5,39 +5,13 @@ lib, ... }: { - alyraffauf.user.dustin.enable = true; - - users.users.dustin.hashedPassword = "$y$j9T$OXQYhj4IWjRJWWYsSwcqf.$lCcdq9S7m0EAdej9KMHWj9flH8K2pUb2gitNhLTlLG/"; - - home-manager.users.dustin = { - imports = [../../homeManagerModules]; - home.username = "dustin"; - home.homeDirectory = "/home/dustin"; - - home.stateVersion = "23.11"; - programs.home-manager.enable = true; - - alyraffauf.desktop.hyprland.hyprpaper.randomWallpaper.enable = false; - - alyraffauf.services.easyeffects = { - enable = true; - preset = "LoudnessEqualizer.json"; - }; - }; - - users.users.aly.hashedPassword = "$y$j9T$VdtiEyMOegHpcUwgmCVFD0$K8Ne6.zk//VJNq2zxVQ0xE0Wg3LohvAQd3Xm9aXdM15"; - home-manager.users.aly = { - imports = [../../homeManagerModules]; - home.username = "aly"; - home.homeDirectory = "/home/aly"; - - home.stateVersion = "23.11"; - programs.home-manager.enable = true; - + imports = [../../homeManagerModules ../../aly.nix]; + xdg.userDirs.music = "/mnt/Media/Music"; alyraffauf.services.easyeffects = { enable = true; preset = "LoudnessEqualizer.json"; }; + home.stateVersion = "23.11"; }; } diff --git a/nixosModules/desktop/default.nix b/nixosModules/desktop/default.nix index 23a1d2f7..c7d7b084 100644 --- a/nixosModules/desktop/default.nix +++ b/nixosModules/desktop/default.nix @@ -31,7 +31,5 @@ fonts = ["DroidSansMono" "FiraCode" "FiraMono" "Hack" "Noto"]; }) ]; - - alyraffauf.desktop.hyprland.enable = lib.mkDefault true; }; } diff --git a/nixosModules/desktop/hyprland/default.nix b/nixosModules/desktop/hyprland/default.nix index d5393aca..51da0f0f 100644 --- a/nixosModules/desktop/hyprland/default.nix +++ b/nixosModules/desktop/hyprland/default.nix @@ -11,27 +11,33 @@ }; config = lib.mkIf config.alyraffauf.desktop.hyprland.enable { - services.greetd = { - enable = true; - settings = rec { - default_session = { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland"; + services = { + dbus.packages = [pkgs.gcr]; + greetd = { + enable = true; + settings = rec { + default_session = { + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland"; + }; }; }; + udev.packages = [pkgs.swayosd]; }; - security.pam.services.greetd.enableKwallet = true; - security.pam.services.greetd.enableGnomeKeyring = true; - security.pam.services.swaylock = {}; + security.pam.services = { + greetd.enableKwallet = true; + greetd.enableGnomeKeyring = true; + swaylock = {}; + }; - programs.hyprland.enable = true; - programs.hyprland.package = - inputs.hyprland.packages.${pkgs.system}.hyprland; - - programs.gnupg.agent.pinentryPackage = pkgs.pinentry-gnome3; - - services.dbus.packages = [pkgs.gcr]; - services.udev.packages = [pkgs.swayosd]; + programs = { + gnupg.agent.pinentryPackage = pkgs.pinentry-gnome3; + hyprland = { + enable = true; + package = + inputs.hyprland.packages.${pkgs.system}.hyprland; + }; + }; environment.sessionVariables.NIXOS_OZONE_WL = "1"; diff --git a/nixosModules/user/default.nix b/nixosModules/user/default.nix index 6c14dc10..191aed48 100644 --- a/nixosModules/user/default.nix +++ b/nixosModules/user/default.nix @@ -6,8 +6,6 @@ }: { imports = [./aly ./dustin]; - alyraffauf.user.aly.enable = lib.mkDefault true; - home-manager = { useGlobalPkgs = true; useUserPackages = true;