Compare commits

..

7 commits

12 changed files with 650 additions and 891 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-2,${picture-path}"'' ''hyprctl hyprpaper wallpaper "DP-1,${picture-path}"''
]; ];
services.hyprpaper = { services.hyprpaper = {
enable = true; enable = true;
settings = { settings = {
preload = [ picture-path ]; preload = [ picture-path ];
wallpaper = "DP-2,${picture-path}"; wallpaper = "DP-1,${picture-path}";
}; };
}; };
}; };

View file

@ -118,6 +118,9 @@ in
focus-1password focus-1password
hyprpanel hyprpanel
#####
xdg-dbus-proxy
]; ];
programs = { programs = {
@ -125,21 +128,54 @@ 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;
}; };
}; };
services.greetd = { xdg = {
enable = true; autostart.enable = true;
settings = rec { portal = {
initial_session = { enable = true;
command = "${hyprland-package}/bin/Hyprland"; extraPortals = [
user = "cholli"; pkgs.xdg-desktop-portal
}; pkgs.xdg-desktop-portal-gtk
];
xdgOpenUsePortal = true;
default_session = initial_session; 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;
wayland = true;
};
${namespace} = { ${namespace} = {
desktop = { desktop = {
enable = true; enable = true;
@ -164,6 +200,7 @@ 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";
@ -171,7 +208,7 @@ in
exec-once = [ exec-once = [
"systemctl --user start hyprpolkitagent" "systemctl --user start hyprpolkitagent"
"[workspace 2 silent] steam --disable-gpu-compositing" # nvidia pls let me have nice things "[workspace 2 silent] steam"
"[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"
@ -250,69 +287,68 @@ in
]; ];
}; };
bind = bind = [
[ # compositor commands
# compositor commands "$mod SHIFT, R, exec, hyprctl reload"
"$mod SHIFT, R, exec, hyprctl reload" "$mod SHIFT, Q, killactive,"
"$mod SHIFT, Q, killactive," "$mod SHIFT, E, exec, pkill Hyprland"
"$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,6 +3,7 @@
config, config,
lib, lib,
namespace, namespace,
pkgs,
... ...
}: }:
let let
@ -17,7 +18,15 @@ 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

@ -0,0 +1,35 @@
{
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

@ -1,97 +0,0 @@
{
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

@ -1,69 +0,0 @@
# 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

@ -1,48 +0,0 @@
{
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.nvidia = enabled; gpu.amd = enabled;
}; };
}; };

View file

@ -4,8 +4,9 @@
{ {
config, config,
lib, lib,
modulesPath,
inputs, inputs,
pkgs,
modulesPath,
... ...
}: }:
let let
@ -15,7 +16,6 @@ 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,29 +23,28 @@ in
boot = { boot = {
initrd.availableKernelModules = [ initrd.availableKernelModules = [
"nvme" "nvme"
"xhci_pci"
"ahci" "ahci"
"usb_storage" "xhci_pci"
"usbhid" "usbhid"
"usb_storage"
"sd_mod" "sd_mod"
]; ];
initrd.kernelModules = [ ]; kernelModules = [ "kvm-amd" ];
kernelModules = [
"kvm-amd"
"btusb"
];
extraModulePackages = [ ];
}; };
fileSystems = { fileSystems = {
"/" = { "/" = {
device = "/dev/disk/by-uuid/444a9216-59d1-46e0-9643-0b716a42ba0b"; device = "/dev/disk/by-uuid/b1a956f4-91d5-456e-a92b-be505bb719bd";
fsType = "ext4"; fsType = "ext4";
}; };
"/boot" = { "/boot" = {
device = "/dev/disk/by-uuid/8310-585A"; device = "/dev/disk/by-uuid/B4D4-8BA0";
fsType = "vfat"; fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
}; };
"/storage" = { "/storage" = {
@ -54,15 +53,17 @@ 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.enp40s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp14s0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp42s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp15s0.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-2,3440x1440@144, 0x0, 1" "DP-1,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-2 --primary" "${lib.getExe pkgs.xorg.xrandr} --output DP-1 --primary"
]; ];
workspace = [ workspace = [
"1, monitor:DP-2" "1, monitor:DP-1"
"2, monitor:DP-2" "2, monitor:DP-1"
"3, monitor:DP-2" "3, monitor:DP-1"
"4, monitor:DP-2" "4, monitor:DP-1"
"5, monitor:DP-2" "5, monitor:DP-1"
"6, monitor:DP-2" "6, monitor:DP-1"
"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"