Skip to content

Commit

Permalink
Merge branch 'master' of github.com:pniedzwiedzinski/dots
Browse files Browse the repository at this point in the history
  • Loading branch information
pniedzwiedzinski committed Oct 5, 2024
2 parents 814fd04 + 146b495 commit 9143224
Show file tree
Hide file tree
Showing 7 changed files with 386 additions and 6 deletions.
26 changes: 26 additions & 0 deletions .github/workflows/rebuild.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: "Rebuild system"

on:
push:
workflow_dispatch:
schedule:
- cron: "0 8 * * 0"

jobs:
fetcher:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: "Install Nix ❄️"
uses: cachix/install-nix-action@v30

- name: Cachix
uses: cachix/cachix-action@v15
with:
name: pn
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'

- name: "Build"
id: fetcher
run: nix build .#nixosConfigurations.t14.config.system.build.toplevel
49 changes: 43 additions & 6 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
ronvim.url = "git+https://codeberg.org/veeronniecaw/ronvim.git?ref=main";
disko.url = "github:nix-community/disko";
disko.inputs.nixpkgs.follows = "nixpkgs";
impermanence.url = "github:nix-community/impermanence";
};

outputs = { self, nixpkgs, ... }@inputs:
Expand Down Expand Up @@ -55,6 +58,18 @@
environment.systemPackages = [ inputs.ronvim.packages.x86_64-linux.default ];
}
];
x220 = nixosSystem "x86_64-linux" "x220" [
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x220
inputs.disko.nixosModules.disko
inputs.impermanence.nixosModules.impermanence
inputs.home-manager.nixosModules.default
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.pn = import ./home.nix;
}

];
};
};
}
106 changes: 106 additions & 0 deletions machines/x220/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
{ config, pkgs, ... }:

{
imports =
[ # Include the results of the hardware scan.
../base.nix
../../modules/gnome.nix
../x220-gnome/pass.nix
./hardware-configuration.nix
../x220-gnome/pn.nix
];

# Enable networking
networking.networkmanager.enable = true;

# Set your time zone.
time.timeZone = "Europe/Warsaw";

# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";

i18n.extraLocaleSettings = {
LC_ALL = "en_US.UTF-8";
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};

programs.vim.defaultEditor = true;
programs.nano.enable = false;
programs.git.enable = true;

# Allow unfree packages
nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = [ "flakes" "nix-command" ];

# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget
];

fileSystems."/persist".neededForBoot = true;
environment.persistence."/persistent" = {
enable = true; # NB: Defaults to true, not needed
hideMounts = true;
directories = [
"/var/log"
"/var/lib/bluetooth"
"/var/lib/nixos"
"/var/lib/systemd/coredump"
"/etc/NetworkManager/system-connections"
{ directory = "/var/lib/colord"; user = "colord"; group = "colord"; mode = "u=rwx,g=rx,o="; }
];
files = [
"/etc/machine-id"
"/etc/shadow"
{ file = "/var/keys/secret_file"; parentDirectory = { mode = "u=rwx,g=,o="; }; }
];
users.pn = {
directories = [
"Downloads"
"Music"
"Pictures"
"Documents"
"Videos"
"VirtualBox VMs"
{ directory = ".gnupg"; mode = "0700"; }
{ directory = ".ssh"; mode = "0700"; }
{ directory = ".local/share/keyrings"; mode = "0700"; }
".local/share/direnv"
];
};
};

# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };


# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;


# 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. It‘s 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).

}
87 changes: 87 additions & 0 deletions machines/x220/disko-config.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# USAGE in your configuration.nix.
# Update devices to match your hardware.
# {
# imports = [ ./disko-config.nix ];
# disko.devices.disk.main.device = "/dev/sda";
# disko.devices.disk.main.content.partitions.swap.size = "16G"; # Must be greater than RAM to enable hibernation
# }
{ lib, config, ... }:
{

#boot.initrd.postDeviceCommands = ''
#mkdir /btrfs_tmp
#mount -t btrfs -o subvol=root,defaults ${config.disko.devices.disk.main.device} /btrfs_tmp
#if [[ -e /btrfs_tmp/root ]]; then
#mkdir -p /btrfs_tmp/old_roots
#timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
#mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
#fi
#
#delete_subvolume_recursively() {
#IFS=$'\n'
#for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
#delete_subvolume_recursively "/btrfs_tmp/$i"
#done
#btrfs subvolume delete "$1"
#}
#
#for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
#delete_subvolume_recursively "$i"
#done
#
#btrfs subvolume create /btrfs_tmp/root
#umount /btrfs_tmp
#'';

disko.devices = {
disk = {
main = {
device = "/dev/sda";
type = "disk";
content = {
type = "gpt";
partitions = {
ESP = {
size = "1G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
swap = {
size = "13G";
content = {
type = "swap";
discardPolicy = "both";
resumeDevice = true;
};
};
data = {
size = "100%";
content = {
type = "btrfs";
extraArgs = [ "-f" ];
mountpoint = "/partition-root";
subvolumes = {
"/nix" = {
mountOptions = [ "compress=zstd" "noatime" ];
mountpoint = "/nix";
};
"/persist" = {
mountpoint = "/persist";
};
"/root" = {
mountpoint = "/";
};
};
};
};
};
};
};
};
};
}
Loading

0 comments on commit 9143224

Please sign in to comment.