From c8e53bf6454279e55f2dec0091b16da17f62f792 Mon Sep 17 00:00:00 2001 From: elwrcl Date: Wed, 22 Apr 2026 23:19:17 +0300 Subject: [PATCH] added nix-darwin support Signed-off-by: elwrcl --- darwin/default.nix | 46 +++++ flake.nix | 88 ++++++--- hardwareconfigurator.sh => hardconf.sh | 0 home/darwin.nix | 21 +++ home/default.nix | 237 ------------------------- home/linux.nix | 125 +++++++++++++ home/shared.nix | 136 ++++++++++++++ 7 files changed, 388 insertions(+), 265 deletions(-) create mode 100644 darwin/default.nix rename hardwareconfigurator.sh => hardconf.sh (100%) create mode 100644 home/darwin.nix delete mode 100644 home/default.nix create mode 100644 home/linux.nix create mode 100644 home/shared.nix diff --git a/darwin/default.nix b/darwin/default.nix new file mode 100644 index 0000000..8c5415e --- /dev/null +++ b/darwin/default.nix @@ -0,0 +1,46 @@ +{ + pkgs, + inputs, + system, + ... +}: + +{ + system.stateVersion = 6; + nixpkgs.hostPlatform = system; + + users.users.elars = { + home = "/Users/elars"; + shell = pkgs.zsh; + }; + + programs.zsh.enable = true; + + nix.settings = { + experimental-features = [ + "nix-command" + "flakes" + ]; + substituters = [ + "https://cache.nixos.org" + "https://nix-community.cachix.org" + ]; + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + ]; + }; + + system.defaults = { + dock.autohide = true; + finder.AppleShowAllExtensions = true; + NSGlobalDomain.AppleInterfaceStyle = "Dark"; + NSGlobalDomain.KeyRepeat = 2; + NSGlobalDomain.InitialKeyRepeat = 15; + }; + + programs.nh = { + enable = true; + flake = "/Users/elars/copland"; + }; +} diff --git a/flake.nix b/flake.nix index 4dae680..c21ec56 100644 --- a/flake.nix +++ b/flake.nix @@ -1,8 +1,12 @@ { - description = "copland nixos configurations"; + description = "copland, linux/darwin niximator"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nix-darwin = { + url = "github:LnL7/nix-darwin"; + inputs.nixpkgs.follows = "nixpkgs"; + }; nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release"; zen-browser.url = "github:0xc000022070/zen-browser-flake"; oceanix.url = "github:LEXUGE/oceanix"; @@ -34,41 +38,69 @@ inputs@{ self, nixpkgs, + nix-darwin, home-manager, nix-cachyos-kernel, ... }: let - system = "x86_64-linux"; + linuxSystem = "x86_64-linux"; + darwinSystem = "x86_64-darwin"; in { - nixosConfigurations = { - copland = nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs system; }; - - modules = [ - { nixpkgs.hostPlatform = system; } - home-manager.nixosModules.home-manager - { - nixpkgs.overlays = [ - nix-cachyos-kernel.overlays.default - (final: prev: { - copetch = inputs.copetch.packages.${system}.default; - }) - ]; - nixpkgs.config.allowUnfree = true; - - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { inherit inputs system; }; - users.elars = import ./home; - }; - } - ./machine.nix - ./nixos/default.nix - ]; + nixosConfigurations.copland = nixpkgs.lib.nixosSystem { + specialArgs = { + inherit inputs; + system = linuxSystem; }; + modules = [ + { nixpkgs.hostPlatform = linuxSystem; } + home-manager.nixosModules.home-manager + { + nixpkgs.overlays = [ + nix-cachyos-kernel.overlays.default + (final: prev: { + copetch = inputs.copetch.packages.${linuxSystem}.default; + }) + ]; + nixpkgs.config.allowUnfree = true; + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { + inherit inputs; + system = linuxSystem; + }; + users.elars = import ./home/linux.nix; + }; + } + ./machine.nix + ./nixos/default.nix + ]; + }; + + darwinConfigurations.copland = nix-darwin.lib.darwinSystem { + specialArgs = { + inherit inputs; + system = darwinSystem; + }; + modules = [ + home-manager.darwinModules.home-manager + { + nixpkgs.hostPlatform = darwinSystem; + nixpkgs.config.allowUnfree = true; + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { + inherit inputs; + system = darwinSystem; + }; + users.elars = import ./home/darwin.nix; + }; + } + ./darwin/default.nix + ]; }; }; } diff --git a/hardwareconfigurator.sh b/hardconf.sh similarity index 100% rename from hardwareconfigurator.sh rename to hardconf.sh diff --git a/home/darwin.nix b/home/darwin.nix new file mode 100644 index 0000000..643e34c --- /dev/null +++ b/home/darwin.nix @@ -0,0 +1,21 @@ +{ + pkgs, + inputs, + system, + ... +}: + +{ + imports = [ ./shared.nix ]; + + home.homeDirectory = "/Users/elars"; + + # macOS-shell + home.sessionVariables = { + BROWSER = "open"; + }; + + home.packages = with pkgs; [ + # buraya ekleyecem + ]; +} diff --git a/home/default.nix b/home/default.nix deleted file mode 100644 index 1fcb1cb..0000000 --- a/home/default.nix +++ /dev/null @@ -1,237 +0,0 @@ -{ - pkgs, - ... -}: - -{ - imports = [ - ./hyprland.nix - ]; - - home.username = "elars"; - home.homeDirectory = "/home/elars"; - home.stateVersion = "25.05"; - - home.pointerCursor = { - name = "Bibata-Modern-Classic"; - package = pkgs.bibata-cursors; - size = 24; - gtk.enable = true; - x11.enable = true; - }; - - programs.zsh = { - enable = true; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - initContent = builtins.readFile ./dots/zsh/.zshrc; - }; - - programs.ghostty = { - enable = true; - settings = { - font-family = "JetBrainsMono Nerd Font"; - font-size = 10; - background-opacity = 0.8; - window-padding-x = 10; - window-padding-y = 10; - }; - }; - programs.starship.enable = true; - programs.fzf.enable = true; - programs.zoxide.enable = true; - programs.home-manager.enable = true; - - # i really hate that easyeffects - services.easyeffects.enable = true; - - qt = { - enable = true; - platformTheme.name = "gtk3"; - style = { - name = "adwaita-dark"; - package = pkgs.adwaita-qt; - }; - }; - - gtk = { - enable = true; - theme = { - name = "Adwaita-dark"; - package = pkgs.gnome-themes-extra; - }; - gtk4 = { - theme = { - name = "Adwaita-dark"; - package = pkgs.gnome-themes-extra; - }; - }; - }; - - home.sessionVariables = { - BROWSER = "zen-beta.desktop"; - }; - - xdg.configFile = { - "fastfetch".source = ./dots/fastfetch; - "fish/conf.d".source = ./dots/fish/conf.d; - }; - xdg.mimeApps = { - enable = true; - defaultApplications = { - "inode/directory" = [ "org.gnome.Nautilus.desktop" ]; - "x-scheme-handler/http" = [ "zen-beta.desktop" ]; - "x-scheme-handler/https" = [ "zen-beta.desktop" ]; - "x-scheme-handler/about" = [ "zen-beta.desktop" ]; - "x-scheme-handler/unknown" = [ "zen-beta.desktop" ]; - }; - }; - dconf.settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - gtk-application-prefer-dark-theme = true; - gtk-theme = "Adwaita-dark"; - }; - "org/gnome/nautilus/preferences" = { - default-folder-viewer = "icon-view"; - }; - }; - - fonts.fontconfig.enable = true; - home.packages = with pkgs; [ - - # cli - eza - bat - ani-cli - fd - micro - fastfetch - zoxide - trash-cli - rsync - tldr - jq - zip - p7zip - rar - dos2unix - unzip - wget - autossh - direnv - fish - git - cachix - btop - alacritty - kitty - xdg-utils - - # hardware - hidapi - vulkan-tools - libva-utils - mesa-demos - intel-gpu-tools - clinfo - - # desktop - xdotool - wl-clipboard - waybar - wofi - fuzzel - swaylock - swayidle - feh - eww - easyeffects - swappy - grim - slurp - wf-recorder - tesseract - - # media - mpv - mpvpaper - obs-studio - ffmpeg - yt-dlp - imagemagick - cava - pavucontrol - playerctl - pamixer - - # editors - vim - neovim - helix - vscode - zed-editor - - # dev tools - nil - github-copilot-cli - nixpkgs-fmt - gnumake - sqlite - picotool - stripe-cli - openssl - pkg-config - aubio - docker-compose - cargo-tauri - trunk - dioxus-cli - uv - - # langs - ghc - go - rustup - gcc - binutils - zig - lua - glm - - # themes and icons - bibata-cursors - gnome-themes-extra - papirus-icon-theme - adwaita-icon-theme - adwaita-qt6 - gnome-icon-theme - hicolor-icon-theme - pantheon.elementary-icon-theme - tango-icon-theme - arc-icon-theme - - # apps - heroic - bottles - prismlauncher - telegram-desktop - onlyoffice-desktopeditors - nautilus - loupe - qbittorrent - localsend - jellyfin-media-player - calibre - qalculate-gtk - libqalculate - blender - wine - antigravity - spotatui - whatsapp-electron - equibop - discord - ]; -} diff --git a/home/linux.nix b/home/linux.nix new file mode 100644 index 0000000..1688308 --- /dev/null +++ b/home/linux.nix @@ -0,0 +1,125 @@ +{ + pkgs, + inputs, + system, + ... +}: + +{ + imports = [ + ./shared.nix + ./hyprland.nix + ]; + + home.homeDirectory = "/home/elars"; + + home.pointerCursor = { + name = "Bibata-Modern-Classic"; + package = pkgs.bibata-cursors; + size = 24; + gtk.enable = true; + x11.enable = true; + }; + + services.easyeffects.enable = true; + + qt = { + enable = true; + platformTheme.name = "gtk3"; + style = { + name = "adwaita-dark"; + package = pkgs.adwaita-qt; + }; + }; + + gtk = { + enable = true; + theme = { + name = "Adwaita-dark"; + package = pkgs.gnome-themes-extra; + }; + gtk4.theme = { + name = "Adwaita-dark"; + package = pkgs.gnome-themes-extra; + }; + }; + + dconf.settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + gtk-application-prefer-dark-theme = true; + gtk-theme = "Adwaita-dark"; + }; + "org/gnome/nautilus/preferences" = { + default-folder-viewer = "icon-view"; + }; + }; + + xdg.mimeApps = { + enable = true; + defaultApplications = { + "inode/directory" = [ "org.gnome.Nautilus.desktop" ]; + "x-scheme-handler/http" = [ "zen-beta.desktop" ]; + "x-scheme-handler/https" = [ "zen-beta.desktop" ]; + "x-scheme-handler/about" = [ "zen-beta.desktop" ]; + "x-scheme-handler/unknown" = [ "zen-beta.desktop" ]; + }; + }; + + home.sessionVariables = { + BROWSER = "zen-beta.desktop"; + }; + + home.packages = with pkgs; [ + # wayland-specific + xdotool + wl-clipboard + waybar + wofi + fuzzel + swaylock + swayidle + feh + eww + easyeffects + swappy + grim + slurp + wf-recorder + tesseract + obs-studio + mpvpaper + + # hardware tools (linux-only) + vulkan-tools + libva-utils + mesa-demos + intel-gpu-tools + clinfo + hidapi + # apps + heroic + bottles + prismlauncher + nautilus + loupe + equibop + discord + whatsapp-electron + spotatui + antigravity + picotool + + # input + adwaita-qt + gnome-icon-theme + hicolor-icon-theme + pantheon.elementary-icon-theme + tango-icon-theme + arc-icon-theme + inputs.zen-browser.packages.${system}.default + inputs.helium.packages.${system}.default + inputs.noctalia.packages.${system}.default + pkgs.qt6Packages.qtwebsockets + ]; +} diff --git a/home/shared.nix b/home/shared.nix new file mode 100644 index 0000000..7751cf5 --- /dev/null +++ b/home/shared.nix @@ -0,0 +1,136 @@ +{ + pkgs, + inputs, + system, + ... +}: + +{ + home.username = "elars"; + home.stateVersion = "25.05"; + + programs.zsh = { + enable = true; + enableCompletion = true; + autosuggestion.enable = true; + syntaxHighlighting.enable = true; + initContent = builtins.readFile ./dots/zsh/.zshrc; + }; + + programs.ghostty = { + enable = true; + settings = { + font-family = "JetBrainsMono Nerd Font"; + font-size = 10; + background-opacity = 0.8; + window-padding-x = 10; + window-padding-y = 10; + }; + }; + + programs.starship.enable = true; + programs.fzf.enable = true; + programs.zoxide.enable = true; + programs.home-manager.enable = true; + + fonts.fontconfig.enable = true; + + xdg.configFile = { + "fastfetch".source = ./dots/fastfetch; + "fish/conf.d".source = ./dots/fish/conf.d; + }; + + home.packages = with pkgs; [ + # cli + eza + bat + fd + micro + fastfetch + zoxide + trash-cli + rsync + tldr + jq + zip + p7zip + rar + dos2unix + unzip + wget + autossh + direnv + fish + git + cachix + btop + alacritty + kitty + xdg-utils + ani-cli + + # media + mpv + ffmpeg + yt-dlp + imagemagick + cava + pavucontrol + playerctl + pamixer + + # editors + vim + neovim + helix + vscode + zed-editor + + # dev tools + nil + github-copilot-cli + nixpkgs-fmt + gnumake + sqlite + openssl + pkg-config + aubio + docker-compose + cargo-tauri + trunk + dioxus-cli + uv + stripe-cli + + # langs + ghc + go + rustup + gcc + binutils + zig + lua + glm + + # themes/icons + bibata-cursors + gnome-themes-extra + papirus-icon-theme + adwaita-icon-theme + adwaita-qt6 + + # apps + telegram-desktop + onlyoffice-desktopeditors + qbittorrent + localsend + jellyfin-media-player + calibre + qalculate-gtk + libqalculate + blender + wine + + inputs.copetch.packages.${system}.default + ]; +}