From 46fd3957534d3e4c5976a7b3b2e1a8efe5e85ed5 Mon Sep 17 00:00:00 2001 From: David Crompton Date: Mon, 29 Jan 2024 22:59:15 -0500 Subject: [PATCH 1/2] Basic Asahi (to be home manager) config --- flake.nix | 16 ++++++++++ machines/asahi/home.nix | 71 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 machines/asahi/home.nix diff --git a/flake.nix b/flake.nix index 71dff52..ae14736 100644 --- a/flake.nix +++ b/flake.nix @@ -35,6 +35,10 @@ # Will in future be macports based mac-emacs = me-emacs.packages."aarch64-darwin".emacs; }); + + pkgs_linux-x86_64 = nixpkgs.legacyPackages."x86-linux"; + pkgs_linux-aarch64 = nixpkgs.legacyPackages."aarch64-linux"; + in { nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; @@ -76,5 +80,17 @@ } ]; }; + homeConfigurations."universelaptop" = home-manager.lib.homeManagerConfiguration { + pkgs = pkgs_linux-aarch64; + + # Specify your home configuration modules here, for example, + # the path to your home.nix. + modules = [ ./machines/asahi/home.nix ]; + + extraSpecialArgs = { + pkgs-x86_64 = pkgs_linux-x86_64; + inputs = attrs; + }; + }; }; } diff --git a/machines/asahi/home.nix b/machines/asahi/home.nix new file mode 100644 index 0000000..79b7f47 --- /dev/null +++ b/machines/asahi/home.nix @@ -0,0 +1,71 @@ +{ config, pkgs, ... }: + +{ + # Home Manager needs a bit of information about you and the paths it should + # manage. + home.username = "universelaptop"; + home.homeDirectory = "/home/universelaptop"; + + # This value determines the Home Manager release that your configuration is + # compatible with. This helps avoid breakage when a new Home Manager release + # introduces backwards incompatible changes. + # + # You should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + home.stateVersion = "23.11"; # Please read the comment before changing. + + # The home.packages option allows you to install Nix packages into your + # environment. + home.packages = [ + # # Adds the 'hello' command to your environment. It prints a friendly + # # "Hello, world!" when run. + # pkgs.hello + + # # It is sometimes useful to fine-tune packages, for example, by applying + # # overrides. You can do that directly here, just don't forget the + # # parentheses. Maybe you want to install Nerd Fonts with a limited number of + # # fonts? + # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) + + # # You can also create simple shell scripts directly inside your + # # configuration. For example, this adds a command 'my-hello' to your + # # environment: + # (pkgs.writeShellScriptBin "my-hello" '' + # echo "Hello, ${config.home.username}!" + # '') + ]; + + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + home.file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + # Home Manager can also manage your environment variables through + # 'home.sessionVariables'. If you don't want to manage your shell through Home + # Manager then you have to manually source 'hm-session-vars.sh' located at + # either + # + # ~/.nix-profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # /etc/profiles/per-user/universelaptop/etc/profile.d/hm-session-vars.sh + # + home.sessionVariables = { + # EDITOR = "emacs"; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +} From 741c033e01d99c80370a4cff4d3a2391bac99cf4 Mon Sep 17 00:00:00 2001 From: David Crompton Date: Mon, 29 Jan 2024 23:10:03 -0500 Subject: [PATCH 2/2] asahi: basic packages/plan --- machines/asahi/home.nix | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/machines/asahi/home.nix b/machines/asahi/home.nix index 79b7f47..69df72b 100644 --- a/machines/asahi/home.nix +++ b/machines/asahi/home.nix @@ -18,24 +18,15 @@ # The home.packages option allows you to install Nix packages into your # environment. home.packages = [ - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.hello - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') + me-emacs + armcord + # TODO: Make home-manager module for loading x86_64 apps and automatically + # wrapping them in box64-asahi (page size change, like in Fedora repo) + # as well as, with override option, to enable support for box86/wine ]; + services.nextcloud-client.enable; + # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. home.file = { @@ -63,7 +54,7 @@ # /etc/profiles/per-user/universelaptop/etc/profile.d/hm-session-vars.sh # home.sessionVariables = { - # EDITOR = "emacs"; + EDITOR = "emacs"; }; # Let Home Manager install and manage itself.