mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-10 18:46:30 +00:00
feat: shark
This commit is contained in:
293
changes.patch
Normal file
293
changes.patch
Normal file
@@ -0,0 +1,293 @@
|
||||
diff --git a/flake.nix b/flake.nix
|
||||
index 95415a8..dfc359c 100644
|
||||
--- a/flake.nix
|
||||
+++ b/flake.nix
|
||||
@@ -140,6 +140,11 @@
|
||||
username = "theaninova";
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
+ shark = mkHost {
|
||||
+ hostname = "shark";
|
||||
+ username = "luci";
|
||||
+ system = "x86_64-linux";
|
||||
+ };
|
||||
};
|
||||
|
||||
nixosModules.theaninovos = import ./modules/nixos;
|
||||
diff --git a/hosts/shark/default.nix b/hosts/shark/default.nix
|
||||
new file mode 100644
|
||||
index 0000000..efec798
|
||||
--- /dev/null
|
||||
+++ b/hosts/shark/default.nix
|
||||
@@ -0,0 +1,164 @@
|
||||
+{
|
||||
+ pkgs,
|
||||
+ lib,
|
||||
+ username,
|
||||
+ ...
|
||||
+}:
|
||||
+{
|
||||
+ imports = [ ./hardware-configuration.nix ];
|
||||
+
|
||||
+ nix = {
|
||||
+ settings.experimental-features = [
|
||||
+ "nix-command"
|
||||
+ "flakes"
|
||||
+ ];
|
||||
+ gc = {
|
||||
+ automatic = true;
|
||||
+ randomizedDelaySec = "14m";
|
||||
+ options = "--deleteOlderThan 10d";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ boot = {
|
||||
+ quiet.enable = true;
|
||||
+
|
||||
+ kernelPackages = pkgs.linuxPackages_latest;
|
||||
+
|
||||
+ loader = {
|
||||
+ systemd-boot = {
|
||||
+ enable = true;
|
||||
+ configurationLimit = 10;
|
||||
+ };
|
||||
+ efi.canTouchEfiVariables = true;
|
||||
+ };
|
||||
+ initrd = {
|
||||
+ availableKernelModules = [ "tpm_tis" ];
|
||||
+ systemd = {
|
||||
+ enable = true;
|
||||
+ tpm2.enable = true;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ xdg.forced-compliance.enable = true;
|
||||
+
|
||||
+ usecases = {
|
||||
+ gaming.enable = true;
|
||||
+ "3d-printing".enable = true;
|
||||
+ development.enable = true;
|
||||
+ windows-vm.enable = true;
|
||||
+ };
|
||||
+
|
||||
+ shell.components = {
|
||||
+ firefox-pip.enable = true;
|
||||
+ gnome-keyring.enable = true;
|
||||
+ grimblast.enable = true;
|
||||
+ hyprpicker.enable = true;
|
||||
+ kde-connect.enable = true;
|
||||
+ kitty.enable = true;
|
||||
+ swaync.enable = true;
|
||||
+ walker.enable = true;
|
||||
+ waybar = {
|
||||
+ enable = true;
|
||||
+ mobile = true;
|
||||
+ };
|
||||
+ };
|
||||
+ desktops = {
|
||||
+ hyprland.enable = true;
|
||||
+ };
|
||||
+ locale.preset.theaninova.enable = true;
|
||||
+
|
||||
+ services.xserver = {
|
||||
+ xkb = {
|
||||
+ #variant = "altgr-intl";
|
||||
+ #layout = "us";
|
||||
+ layout = "de";
|
||||
+ };
|
||||
+ videoDrivers = [ "nvidia" ];
|
||||
+ };
|
||||
+
|
||||
+ hardware = {
|
||||
+ q3279vwf.enable = true;
|
||||
+ audio.preset.pipewire.enable = true;
|
||||
+
|
||||
+ nvidia.preset.proprietary.enable = true;
|
||||
+
|
||||
+ enableAllFirmware = true;
|
||||
+ bluetooth = {
|
||||
+ enable = true;
|
||||
+ powerOnBoot = true;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ fonts = {
|
||||
+ fira-code = {
|
||||
+ enable = true;
|
||||
+ default = true;
|
||||
+ };
|
||||
+ noto-sans = {
|
||||
+ enable = true;
|
||||
+ default = true;
|
||||
+ };
|
||||
+ nerd-fonts.enable = true;
|
||||
+ };
|
||||
+
|
||||
+ programs.zsh.enable = true;
|
||||
+ security.sudo.configFile = ''
|
||||
+ Defaults env_reset,pwfeedback,passprompt=" "
|
||||
+ '';
|
||||
+ security.tpm2.enable = true;
|
||||
+ users.defaultUserShell = pkgs.zsh;
|
||||
+ users.users.${username} = {
|
||||
+ isNormalUser = true;
|
||||
+ extraGroups = [
|
||||
+ "scanner"
|
||||
+ "lp"
|
||||
+ "storage"
|
||||
+ "networkmanager"
|
||||
+ "audio"
|
||||
+ "video"
|
||||
+ "plugdev"
|
||||
+ "cdrom"
|
||||
+ "kvm"
|
||||
+ ];
|
||||
+ };
|
||||
+
|
||||
+ # List packages installed in system profile. To search, run:
|
||||
+ environment.systemPackages = with pkgs; [
|
||||
+ # Essential utils
|
||||
+ usbutils
|
||||
+ usbimager
|
||||
+ uhubctl
|
||||
+ bluetuith
|
||||
+ pciutils
|
||||
+ htop
|
||||
+ unar
|
||||
+ gnupg
|
||||
+ libdrm
|
||||
+ alsa-utils
|
||||
+ graphicsmagick
|
||||
+ ffmpeg
|
||||
+ nfs-utils
|
||||
+ opensc
|
||||
+ openssl
|
||||
+ # secure boot / tmp2
|
||||
+ sbctl
|
||||
+ tpm2-tss
|
||||
+ # Essential command line apps
|
||||
+ neovim
|
||||
+ mc
|
||||
+ git
|
||||
+ p7zip
|
||||
+ fzf
|
||||
+ eza
|
||||
+ ];
|
||||
+
|
||||
+ networking = {
|
||||
+ networkmanager = {
|
||||
+ enable = true;
|
||||
+ plugins = with pkgs; [ networkmanager-openconnect ];
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ system.stateVersion = "24.11";
|
||||
+}
|
||||
diff --git a/hosts/shark/hardware-configuration.nix b/hosts/shark/hardware-configuration.nix
|
||||
new file mode 100644
|
||||
index 0000000..b848d1c
|
||||
--- /dev/null
|
||||
+++ b/hosts/shark/hardware-configuration.nix
|
||||
@@ -0,0 +1,44 @@
|
||||
+# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
+# and may be overwritten by future invocations. Please make changes
|
||||
+# to /etc/nixos/configuration.nix instead.
|
||||
+{ config, lib, pkgs, modulesPath, ... }:
|
||||
+
|
||||
+{
|
||||
+ imports =
|
||||
+ [ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
+ ];
|
||||
+
|
||||
+ boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
+ boot.initrd.kernelModules = [ ];
|
||||
+ boot.kernelModules = [ "kvm-intel" ];
|
||||
+ boot.extraModulePackages = [ ];
|
||||
+
|
||||
+ fileSystems."/" =
|
||||
+ { device = "/dev/disk/by-uuid/9e1f4bb4-356b-4674-ba16-0d3f436cd882";
|
||||
+ fsType = "xfs";
|
||||
+ };
|
||||
+
|
||||
+ fileSystems."/boot" =
|
||||
+ { device = "/dev/disk/by-uuid/6585-4C3B";
|
||||
+ fsType = "vfat";
|
||||
+ options = [ "fmask=0077" "dmask=0077" ];
|
||||
+ };
|
||||
+
|
||||
+ fileSystems."/home" =
|
||||
+ { device = "/dev/disk/by-uuid/fa017457-fef3-4fac-9348-d37d2cd98656";
|
||||
+ fsType = "xfs";
|
||||
+ };
|
||||
+
|
||||
+ swapDevices = [ ];
|
||||
+
|
||||
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
+ # (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
+ # still possible to use this option, but it's recommended to use it in conjunction
|
||||
+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
+ networking.useDHCP = lib.mkDefault true;
|
||||
+ # networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
||||
+ # networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
|
||||
+
|
||||
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
+}
|
||||
diff --git a/hosts/shark/home.nix b/hosts/shark/home.nix
|
||||
new file mode 100755
|
||||
index 0000000..b557825
|
||||
--- /dev/null
|
||||
+++ b/hosts/shark/home.nix
|
||||
@@ -0,0 +1,31 @@
|
||||
+{ pkgs, ... }:
|
||||
+{
|
||||
+ theme.md3-evo = {
|
||||
+ enable = true;
|
||||
+ auto-dark = {
|
||||
+ enable = true;
|
||||
+ lat = 52.52;
|
||||
+ lon = 13.40;
|
||||
+ };
|
||||
+ };
|
||||
+ programs.zoxide.enable = true;
|
||||
+ home = {
|
||||
+ packages = with pkgs; [
|
||||
+ blueman
|
||||
+ kdePackages.okular
|
||||
+ ];
|
||||
+ };
|
||||
+ systemd.user.services = {
|
||||
+ blueman-applet = {
|
||||
+ Unit = {
|
||||
+ Description = "Bluetooth manager applet";
|
||||
+ After = [ "graphical-session.target" ];
|
||||
+ };
|
||||
+ Install.WantedBy = [ "graphical-session.target" ];
|
||||
+ Service = {
|
||||
+ ExecStart = "${pkgs.blueman}/bin/blueman-applet";
|
||||
+ Restart = "always";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+}
|
||||
diff --git a/modules/nixos/hardware/q3279vwf.nix b/modules/nixos/hardware/q3279vwf.nix
|
||||
index 2e835e7..4ebeaac 100644
|
||||
--- a/modules/nixos/hardware/q3279vwf.nix
|
||||
+++ b/modules/nixos/hardware/q3279vwf.nix
|
||||
@@ -21,11 +21,11 @@ in
|
||||
home-manager.users.${username}.wayland.windowManager.hyprland.settings = {
|
||||
general.layout = "master";
|
||||
master = {
|
||||
- orientation = "center";
|
||||
- always_center_master = true;
|
||||
- mfact = 0.4;
|
||||
+ orientation = "right";
|
||||
+ mfact = 0.65;
|
||||
+ always_keep_position = true;
|
||||
};
|
||||
- monitor = [ "DP-1,highrr,0x0,1" ];
|
||||
+ monitor = [ "DP-1,2560x1440@75,0x0,1" ];
|
||||
xwayland.force_zero_scaling = true;
|
||||
misc.vrr = 2; # VA suffers from VRR flicker
|
||||
};
|
||||
@@ -140,6 +140,11 @@
|
||||
username = "theaninova";
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
shark = mkHost {
|
||||
hostname = "shark";
|
||||
username = "luci";
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
};
|
||||
|
||||
nixosModules.theaninovos = import ./modules/nixos;
|
||||
|
||||
164
hosts/shark/default.nix
Normal file
164
hosts/shark/default.nix
Normal file
@@ -0,0 +1,164 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./hardware-configuration.nix ];
|
||||
|
||||
nix = {
|
||||
settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
gc = {
|
||||
automatic = true;
|
||||
randomizedDelaySec = "14m";
|
||||
options = "--deleteOlderThan 10d";
|
||||
};
|
||||
};
|
||||
|
||||
boot = {
|
||||
quiet.enable = true;
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
loader = {
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 10;
|
||||
};
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
initrd = {
|
||||
availableKernelModules = [ "tpm_tis" ];
|
||||
systemd = {
|
||||
enable = true;
|
||||
tpm2.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
xdg.forced-compliance.enable = true;
|
||||
|
||||
usecases = {
|
||||
gaming.enable = true;
|
||||
"3d-printing".enable = true;
|
||||
development.enable = true;
|
||||
windows-vm.enable = true;
|
||||
};
|
||||
|
||||
shell.components = {
|
||||
firefox-pip.enable = true;
|
||||
gnome-keyring.enable = true;
|
||||
grimblast.enable = true;
|
||||
hyprpicker.enable = true;
|
||||
kde-connect.enable = true;
|
||||
kitty.enable = true;
|
||||
swaync.enable = true;
|
||||
walker.enable = true;
|
||||
waybar = {
|
||||
enable = true;
|
||||
mobile = true;
|
||||
};
|
||||
};
|
||||
desktops = {
|
||||
hyprland.enable = true;
|
||||
};
|
||||
locale.preset.theaninova.enable = true;
|
||||
|
||||
services.xserver = {
|
||||
xkb = {
|
||||
#variant = "altgr-intl";
|
||||
#layout = "us";
|
||||
layout = "de";
|
||||
};
|
||||
videoDrivers = [ "nvidia" ];
|
||||
};
|
||||
|
||||
hardware = {
|
||||
q3279vwf.enable = true;
|
||||
audio.preset.pipewire.enable = true;
|
||||
|
||||
nvidia.preset.proprietary.enable = true;
|
||||
|
||||
enableAllFirmware = true;
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
};
|
||||
};
|
||||
|
||||
fonts = {
|
||||
fira-code = {
|
||||
enable = true;
|
||||
default = true;
|
||||
};
|
||||
noto-sans = {
|
||||
enable = true;
|
||||
default = true;
|
||||
};
|
||||
nerd-fonts.enable = true;
|
||||
};
|
||||
|
||||
programs.zsh.enable = true;
|
||||
security.sudo.configFile = ''
|
||||
Defaults env_reset,pwfeedback,passprompt=" "
|
||||
'';
|
||||
security.tpm2.enable = true;
|
||||
users.defaultUserShell = pkgs.zsh;
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"scanner"
|
||||
"lp"
|
||||
"storage"
|
||||
"networkmanager"
|
||||
"audio"
|
||||
"video"
|
||||
"plugdev"
|
||||
"cdrom"
|
||||
"kvm"
|
||||
];
|
||||
};
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Essential utils
|
||||
usbutils
|
||||
usbimager
|
||||
uhubctl
|
||||
bluetuith
|
||||
pciutils
|
||||
htop
|
||||
unar
|
||||
gnupg
|
||||
libdrm
|
||||
alsa-utils
|
||||
graphicsmagick
|
||||
ffmpeg
|
||||
nfs-utils
|
||||
opensc
|
||||
openssl
|
||||
# secure boot / tmp2
|
||||
sbctl
|
||||
tpm2-tss
|
||||
# Essential command line apps
|
||||
neovim
|
||||
mc
|
||||
git
|
||||
p7zip
|
||||
fzf
|
||||
eza
|
||||
];
|
||||
|
||||
networking = {
|
||||
networkmanager = {
|
||||
enable = true;
|
||||
plugins = with pkgs; [ networkmanager-openconnect ];
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
44
hosts/shark/hardware-configuration.nix
Normal file
44
hosts/shark/hardware-configuration.nix
Normal file
@@ -0,0 +1,44 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/9e1f4bb4-356b-4674-ba16-0d3f436cd882";
|
||||
fsType = "xfs";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/6585-4C3B";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/fa017457-fef3-4fac-9348-d37d2cd98656";
|
||||
fsType = "xfs";
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
31
hosts/shark/home.nix
Executable file
31
hosts/shark/home.nix
Executable file
@@ -0,0 +1,31 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
theme.md3-evo = {
|
||||
enable = true;
|
||||
auto-dark = {
|
||||
enable = true;
|
||||
lat = 52.52;
|
||||
lon = 13.40;
|
||||
};
|
||||
};
|
||||
programs.zoxide.enable = true;
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
blueman
|
||||
kdePackages.okular
|
||||
];
|
||||
};
|
||||
systemd.user.services = {
|
||||
blueman-applet = {
|
||||
Unit = {
|
||||
Description = "Bluetooth manager applet";
|
||||
After = [ "graphical-session.target" ];
|
||||
};
|
||||
Install.WantedBy = [ "graphical-session.target" ];
|
||||
Service = {
|
||||
ExecStart = "${pkgs.blueman}/bin/blueman-applet";
|
||||
Restart = "always";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -21,11 +21,11 @@ in
|
||||
home-manager.users.${username}.wayland.windowManager.hyprland.settings = {
|
||||
general.layout = "master";
|
||||
master = {
|
||||
orientation = "center";
|
||||
always_center_master = true;
|
||||
mfact = 0.4;
|
||||
orientation = "right";
|
||||
mfact = 0.65;
|
||||
always_keep_position = true;
|
||||
};
|
||||
monitor = [ "DP-1,highrr,0x0,1" ];
|
||||
monitor = [ "DP-1,2560x1440@75,0x0,1" ];
|
||||
xwayland.force_zero_scaling = true;
|
||||
misc.vrr = 2; # VA suffers from VRR flicker
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user