Compare commits

..

No commits in common. "3bfd1450fce35aaf1b601ca9000515261521ae6e" and "d12a96ff76b75af17499e295bad97de6131799b4" have entirely different histories.

12 changed files with 892 additions and 651 deletions

File diff suppressed because it is too large Load diff

View file

@ -25,14 +25,14 @@ in
}; };
wayland.windowManager.hyprland.settings.exec-once = [ wayland.windowManager.hyprland.settings.exec-once = [
''hyprctl hyprpaper wallpaper "DP-1,${picture-path}"'' ''hyprctl hyprpaper wallpaper "DP-2,${picture-path}"''
]; ];
services.hyprpaper = { services.hyprpaper = {
enable = true; enable = true;
settings = { settings = {
preload = [ picture-path ]; preload = [ picture-path ];
wallpaper = "DP-1,${picture-path}"; wallpaper = "DP-2,${picture-path}";
}; };
}; };
}; };

View file

@ -118,9 +118,6 @@ in
focus-1password focus-1password
hyprpanel hyprpanel
#####
xdg-dbus-proxy
]; ];
programs = { programs = {
@ -128,52 +125,19 @@ in
enable = true; enable = true;
package = hyprland-package; package = hyprland-package;
portalPackage = inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland; portalPackage = inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland;
withUWSM = true;
}; };
}; };
xdg = { services.greetd = {
autostart.enable = true;
portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal
pkgs.xdg-desktop-portal-gtk
];
xdgOpenUsePortal = true;
config = {
common = {
default = [ "*" ];
"org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
};
hyprland = {
default = [
"hyprland"
"gtk"
];
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
"org.freedesktop.impl.portal.OpenURI" = [ "gtk" ];
};
};
};
};
# services.greetd = {
# enable = true;
# settings = rec {
# initial_session = {
# command = "${hyprland-package}/bin/Hyprland";
# user = "cholli";
# };
# default_session = initial_session;
# };
# };
#
services.displayManager.gdm = {
enable = true; enable = true;
wayland = true; settings = rec {
initial_session = {
command = "${hyprland-package}/bin/Hyprland";
user = "cholli";
};
default_session = initial_session;
};
}; };
${namespace} = { ${namespace} = {
@ -200,7 +164,6 @@ in
enable = true; enable = true;
package = hyprland-package; package = hyprland-package;
plugins = [ inputs.hy3.packages.${system}.hy3 ]; plugins = [ inputs.hy3.packages.${system}.hy3 ];
systemd.variables = [ "--all" ];
settings = mkMerge [ settings = mkMerge [
{ {
"$mod" = "SUPER"; "$mod" = "SUPER";
@ -208,7 +171,7 @@ in
exec-once = [ exec-once = [
"systemctl --user start hyprpolkitagent" "systemctl --user start hyprpolkitagent"
"[workspace 2 silent] steam" "[workspace 2 silent] steam --disable-gpu-compositing" # nvidia pls let me have nice things
"[workspace 8 silent] discord" "[workspace 8 silent] discord"
"[workspace 9 silent] ELECTRON_OZONE_PLATFORM_HINT=x11 1password" # fix for promts not showing up anymore "[workspace 9 silent] ELECTRON_OZONE_PLATFORM_HINT=x11 1password" # fix for promts not showing up anymore
"[workspace 1 silent] zen-beta" "[workspace 1 silent] zen-beta"
@ -287,68 +250,69 @@ in
]; ];
}; };
bind = [ bind =
# compositor commands [
"$mod SHIFT, R, exec, hyprctl reload" # compositor commands
"$mod SHIFT, Q, killactive," "$mod SHIFT, R, exec, hyprctl reload"
"$mod SHIFT, E, exec, pkill Hyprland" "$mod SHIFT, Q, killactive,"
"$mod SHIFT, E, exec, pkill Hyprland"
"$mod, F, fullscreen," "$mod, F, fullscreen,"
"$mod, G, togglegroup," "$mod, G, togglegroup,"
"$mod SHIFT, N, changegroupactive, f" "$mod SHIFT, N, changegroupactive, f"
"$mod SHIFT, P, changegroupactive, b" "$mod SHIFT, P, changegroupactive, b"
"$mod, R, togglesplit," "$mod, R, togglesplit,"
"$mod, T, togglefloating," "$mod, T, togglefloating,"
"$mod ALT, ,resizeactive," "$mod ALT, ,resizeactive,"
"$mod CTRL, left, movecurrentworkspacetomonitor, l" "$mod CTRL, left, movecurrentworkspacetomonitor, l"
"$mod CTRL, right, movecurrentworkspacetomonitor, r" "$mod CTRL, right, movecurrentworkspacetomonitor, r"
# move focus # move focus
"$mod, h, hy3:movefocus, l" "$mod, h, hy3:movefocus, l"
"$mod, j, hy3:movefocus, d" "$mod, j, hy3:movefocus, d"
"$mod, k, hy3:movefocus, u" "$mod, k, hy3:movefocus, u"
"$mod, l, hy3:movefocus, r" "$mod, l, hy3:movefocus, r"
"$mod, left, hy3:movefocus, l" "$mod, left, hy3:movefocus, l"
"$mod, down, hy3:movefocus, d" "$mod, down, hy3:movefocus, d"
"$mod, up, hy3:movefocus, u" "$mod, up, hy3:movefocus, u"
"$mod, right, hy3:movefocus, r" "$mod, right, hy3:movefocus, r"
# move focus # move focus
"$mod SHIFT, h, hy3:movewindow, l, once" "$mod SHIFT, h, hy3:movewindow, l, once"
"$mod SHIFT, j, hy3:movewindow, d, once" "$mod SHIFT, j, hy3:movewindow, d, once"
"$mod SHIFT, k, hy3:movewindow, u, once" "$mod SHIFT, k, hy3:movewindow, u, once"
"$mod SHIFT, l, hy3:movewindow, r, once" "$mod SHIFT, l, hy3:movewindow, r, once"
"$mod SHIFT, left, hy3:movewindow, l, once" "$mod SHIFT, left, hy3:movewindow, l, once"
"$mod SHIFT, down, hy3:movewindow, d, once" "$mod SHIFT, down, hy3:movewindow, d, once"
"$mod SHIFT, up, hy3:movewindow, u, once" "$mod SHIFT, up, hy3:movewindow, u, once"
"$mod SHIFT, right, hy3:movewindow, r, once" "$mod SHIFT, right, hy3:movewindow, r, once"
#run important programs #run important programs
"$mod, Return, exec, kitty" "$mod, Return, exec, kitty"
"$mod, D, exec, rofi -show drun" "$mod, D, exec, rofi -show drun"
"$mod, P, exec, focus-or-open-1pass" "$mod, P, exec, focus-or-open-1pass"
# "$mod, D, exec, rofi -show combi" # "$mod, D, exec, rofi -show combi"
#screenshot #screenshot
", Print, exec, grimblast copy area" ", Print, exec, grimblast copy area"
] ]
++ ( ++ (
# workspaces # workspaces
# binds $mod + [shift +] {1..9} to [move to] workspace {1..9} # binds $mod + [shift +] {1..9} to [move to] workspace {1..9}
builtins.concatLists ( builtins.concatLists (
builtins.genList ( builtins.genList (
i: i:
let let
ws = i + 1; ws = i + 1;
in in
[ [
"$mod, code:1${toString i}, workspace, ${toString ws}" "$mod, code:1${toString i}, workspace, ${toString ws}"
"$mod SHIFT, code:1${toString i}, hy3:movetoworkspace, ${toString ws}" "$mod SHIFT, code:1${toString i}, hy3:movetoworkspace, ${toString ws}"
] ]
) 9 ) 9
) )
); );
# mouse movements # mouse movements
bindm = [ bindm = [

View file

@ -3,7 +3,6 @@
config, config,
lib, lib,
namespace, namespace,
pkgs,
... ...
}: }:
let let
@ -18,15 +17,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.gnome.gnome-keyring.enable = true; services.gnome.gnome-keyring.enable = true;
security.pam.services.gdm.enableGnomeKeyring = true;
security.pam.services.sddm.enableGnomeKeyring = true; security.pam.services.sddm.enableGnomeKeyring = true;
security.pam.services.greetd.enableGnomeKeyring = true; security.pam.services.greetd.enableGnomeKeyring = true;
services.dbus.packages = [
pkgs.gnome-keyring
pkgs.gcr
];
environment.systemPackages = [ pkgs.seahorse ];
}; };
} }

View file

@ -17,7 +17,7 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ prismlauncher ]; # environment.systemPackages = with pkgs; [ prismlauncher ];
${namespace} = { ${namespace} = {
apps = { apps = {

View file

@ -1,35 +0,0 @@
{
lib,
config,
pkgs,
namespace,
...
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.${namespace}.system.hardware.gpu.amd;
amdvlk-run = pkgs.writeShellScriptBin "amdvlk-run" ''
export VK_DRIVER_FILES="${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json:${pkgs.pkgsi686Linux.amdvlk}/share/vulkan/icd.d/amd_icd32.json"
exec "$@"
'';
in
{
options.${namespace}.system.hardware.gpu.amd = {
enable = mkEnableOption "Enable AMD GPU";
};
config = mkIf cfg.enable {
hardware.graphics = {
enable = true;
enable32Bit = true;
};
environment = {
systemPackages = [ amdvlk-run ];
variables = {
AMD_VULKAN_ICD = "RADV";
};
};
};
}

View file

@ -0,0 +1,97 @@
{
inputs,
lib,
namespace,
pkgs,
...
}:
let
inherit (lib.${namespace}) enabled disabled;
in
{
imports = [
./hardware.nix
./hyprland_config.nix
];
environment.systemPackages = with pkgs; [
path-of-building
teams-for-linux
obsidian
zed-editor
# eve
bottles
pyfa
# misc
diebahn
nixpkgs-review
];
environment.pathsToLink = [ "/libexec" ];
virtualisation.waydroid = enabled;
programs.ssh.extraConfig = ''
AddressFamily inet
'';
home-manager = {
backupFileExtension = ".bak";
};
nix = {
distributedBuilds = true;
settings.builders-use-substitutes = true;
buildMachines = [
{
hostName = "nixberry";
sshUser = "remotebuild";
sshKey = "/root/.ssh/remotebuild";
systems = [ "aarch64-linux" ];
protocol = "ssh-ng";
supportedFeatures = [
"nixos-test"
"big-parallel"
"kvm"
];
}
];
};
${namespace} = {
archetypes = {
gaming.enable = true;
};
apps = {
_1password = enabled;
obs-studio = enabled;
cli-apps.helix = enabled;
starsector = enabled;
};
desktop.hyprland = {
enable = true;
};
services = {
factorio-server = disabled;
};
tools.devenv = enabled;
system = {
hardware = {
bluetooth = enabled;
# gpu.nvidia = enabled;
};
};
security.gpg = enabled;
};
system.stateVersion = "23.11";
}

View file

@ -0,0 +1,69 @@
# 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,
modulesPath,
inputs,
...
}:
let
inherit (inputs) nixos-hardware;
in
{
imports = with nixos-hardware.nixosModules; [
(modulesPath + "/installer/scan/not-detected.nix")
common-cpu-amd
common-gpu-nvidia-nonprime
common-pc
common-pc-ssd
];
boot = {
initrd.availableKernelModules = [
"nvme"
"xhci_pci"
"ahci"
"usb_storage"
"usbhid"
"sd_mod"
];
initrd.kernelModules = [ ];
kernelModules = [
"kvm-amd"
"btusb"
];
extraModulePackages = [ ];
};
fileSystems = {
"/" = {
device = "/dev/disk/by-uuid/444a9216-59d1-46e0-9643-0b716a42ba0b";
fsType = "ext4";
};
"/boot" = {
device = "/dev/disk/by-uuid/8310-585A";
fsType = "vfat";
};
"/storage" = {
device = "/dev/disk/by-uuid/c3c1dec1-7716-4c37-a3f2-bb60f9af84fd";
fsType = "ext4";
};
};
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.enp40s0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp42s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -0,0 +1,48 @@
{
lib,
namespace,
pkgs,
...
}:
let
in
{
${namespace}.desktop.hyprland.settings = {
monitor = [
#Ultrawide
"DP-2,3440x1440@144, 0x0, 1"
#Vertical
"HDMI-A-1, 1920x1080@144, auto-right, 1, transform, 1"
# nividia kernel issues
"Unknown-1, disable"
];
cursor = {
no_hardware_cursors = true;
};
exec-once = [
"[workspace 7 silent] obsidian"
"${lib.getExe pkgs.xorg.xrandr} --output DP-2 --primary"
];
workspace = [
"1, monitor:DP-2"
"2, monitor:DP-2"
"3, monitor:DP-2"
"4, monitor:DP-2"
"5, monitor:DP-2"
"6, monitor:DP-2"
"7, monitor:HDMI-A-1"
"8, monitor:HDMI-A-1"
"9, monitor:HDMI-A-1"
];
windowrulev2 = [
"workspace 8 silent, class:^(steam)$, title:^(Friends List)"
"workspace 8 silent, class:^(discord)$, title:^(Discord)"
"workspace 7 silent, class:^(com.obsproject.Studio)$"
];
};
}

View file

@ -38,7 +38,7 @@ in
AddressFamily inet AddressFamily inet
''; '';
home-manager = { home-manager = {
backupFileExtension = "bak"; backupFileExtension = ".bak";
}; };
nix = { nix = {
@ -86,7 +86,7 @@ in
system = { system = {
hardware = { hardware = {
bluetooth = enabled; bluetooth = enabled;
gpu.amd = enabled; gpu.nvidia = enabled;
}; };
}; };

View file

@ -4,9 +4,8 @@
{ {
config, config,
lib, lib,
inputs,
pkgs,
modulesPath, modulesPath,
inputs,
... ...
}: }:
let let
@ -16,6 +15,7 @@ in
imports = with nixos-hardware.nixosModules; [ imports = with nixos-hardware.nixosModules; [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
common-cpu-amd common-cpu-amd
common-gpu-nvidia-nonprime
common-pc common-pc
common-pc-ssd common-pc-ssd
]; ];
@ -23,28 +23,29 @@ in
boot = { boot = {
initrd.availableKernelModules = [ initrd.availableKernelModules = [
"nvme" "nvme"
"ahci"
"xhci_pci" "xhci_pci"
"usbhid" "ahci"
"usb_storage" "usb_storage"
"usbhid"
"sd_mod" "sd_mod"
]; ];
kernelModules = [ "kvm-amd" ]; initrd.kernelModules = [ ];
kernelModules = [
"kvm-amd"
"btusb"
];
extraModulePackages = [ ];
}; };
fileSystems = { fileSystems = {
"/" = { "/" = {
device = "/dev/disk/by-uuid/b1a956f4-91d5-456e-a92b-be505bb719bd"; device = "/dev/disk/by-uuid/444a9216-59d1-46e0-9643-0b716a42ba0b";
fsType = "ext4"; fsType = "ext4";
}; };
"/boot" = { "/boot" = {
device = "/dev/disk/by-uuid/B4D4-8BA0"; device = "/dev/disk/by-uuid/8310-585A";
fsType = "vfat"; fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
}; };
"/storage" = { "/storage" = {
@ -53,17 +54,15 @@ in
}; };
}; };
swapDevices = [ swapDevices = [ ];
{ device = "/dev/disk/by-uuid/4bec00ec-e9eb-4034-836a-ecf15e0bb40e"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (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 # 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`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp14s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp40s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp42s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View file

@ -10,7 +10,7 @@ in
${namespace}.desktop.hyprland.settings = { ${namespace}.desktop.hyprland.settings = {
monitor = [ monitor = [
#Ultrawide #Ultrawide
"DP-1,3440x1440@144, 0x0, 1" "DP-2,3440x1440@144, 0x0, 1"
#Vertical #Vertical
"HDMI-A-1, 1920x1080@144, auto-right, 1, transform, 1" "HDMI-A-1, 1920x1080@144, auto-right, 1, transform, 1"
# nividia kernel issues # nividia kernel issues
@ -24,16 +24,16 @@ in
exec-once = [ exec-once = [
"[workspace 7 silent] obsidian" "[workspace 7 silent] obsidian"
"${lib.getExe pkgs.xorg.xrandr} --output DP-1 --primary" "${lib.getExe pkgs.xorg.xrandr} --output DP-2 --primary"
]; ];
workspace = [ workspace = [
"1, monitor:DP-1" "1, monitor:DP-2"
"2, monitor:DP-1" "2, monitor:DP-2"
"3, monitor:DP-1" "3, monitor:DP-2"
"4, monitor:DP-1" "4, monitor:DP-2"
"5, monitor:DP-1" "5, monitor:DP-2"
"6, monitor:DP-1" "6, monitor:DP-2"
"7, monitor:HDMI-A-1" "7, monitor:HDMI-A-1"
"8, monitor:HDMI-A-1" "8, monitor:HDMI-A-1"
"9, monitor:HDMI-A-1" "9, monitor:HDMI-A-1"