moby: populate from lappy config (gnome, firefox, etc)

it's not the best: probably want to replace with phosh
This commit is contained in:
colin 2022-05-22 19:45:54 -07:00
parent d75bc02c94
commit 2603dc590d
9 changed files with 189 additions and 79 deletions

View File

@ -39,7 +39,9 @@
"mobile-nixos": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
"nixpkgs": [
"pkgs-mobile"
]
},
"locked": {
"lastModified": 1630497267,
@ -57,21 +59,6 @@
}
},
"nixpkgs": {
"locked": {
"lastModified": 1629048390,
"narHash": "sha256-do7HuXFSKyj4ulMlRvGigNZCqOaGD9i0M3OLkFQgEAc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e41ba38114055832e5ba4a851e9c00149eef3e4a",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1652975354,
"narHash": "sha256-qP1DpEYQdSq7NZ542TSHffIT6xGm7MaSMG9faQWPcg0=",
@ -135,7 +122,7 @@
"inputs": {
"home-manager": "home-manager",
"mobile-nixos": "mobile-nixos",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs",
"nurpkgs": "nurpkgs",
"pkgs-gitea": "pkgs-gitea",
"pkgs-mobile": "pkgs-mobile"

View File

@ -25,7 +25,10 @@
# pkgs-mobile.url = "nixpkgs/5aaed40d22f0d9376330b6fa413223435ad6fee5"; # (untested) associated with HN comment 2022/01/16 https://hydra.nixos.org/build/164693256#tabs-buildinputs -- still tries to compile linux from source
# pkgs-mobile.url = "nixpkgs/23d785aa6f853e6cf3430119811c334025bbef55"; # latest mobile-nixos:unstable:device.pine64-pinephone.aarch64-linux build 2022/02/20 https://hydra.nixos.org/build/167888996#tabs-buildinputs -- still tries to compile linux from source, fails building lvgui
# this includes a patch to enable flake support
mobile-nixos.url = "github:ngi-nix/mobile-nixos/afe022e1898aa05381077a89c3681784e6074458";
mobile-nixos = {
url = "github:ngi-nix/mobile-nixos/afe022e1898aa05381077a89c3681784e6074458";
inputs.nixpkgs.follows = "pkgs-mobile";
};
home-manager = {
url = "github:nix-community/home-manager/release-21.11";
inputs.nixpkgs.follows = "nixpkgs";
@ -40,74 +43,33 @@
machines.moby = {
nixosConfiguration = pkgs-mobile.lib.nixosSystem {
# inherit (self.genpkgs.aarch64-linux) pkgs;
system = "aarch64-linux";
specialArgs = { inherit home-manager; inherit nurpkgs; };
modules = [
mobile-nixos.nixosModules.pine64-pinephone ({
users.users.root.password = "147147";
})
({ pkgs, ... }: {
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "21.11"; # Did you read the comment?
({ config, pkgs, ... }: {
nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = [ nurpkgs.overlay ];
})
# ({ pkgs, mobile-nixos, ... }: {
# imports = [
# (import "${mobile-nixos}/lib/configuration.nix" { device = "pine64-pinephone"; })
# ];
# })
# ({ pkgs, ... }: {
# imports = [
# <mobnixos>/devices/pine64-pinephone
# ];
# })
./machines/moby
];
};
img = (pkgs-mobile.lib.nixosSystem {
# inherit (self.genpkgs.aarch64-linux) pkgs;
system = "aarch64-linux";
specialArgs = { inherit home-manager; inherit nurpkgs; };
modules = [
mobile-nixos.nixosModules.pine64-pinephone ({
users.users.root.password = "147147";
})
({ pkgs, ... }: {
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "21.11"; # Did you read the comment?
({ config, pkgs, ... }: {
nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = [ nurpkgs.overlay ];
})
# ({ pkgs, mobile-nixos, ... }: {
# imports = [
# (import "${mobile-nixos}/lib/configuration.nix" { device = "pine64-pinephone"; })
# ];
# })
# ({ pkgs, ... }: {
# imports = [
# <mobnixos>/devices/pine64-pinephone
# ];
# })
./machines/moby
];
}).config.mobile.outputs.u-boot.disk-image;
# img = nixosConfiguration.config.system.build.disk-image;
# img = (pkgs-mobile.lib.nixosSystem {
# system = "aarch64-linux";
# modules = [
# mobile-nixos.nixosModules.pine64-pinephone ({
# users.users.root.password = "147147";
# })
# ({ pkgs, ... }: {
# system.stateVersion = "21.11"; # Did you read the comment?
# })
# ./image.nix
# ];
# }).config.system.build.raw;
};
nixosConfigurations = builtins.mapAttrs (name: value: value.nixosConfiguration) self.machines;
@ -142,6 +104,7 @@
);
# apply all our package overlays, but to all platforms possible.
# genpkgs = nixpkgs.lib.genAttrs nixpkgs.lib.platforms.all (system:
genpkgs = nixpkgs.lib.genAttrs nixpkgs.lib.platforms.all (system:
{
pkgs = import nixpkgs {
@ -149,6 +112,7 @@
config.allowUnfree = true;
overlays = [
#mobile-nixos.overlay
nurpkgs.overlay
(next: prev: {
#### customized packages

12
machines/common/gui.nix Normal file
View File

@ -0,0 +1,12 @@
{ config, pkgs, lib, ... }:
{
# start gnome/gdm on boot
services.xserver.enable = true;
services.xserver.desktopManager.gnome.enable = true;
services.xserver.displayManager.gdm.enable = true;
networking.useDHCP = false;
networking.networkmanager.enable = true;
networking.wireless.enable = lib.mkForce false;
}

View File

@ -21,6 +21,7 @@
# enable cross compilation
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
# nixpkgs.crossSystem.system = "aarch64-linux";
powerManagement.cpuFreqGovernor = "powersave";
hardware.enableRedistributableFirmware = true;
@ -47,11 +48,6 @@
time.timeZone = "America/Los_Angeles";
# start gnome/gdm on boot
services.xserver.enable = true;
services.xserver.desktopManager.gnome.enable = true;
services.xserver.displayManager.gdm.enable = true;
# services.snapper.configs = {
# root = {
# subvolume = "/";
@ -61,9 +57,4 @@
# };
# };
# services.snapper.snapshotInterval = "daily";
networking.useDHCP = false;
networking.networkmanager.enable = true;
networking.wireless.enable = lib.mkForce false;
}

View File

@ -4,6 +4,7 @@
./../common/homes.nix
./../common/users.nix
./../common/hardware.nix
./../common/gui.nix
./fs.nix
];
}

View File

@ -4,6 +4,7 @@
./../common/homes.nix
./../common/users.nix
./../common/hardware.nix
./../common/gui.nix
./fs.nix
];
}

128
machines/moby/colin.nix Normal file
View File

@ -0,0 +1,128 @@
# docs:
# https://rycee.gitlab.io/home-manager/
# man home-configuration.nix
{ config, pkgs, ... }:
{
home.stateVersion = "21.11";
home.username = "colin";
home.homeDirectory = "/home/colin";
programs.home-manager.enable = true;
programs.zsh.enable = true;
programs.git = {
enable = true;
userName = "colin";
userEmail = "colin@uninsane.org";
};
programs.firefox = {
enable = true;
# empty profile required to allow extensions below
profiles.default = {
# settings = {
# "browser.urlbar.placeholderName" = "DuckDuckGo";
# };
};
# NB: these must be manually enabled in the Firefox settings on first start
# extensions can be found here: https://gitlab.com/rycee/nur-expressions/-/blob/master/pkgs/firefox-addons/addons.json
extensions = [
pkgs.nur.repos.rycee.firefox-addons.bypass-paywalls-clean
pkgs.nur.repos.rycee.firefox-addons.i-dont-care-about-cookies
pkgs.nur.repos.rycee.firefox-addons.sidebery
pkgs.nur.repos.rycee.firefox-addons.sponsorblock
pkgs.nur.repos.rycee.firefox-addons.ublock-origin
];
};
programs.vim = {
enable = true;
extraConfig = ''
" wtf vim project: NOBODY LIKES MOUSE FOR VISUAL MODE
set mouse-=a
" copy/paste to system clipboard
set clipboard=unnamedplus
" <tab> completion menu settings
set wildmenu
set wildmode=longest,list,full
" highlight all matching searches (using / and ?)
set hlsearch
" allow backspace to delete empty lines in insert mode
set backspace=indent,eol,start
" built-in syntax highlighting
syntax enable
" show line/col number in bottom right
set ruler
" highlight trailing space & related syntax errors (does this work?)
let c_space_errors=1
let python_space_errors=1
'';
};
dconf.settings = {
# control alt-tab behavior
"org/gnome/desktop/wm/keybindings" = {
switch-applications = [ "<Super>Tab" ];
switch-applications-backward=[];
switch-windows=["<Alt>Tab"];
switch-windows-backward=["<Super><Alt>Tab"];
};
# idle power savings
"org/gnome/settings-deamon/plugins/power" = {
idle-brigthness = 50;
sleep-inactive-ac-type = "nothing";
sleep-inactive-battery-timeout = 5400; # seconds
};
};
# xsession.enable = true;
# xsession.windowManager.command = "…";
home.packages = [
pkgs.btrfs-progs
pkgs.gnumake
pkgs.dig
pkgs.duplicity
pkgs.fatresize
pkgs.fd
pkgs.file
pkgs.gptfdisk
pkgs.hdparm
pkgs.htop
pkgs.iftop
pkgs.iotop
pkgs.iptables
pkgs.jq
pkgs.killall
pkgs.lm_sensors # for sensors-detect
pkgs.lsof
pkgs.pciutils
pkgs.matrix-synapse
pkgs.mix2nix
pkgs.netcat
pkgs.nixUnstable
# pkgs.nixos-generators
# pkgs.nettools
pkgs.nmap
pkgs.parted
pkgs.powertop
pkgs.python3
pkgs.ripgrep
pkgs.smartmontools
pkgs.snapper
pkgs.socat
pkgs.sudo
pkgs.telnet
pkgs.usbutils
pkgs.wireguard
pkgs.zola
pkgs.clinfo
# pkgs.discord
pkgs.element-desktop
pkgs.gnome.dconf-editor
pkgs.mesa-demos
pkgs.tdesktop
];
}

18
machines/moby/default.nix Normal file
View File

@ -0,0 +1,18 @@
{ home-manager, config, pkgs, ... }:
{
imports = [
./homes.nix
./../common/users.nix
./../common/gui.nix
# ./../common/hardware.nix
# ./fs.nix
];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "21.11"; # Did you read the comment?
}

8
machines/moby/homes.nix Normal file
View File

@ -0,0 +1,8 @@
{ home-manager, config, pkgs, ... }:
{
imports = [ home-manager.nixosModule ];
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.colin.imports = [ ./colin.nix ];
}