Compare commits

...

7 commits

Author SHA1 Message Date
72b9beff29
Switch to installing packages directly from home/linux-desktop.nix
Having everything in a single Pkgs.nix was
actually Claude's idea. I now know that
package lists merge correctly, so this is
redundant and adds unneeded complexity.
Start cleaning up this garbage now.
2025-04-19 19:22:33 -05:00
2174329b96
add more packages to harmony dnf list 2025-04-19 19:22:33 -05:00
99338fe2ed
feat: Add nix-flatpak for Linux desktop systems 2025-04-19 19:22:32 -05:00
42002f9dfd
feat: Add Linux desktop apps 2025-04-19 19:22:32 -05:00
d35395d8da
feat: Add firefoxpwa for Linux 2025-04-19 19:22:32 -05:00
0549ec0cb6
fix: Add profileVersion to Firefox config 2025-04-19 19:22:32 -05:00
724a543f5e
feat: Harmony initial commit to copy to Nix store 2025-04-19 19:22:32 -05:00
7 changed files with 127 additions and 5 deletions

17
flake.lock generated
View file

@ -129,6 +129,22 @@
"type": "github" "type": "github"
} }
}, },
"nix-flatpak": {
"locked": {
"lastModified": 1739444422,
"narHash": "sha256-iAVVHi7X3kWORftY+LVbRiStRnQEob2TULWyjMS6dWg=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "5e54c3ca05a7c7d968ae1ddeabe01d2a9bc1e177",
"type": "github"
},
"original": {
"owner": "gmodena",
"ref": "v0.6.0",
"repo": "nix-flatpak",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1743891346, "lastModified": 1743891346,
@ -188,6 +204,7 @@
"agenix": "agenix", "agenix": "agenix",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"nur": "nur", "nur": "nur",

View file

@ -25,10 +25,11 @@
url = "github:nix-community/NUR"; url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=v0.6.0";
}; };
outputs = { self, nix-darwin, nixpkgs, nixpkgs-unstable, home-manager, agenix outputs = { self, nix-darwin, nixpkgs, nixpkgs-unstable, home-manager, agenix
, rycee-nurpkgs, nur, ... }: , rycee-nurpkgs, nur, nix-flatpak, ... }:
let let
mkHomeConfiguration = { hostname, arch ? "x86_64", os ? "linux" mkHomeConfiguration = { hostname, arch ? "x86_64", os ? "linux"
, desktop ? false, extraModules ? [ ] }: , desktop ? false, extraModules ? [ ] }:
@ -53,7 +54,11 @@
./homes/${hostname}.nix ./homes/${hostname}.nix
agenix.homeManagerModules.default agenix.homeManagerModules.default
] ++ (if desktop then [ ./homes/desktop.nix ] else [ ]) ] ++ (if desktop then [ ./homes/desktop.nix ] else [ ])
++ extraModules; ++ (if (desktop && os == "linux") then [
./homes/linux-desktop.nix
nix-flatpak.homeManagerModules.nix-flatpak
] else
[ ]) ++ extraModules;
extraSpecialArgs = { extraSpecialArgs = {
inherit pkgs-unstable; inherit pkgs-unstable;
inherit firefox-addons; inherit firefox-addons;
@ -74,6 +79,12 @@
"millironx@bosephus" = mkHomeConfiguration { hostname = "bosephus"; }; "millironx@bosephus" = mkHomeConfiguration { hostname = "bosephus"; };
"tchristensen@beocat" = mkHomeConfiguration { hostname = "beocat"; }; "tchristensen@beocat" = mkHomeConfiguration { hostname = "beocat"; };
"millironx@harmony" = mkHomeConfiguration {
hostname = "harmony";
arch = "aarch64";
desktop = true;
};
}; };
darwinConfigurations."corianne" = nix-darwin.lib.darwinSystem { darwinConfigurations."corianne" = nix-darwin.lib.darwinSystem {

View file

@ -16,6 +16,7 @@ in {
inherit firefox-addons; inherit firefox-addons;
inherit buildFirefoxXpiAddon; inherit buildFirefoxXpiAddon;
inherit lib; inherit lib;
inherit pkgs;
}; };
zed-editor = zed-config; zed-editor = zed-config;
}; };

43
homes/harmony.nix Normal file
View file

@ -0,0 +1,43 @@
{ config, lib, pkgs, pkgs-unstable, ... }: {
# harmony is an Asahi Fedora box
# I don't use NixOS, so there are some programs that don't interact well with
# the base system (or won't even install) when installed from Nix.
# There is no uniform way to trigger dnf package installs from Nix, so I'm
# just going to list my packages here. I hope to create a custom script that
# mimics the ideas of a Brewfile someday
# TODO: Create a Brewfile equivalent for dnf
# dnf repos:
# https://github.com/terrapkg/packages?tab=readme-ov-file
# https://pkgs.tailscale.com/stable/fedora/tailscale.repo
# dnf packages:
# kate
# nextcloud-client
# nextcloud-client-dolphin
# steam
# tailscale
# thunderbird
# vlc
# yakuake
# zed
# zsh
home = {
username = "millironx";
homeDirectory = "/home/millironx";
};
programs = {
git = {
signing = {
key = "0x37A3041D1C8C4524!";
signByDefault = true;
};
};
};
services = {
gpg-agent = {
sshKeys = [ "207D13371E19752A67AA2686C16354D9963821DB" ];
pinentryPackage = pkgs.pinentry-qt;
};
};
}

34
homes/linux-desktop.nix Normal file
View file

@ -0,0 +1,34 @@
{ config, lib, pkgs, pkgs-unstable, ... }: {
home = {
packages = with pkgs; [
inkscape-with-extensions
musescore
obs-studio
ollama
qownnotes
trayscale
veracrypt
vorta
];
};
programs = { };
services = {
flatpak = {
enable = true;
# Note: Right now, this does not actually install flatpaks correctly on
# harmony.
# It will however, alert me that certain packages are not installed, and
# serves as a place for me to write down the flatpaks I want to install
# anyway
packages = [
"com.bitwarden.desktop"
"com.github.tchx84.Flatseal"
"com.logseq.Logseq"
"io.freetubeapp.FreeTube"
"io.github.alainm23.planify"
"io.openrct2.OpenRCT2"
"net.ankiweb.Anki"
];
};
};
}

View file

@ -43,9 +43,23 @@
sqlitebrowser sqlitebrowser
woodpecker-cli woodpecker-cli
(pkgs.nerdfonts.override { (pkgs.nerdfonts.override {
fonts = [ "FiraCode" "Hack" "Meslo" "NerdFontsSymbolsOnly" ]; fonts = [ "FiraCode" "Meslo" "NerdFontsSymbolsOnly" ];
}) })
]; ];
linux = with pkgs; [ ]; linux = with pkgs; [ firefoxpwa ];
linux-desktop = with pkgs; [
anki
bitwarden-desktop
inkscape-with-extensions
musescore
obs-studio
ollama
openrct2
qownnotes
trayscale
veracrypt
vorta
];
} }

View file

@ -1,7 +1,9 @@
{ firefox-addons, buildFirefoxXpiAddon, lib }: { { firefox-addons, buildFirefoxXpiAddon, lib, pkgs }: {
enable = true; enable = true;
package = package =
null; # Use native package manager/Homebrew b/c there are fewer breakages null; # Use native package manager/Homebrew b/c there are fewer breakages
nativeMessagingHosts = [ pkgs.firefoxpwa ];
profileVersion = null;
profiles = { profiles = {
"millironx-default" = { "millironx-default" = {
id = 0; id = 0;