diff --git a/.gitignore b/.gitignore index 200ca60..f8fd48a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ hardware-configuration.nix calib-data.bin +user-config.nix diff --git a/hosts/base-configuration.nix b/hosts/base-configuration.nix index 306ef3b..e3d58bf 100644 --- a/hosts/base-configuration.nix +++ b/hosts/base-configuration.nix @@ -1,36 +1,36 @@ { config, pkgs, ... }: { - # DO NOT change this unless you know what you're doing! - system.stateVersion = "24.11"; + # DO NOT change this unless you know what you're doing! + system.stateVersion = "24.11"; - environment.variables = { - XDG_SESSION_TYPE = "wayland"; - XDG_CURRENT_DESKTOP = "Hyprland"; - NIXPKGS_ALLOW_INSECURE = 1; - }; + environment.variables = { + XDG_SESSION_TYPE = "wayland"; + XDG_CURRENT_DESKTOP = "Hyprland"; + NIXPKGS_ALLOW_INSECURE = 1; + }; - nixpkgs.config = { - allowInsecurePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [ - "fluffychat-linux" - "olm" - "python312Packages.youtube-dl" - ]; - }; + nixpkgs.config = { + allowInsecurePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [ + "fluffychat-linux" + "olm" + "python312Packages.youtube-dl" + ]; + }; - environment.systemPackages = with pkgs; [ - alacritty - vim - bluez - xwayland - unzip - networkmanager - ]; + environment.systemPackages = with pkgs; [ + alacritty + vim + bluez + xwayland + unzip + networkmanager + ]; - services.automatic-timezoned.enable = true; + services.automatic-timezoned.enable = true; - boot.loader.grub.enable = false; - boot.loader.systemd-boot.enable = true; + boot.loader.grub.enable = false; + boot.loader.systemd-boot.enable = true; - programs.xwayland.enable = true; + programs.xwayland.enable = true; } diff --git a/hosts/hulk/programs.nix b/hosts/hulk/programs.nix index 804fec7..17947e3 100644 --- a/hosts/hulk/programs.nix +++ b/hosts/hulk/programs.nix @@ -1,6 +1,7 @@ { pkgs, ... }: { + programs.adb.enable = true; programs.thunar.enable = true; programs.thunar.plugins = with pkgs.xfce; [ diff --git a/hosts/hulk/services.nix b/hosts/hulk/services.nix index 317d9b5..fb0b294 100644 --- a/hosts/hulk/services.nix +++ b/hosts/hulk/services.nix @@ -18,24 +18,11 @@ }; security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = false; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; - systemd.services.bluetooth.serviceConfig.ExecStart = pkgs.lib.mkForce [ "" "${pkgs.bluez}/libexec/bluetooth/bluetoothd -f /etc/bluetooth/main.conf -C" ]; - hardware.bluetooth.enable = true; - hardware.bluetooth.powerOnBoot = true; - - services.blueman.enable = true; - services.gvfs.enable = true; services.tlp = { enable = true; @@ -46,4 +33,19 @@ }; services.dbus.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; + + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + }; + + services.blueman.enable = true; + hardware.enableAllFirmware = true; } diff --git a/hosts/hulk/users.nix b/hosts/hulk/users.nix index 506b4e1..4669665 100644 --- a/hosts/hulk/users.nix +++ b/hosts/hulk/users.nix @@ -9,7 +9,7 @@ in { isNormalUser = true; description = fullname; home = "/home/${username}"; - extraGroups = [ "wheel" "networkmanager" ]; + extraGroups = [ "wheel" "networkmanager" "plugdev" "adbusers" ]; shell = preferredShell; ignoreShellProgramCheck = true; # Will do it later in profile configuration }; diff --git a/modules/fingerprint.nix b/modules/fingerprint.nix index a1d5734..62aa314 100644 --- a/modules/fingerprint.nix +++ b/modules/fingerprint.nix @@ -6,7 +6,7 @@ description = "Path to calibration data file."; }; - imports = lib.mkIf config.services.fingerprint-fix.enable [ + imports = [ inputs.fingerprint-sensor.nixosModules."06cb-009a-fingerprint-sensor" ]; @@ -18,10 +18,7 @@ description = "Restart services to fix fingerprint integration"; wantedBy = targets; after = targets; - serviceConfig = { - type = "simple"; - ExecStart = "systemctl --no-block restart python3-validity.service open-fprintd.service"; - }; + serviceConfig.ExecStart = "systemctl restart open-fprintd python3-validity"; }; services."06cb-009a-fingerprint-sensor" = { @@ -30,22 +27,9 @@ calib-data-file = config.services.fingerprint-fix.calibDataFile; }; - services.open-fprintd.enable = true; - - security.pam.services.login.fprintAuth = true; - security.pam.services.greetd.fprintAuth = true; - security.pam.services.sudo.fprintAuth = true; security.pam.services.su.fprintAuth = true; - - services.udev.extraRules = '' - ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0097", ATTR{power/persist}="1" - ''; - - security.pam.services.hyprlock.text = '' - # PAM configuration file for hyprlock - # the 'login' configuration file (see /etc/pam.d/login) - - auth include login - ''; + security.pam.services.sudo.fprintAuth = true; + security.pam.services.login.fprintAuth = true; + security.pam.services.greetd.fprintAuth = true; }; } diff --git a/profiles/hulk/packages.nix b/profiles/hulk/packages.nix index ae01b3e..79dd641 100644 --- a/profiles/hulk/packages.nix +++ b/profiles/hulk/packages.nix @@ -44,7 +44,8 @@ in { starship firefox-beta-bin thunderbird-bin - element-desktop + youtube-music + fluffychat libreoffice-qt6-fresh gimp vscodium git nodejs diff --git a/profiles/hulk/portal.nix b/profiles/hulk/portal.nix index fac2b01..4ac27ae 100644 --- a/profiles/hulk/portal.nix +++ b/profiles/hulk/portal.nix @@ -1,29 +1,25 @@ { pkgs, ... }: let - portals-config = pkgs.writeTextDir "share/xdg-desktop-portal/portals/portals.conf" '' - [preferred] - default=hyprland - org.freedesktop.impl.portal.Settings=darkman - ''; - packages = [ + portals = [ pkgs.xdg-desktop-portal pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk - pkgs.darkman + pkgs.xdg-desktop-portal-wlr + ]; + + packages = portals ++ [ + pkgs.darkman ]; - portals = pkgs.symlinkJoin { - name = "xdg-portals"; - paths = [ portals-config ] ++ packages; - pathsToLink = [ - "/share/xdg-desktop-portal/portals" - "/share/applications" - ]; - }; in { - home.sessionVariables = { - XDG_DESKTOP_PORTAL_DIR = "${portals}/share/xdg-desktop-portal/portals"; - }; - + xdg.portal = { + enable = true; + extraPortals = portals; + config = { + common.default = "hyprland"; + "org.freedesktop.impl.portal.Settings".default = "darkman"; + }; + }; + home.packages = packages; } diff --git a/profiles/hulk/programs.nix b/profiles/hulk/programs.nix index 1b8f242..d7c14c6 100644 --- a/profiles/hulk/programs.nix +++ b/profiles/hulk/programs.nix @@ -1,6 +1,8 @@ { inputs, pkgs, ... }: -{ +let + userConfig = import ../../user-config.nix; +in { imports = [ ./fish ]; programs.pywal.enable = true; @@ -13,11 +15,23 @@ ]; }; + programs.obs-studio = { + enable = true; + plugins = with pkgs.obs-studio-plugins; [ + obs-backgroundremoval + obs-pipewire-audio-capture + #advanced-scene-switcher + obs-tuna + obs-move-transition + waveform + wlrobs + ]; + }; + services.darkman = { enable = true; darkModeScripts = { theme = '' - ${pkgs.pywalfox-native}/bin/pywalfox dark ${pkgs.dconf}/bin/dconf write\ /org/gnome/desktop/interface/color-scheme "'prefer-dark'" ''; @@ -25,11 +39,12 @@ wallpaper = '' $HOME/.config/hypr/scripts/random-wallpaper.sh ''; + + pywalfox = "command -v pywalfox &>/dev/null && pywalfox dark && pywalfox update"; }; lightModeScripts = { theme = '' - ${pkgs.pywalfox-native}/bin/pywalfox light ${pkgs.dconf}/bin/dconf write\ /org/gnome/desktop/interface/color-scheme "'prefer-light'" ''; @@ -37,8 +52,12 @@ wallpaper = '' $HOME/.config/hypr/scripts/random-wallpaper.sh ''; + + pywalfox = "command -v pywalfox &>/dev/null && pywalfox light && pywalfox update"; }; - settings.usegeoclue = false; + settings.usegeoclue = userConfig.geoclue; + settings.lat = userConfig.latitude; + settings.lng = userConfig.longtitude; }; } diff --git a/user-config.nix.template b/user-config.nix.template new file mode 100644 index 0000000..647354c --- /dev/null +++ b/user-config.nix.template @@ -0,0 +1,5 @@ +{ + geoclue = true; + latitude = 0; + longtitude = 0; +}