This commit is contained in:
iFargle 2023-10-08 19:21:29 +09:00
parent 6000a4f1ce
commit c67083acf6
12 changed files with 64 additions and 297 deletions

View file

@ -37,11 +37,10 @@
in {
nixosConfigurations = {
# Virtual Machines
osaka-vultr-01 = libx.mkMinHost { hostname = "osaka-vultr-01"; };
osaka-vultr-01 = libx.mkSmallHost { hostname = "osaka-vultr-01"; };
nixos-vm-01 = libx.mkHost { hostname = "nixos-vm-01"; };
nixos-vm-02 = libx.mkHost { hostname = "nixos-vm-02"; desktop = "hyprland"; gpu = "intel"; theme = "gruvbox"; };
# Physical Machines
nixos-laptop = libx.mkHost { hostname = "nixos-laptop"; desktop = "hyprland"; gpu = "intel"; theme = "gruvbox"; };
nixos-desktop = libx.mkHost { hostname = "nixos-desktop"; desktop = "hyprland"; gpu = "nvidia"; theme = "gruvbox"; };
nixos-framework = libx.mkHost { hostname = "nixos-framework"; desktop = "hyprland"; gpu = "intel"; theme = "gruvbox"; };
nixos-rpi4-01 = libx.mkHost { hostname = "nixos-rpi4-01"; platform = "aarch64-linux"; };
nixos-rpi4-02 = libx.mkHost { hostname = "nixos-rpi4-02"; platform = "aarch64-linux"; };
@ -51,9 +50,8 @@
# Virtual Machines
"albert@osaka-vultr-01" = libx.mkHome { hostname = "osaka-vultr-01"; };
"albert@nixos-vm-01" = libx.mkHome { hostname = "nixos-vm-01"; };
"albert@nixos-vm-02" = libx.mkHome { hostname = "nixos-vm-02"; desktop = "hyprland"; theme = "gruvbox"; };
# Physical Machines
"albert@nixos-laptop" = libx.mkHome { hostname = "nixos-laptop"; desktop = "hyprland"; theme = "gruvbox"; };
"albert@nixos-desktop" = libx.mkHome { hostname = "nixos-desktop"; desktop = "hyprland"; theme = "gruvbox"; };
"albert@nixos-framework" = libx.mkHome { hostname = "nixos-framework"; desktop = "hyprland"; theme = "gruvbox"; };
"albert@nixos-rpi4-01" = libx.mkHome { hostname = "nixos-rpi4-01"; platform = "aarch64-linux"; };
"albert@nixos-rpi4-02" = libx.mkHome { hostname = "nixos-rpi4-02"; platform = "aarch64-linux"; };
@ -63,7 +61,6 @@
nixos-rpi4-img = libx.mkImage { hostname = "nixos-rpi4-img"; platform = "aarch64-linux"; format = "sd-aarch64"; };
nixos-iso-console = libx.mkImage { hostname = "nixos-iso-console"; format = "iso"; };
nixos-iso-desktop = libx.mkImage { hostname = "nixos-iso-desktop"; format = "iso"; desktop = "gnome"; };
nixos-linode-img = libx.mkMinImage { hostname = "nixos-linode-img"; format = "linode"; };
};
# Devshell for bootstrapping; acessible via 'nix develop'

View file

@ -1,51 +0,0 @@
{ theme, ... }: {
home.file = {
".config/hypr/hyprland.conf" = {
enable = true;
text = ''
# Monitor specific:
monitor=,2560x1440,auto,1
$mainMod = SUPER
# Start the config:
exec-once=bash ~/.config/hypr/start.sh
'';
};
# Set the custom launcher script
".config/hypr/start.sh" = {
enable = true;
executable = true;
text = ''
#!/usr/bin/env bash
# https://wiki.hyprland.org/FAQ/#some-of-my-apps-take-a-really-long-time-to-open
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
# Set the wallpaper
swww init
# Waybar
waybar &
# Set up the idle management daemon
swayidle -w \
timeout 120 'swaylock -f && playerctl pause' \
timeout 180 'hyprctl dispatch dpms off' \
timeout 300 'systemctl suspend-then-hibernate' \
resume 'hyprctl dispatch dpms on' \
before-sleep 'swaylock -f' \
before-sleep 'playerctl pause' &
# Automatic device mounting
udiskie &
DIR=/etc/nixos/git/wallpapers/${theme}
IMG=`ls $DIR | shuf -n 1`
swww img $DIR/$IMG -t random &
# Notification listener
mako
'';
};
};
}

View file

@ -33,7 +33,7 @@
};
# Helper function for generating host configs
mkMinHost = {
mkSmallHost = {
hostname,
username ? "albert",
desktop ? null,

View file

@ -0,0 +1,52 @@
{ config, lib, pkgs, modulesPath, desktop, username, ... }: {
imports = [
./disks.nix
../../common/modules/secureboot.nix
];
# steam, nvidia-x11, etc
nixpkgs.config.allowUnfree = true;
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "thunderbolt" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" "acpi_call" ];
boot.extraModulePackages = with config.boot.kernelPackages; [ acpi_call ];
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
# Set your time zone.
time.timeZone = "Asia/Tokyo";
# Set the networking hostname:
networking.hostName = "nixos-desktop";
hardware = {
opengl = {
enable = true;
driSupport32Bit = true;
driSupport = true;
};
nvidia = {
open = false;
nvidiaSettings = true;
modesetting.enable = true;
};
};
};
environment.systemPackages = with pkgs; [
# nVidia gpu options
vulkan-loader
vulkan-validation-layers
vulkan-tools
gwe
nvtop-nvidia
# WINE
wineWowPackages.stable
winetricks
wineWowPackages.waylandFull
];
}

View file

@ -1,11 +1,11 @@
{
boot.loader.grub.device = "/dev/sda";
boot.initrd.luks.devices."sda2".device = "/dev/sda2";
boot.loader.grub.device = "/dev/nvme0n1";
boot.initrd.luks.devices."ROOT".device = "/dev/nvme0n1p2";
services.btrfs.autoScrub.enable = true;
services.btrfs.autoScrub.interval = "weekly";
disko.devices.disk.sda = {
device = "/dev/sda";
disko.devices.disk.nvme0 = {
device = "/dev/nvme0n1";
content = {
type = "table";
format = "gpt";
@ -53,5 +53,5 @@
} # partition 2 (/ BTRFS)
]; # partitions
}; # content
}; # disko.devices.disk.sda
}; # disko.devices.disk.nvme0
} # root

View file

@ -1,195 +0,0 @@
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
{ lib, ... }:
with lib.hm.gvariant;
{
dconf.settings = {
"apps/seahorse/listing" = {
keyrings-selected = [ "openssh:///home/albert/.ssh" ];
};
"org/gnome/GWeather4" = {
temperature-unit = "centigrade";
};
"org/gnome/Weather" = {
locations = "[<(uint32 2, <('Osaka International Airport', 'RJOO', false, [(0.60708368566759674, 2.3640484718263193)], @a(dd) [])>)>]";
};
"org/gnome/clocks" = {
world-clocks = "[{'location': <(uint32 2, <('Los Angeles', 'KCQT', true, [(0.59370283970450188, -2.0644336110828618)], [(0.59432360095955872, -2.063741622941031)])>)>}, {'location': <(uint32 2, <('Dallas', 'KDAL', true, [(0.57338429251143708, -1.690448351049749)], [(0.57217226606568217, -1.6895950770317414)])>)>}, {'location': <(uint32 2, <('Washington', 'KDCA', true, [(0.67803131976116615, -1.3444998506811625)], [(0.67884776733195662, -1.344538230471414)])>)>}, {'location': <(uint32 2, <('Coordinated Universal Time (UTC)', '@UTC', false, @a(dd) [], @a(dd) [])>)>}]";
};
"org/gnome/clocks/state/window" = {
maximized = false;
panel-id = "world";
size = mkTuple [ 870 690 ];
};
"org/gnome/desktop/app-folders" = {
folder-children = [ "Utilities" "YaST" ];
};
"org/gnome/desktop/app-folders/folders/Utilities" = {
apps = [ "gnome-abrt.desktop" "gnome-system-log.desktop" "nm-connection-editor.desktop" "org.gnome.baobab.desktop" "org.gnome.Connections.desktop" "org.gnome.DejaDup.desktop" "org.gnome.Dictionary.desktop" "org.gnome.DiskUtility.desktop" "org.gnome.eog.desktop" "org.gnome.Evince.desktop" "org.gnome.FileRoller.desktop" "org.gnome.fonts.desktop" "org.gnome.seahorse.Application.desktop" "org.gnome.tweaks.desktop" "org.gnome.Usage.desktop" "vinagre.desktop" ];
categories = [ "X-GNOME-Utilities" ];
name = "X-GNOME-Utilities.directory";
translate = true;
};
"org/gnome/desktop/app-folders/folders/YaST" = {
categories = [ "X-SuSE-YaST" ];
name = "suse-yast.directory";
translate = true;
};
"org/gnome/desktop/background" = {
color-shading-type = "solid";
picture-options = "zoom";
picture-uri = "file:///nix/store/4x0rqlvhvrzkbdigdr9mrgrb40cb52df-simple-blue-2016-02-19/share/backgrounds/nixos/nix-wallpaper-simple-blue.png";
picture-uri-dark = "file:///nix/store/81y0y8fl92izwbj47aj2d8f48hgsp3wn-simple-dark-gray-2016-02-19/share/backgrounds/nixos/nix-wallpaper-simple-dark-gray.png";
primary-color = "#3a4ba0";
secondary-color = "#2f302f";
};
"org/gnome/desktop/calendar" = {
show-weekdate = false;
};
"org/gnome/desktop/interface" = {
clock-show-date = true;
clock-show-weekday = false;
color-scheme = "prefer-dark";
cursor-theme = "Adwaita";
font-antialiasing = "grayscale";
font-hinting = "slight";
gtk-theme = "vimix-dark-doder";
icon-theme = "Vimix-Doder-dark";
};
"org/gnome/desktop/notifications" = {
show-banners = true;
};
"org/gnome/desktop/peripherals/touchpad" = {
tap-to-click = true;
two-finger-scrolling-enabled = true;
};
"org/gnome/desktop/wm/preferences" = {
button-layout = "appmenu:minimize,maximize,close";
};
"org/gnome/mutter" = {
edge-tiling = false;
};
"org/gnome/settings-daemon/plugins/color" = {
night-light-enabled = true;
night-light-temperature = mkUint32 3418;
};
"org/gnome/shell" = {
app-picker-layout = "[{'org.gnome.Extensions.desktop': <{'position': <0>}>, 'htop.desktop': <{'position': <1>}>, 'nixos-manual.desktop': <{'position': <2>}>, 'nvidia-settings.desktop': <{'position': <3>}>, 'vlc.desktop': <{'position': <4>}>, 'xterm.desktop': <{'position': <5>}>, 'org.gnome.Settings.desktop': <{'position': <6>}>, 'org.gnome.Calculator.desktop': <{'position': <7>}>, 'org.gnome.clocks.desktop': <{'position': <8>}>, 'org.gnome.Contacts.desktop': <{'position': <9>}>, 'simple-scan.desktop': <{'position': <10>}>, 'yelp.desktop': <{'position': <11>}>, 'org.gnome.Calendar.desktop': <{'position': <12>}>, 'gnome-system-monitor.desktop': <{'position': <13>}>, 'org.gnome.TextEditor.desktop': <{'position': <14>}>, 'Utilities': <{'position': <15>}>, 'org.gnome.Weather.desktop': <{'position': <16>}>, 'org.gnome.Photos.desktop': <{'position': <17>}>}]";
disable-user-extensions = false;
disabled-extensions = [ "workspace-indicator@gnome-shell-extensions.gcampax.github.com" ];
enabled-extensions = [ "blur-my-shell@aunetx" "caffeine@patapon.info" "dash-to-dock@micxgx.gmail.com" "user-theme@gnome-shell-extensions.gcampax.github.com" "Vitals@CoreCoding.com" "tiling-assistant@leleat-on-github" "hibernate-status@dromi" "nightthemeswitcher@romainvigier.fr" ];
favorite-apps = [ "org.gnome.Nautilus.desktop" "firefox.desktop" "org.gnome.Console.desktop" "bitwarden.desktop" "steam.desktop" "net.lutris.Lutris.desktop" ];
welcome-dialog-last-shown-version = "44.2";
};
"org/gnome/shell/extensions/caffeine" = {
indicator-position-max = 3;
};
"org/gnome/shell/extensions/dash-to-dock" = {
apply-custom-theme = false;
background-opacity = 0.8;
custom-theme-shrink = true;
dance-urgent-applications = true;
dash-max-icon-size = 40;
disable-overview-on-startup = true;
dock-position = "BOTTOM";
height-fraction = 0.9;
icon-size-fixed = false;
isolate-workspaces = false;
show-icons-emblems = true;
show-icons-notifications-counter = true;
show-show-apps-button = false;
show-windows-preview = true;
transparency-mode = "FIXED";
};
"org/gnome/shell/extensions/nightthemeswitcher/cursor-variants" = {
enabled = false;
};
"org/gnome/shell/extensions/nightthemeswitcher/gtk-variants" = {
day = "vimix-doder";
enabled = true;
night = "vimix-dark-doder";
};
"org/gnome/shell/extensions/nightthemeswitcher/icon-variants" = {
day = "Vimix-Doder";
enabled = true;
night = "Vimix-Doder-dark";
};
"org/gnome/shell/extensions/nightthemeswitcher/shell-variants" = {
day = "vimix-doder";
enabled = true;
night = "vimix-dark-doder";
};
"org/gnome/shell/extensions/nightthemeswitcher/time" = {
manual-schedule = true;
nightthemeswitcher-ondemand-keybinding = [ "<Shift><Super>t" ];
sunset = 19.0;
};
"org/gnome/shell/extensions/user-theme" = {
name = "vimix-dark-doder";
};
"org/gnome/shell/weather" = {
automatic-location = true;
locations = "[<(uint32 2, <('Osaka International Airport', 'RJOO', false, [(0.60708368566759674, 2.3640484718263193)], @a(dd) [])>)>]";
};
"org/gnome/tweaks" = {
show-extensions-notice = false;
};
"org/gtk/gtk4/settings/file-chooser" = {
date-format = "regular";
location-mode = "path-bar";
show-hidden = false;
show-size-column = true;
show-type-column = true;
sidebar-width = 140;
sort-column = "name";
sort-directories-first = false;
sort-order = "ascending";
type-format = "category";
view-type = "list";
window-size = mkTuple [ 859 453 ];
};
"org/gtk/settings/file-chooser" = {
date-format = "regular";
location-mode = "path-bar";
show-hidden = false;
show-size-column = true;
show-type-column = true;
sidebar-width = 175;
sort-column = "name";
sort-directories-first = false;
sort-order = "ascending";
type-format = "category";
window-position = mkTuple [ 30 26 ];
window-size = mkTuple [ 1203 902 ];
};
};
}

View file

@ -1,12 +0,0 @@
{ config, lib, pkgs, modulesPath, desktop, username, ... }: {
nixpkgs.config.allowUnfree = false;
# Linode-specific imaage assertions
networking.useDHCP = lib.mkForce true;
networking.enableIPv6 = lib.mkForce true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
networking.hostName = "nixos-linode-img";
networking.firewall.allowedTCPPorts = [ 22 ];
}

View file

@ -1,22 +0,0 @@
{ config, lib, pkgs, modulesPath, desktop, username, ... }: {
imports = [
# This machine won't be using secureboot
../../common/modules/boot.nix
# Testing swap
./disks.nix
];
nixpkgs.config.allowUnfree = true;
boot.initrd.availableKernelModules = [ "ata_piix" "ohci_pci" "ehci_pci" "ahci" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
virtualisation.virtualbox.guest.enable = true;
time.timeZone = "Asia/Tokyo";
networking.hostName = "nixos-vm-02";
networking.firewall.allowedTCPPorts = [ 22 ];
}

View file

@ -19,7 +19,8 @@
time.timeZone = "Asia/Tokyo";
networking.hostName = "osaka-vultr-01";
networking.firewall.allowedTCPPorts = [ 22 ];
networking.firewall.allowedTCPPorts = [ 5120 22 ];
networking.firewall.allowedUDPPorts = [ 5120 ];
# Generic Tailscale configs are in /nixos/common/services/tailscale.nix
# Set up the secrets file: