Compare commits

...

3 Commits

Author SHA1 Message Date
42751bf2f0 add: miracast support 2025-03-14 18:59:13 +01:00
893aa88155 add user configuration 2025-03-09 16:47:39 +01:00
61090d1439 simplify fingerprint module 2025-02-22 08:59:27 +01:00
13 changed files with 125 additions and 112 deletions

View File

@ -1,36 +1,36 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
# DO NOT change this unless you know what you're doing! # DO NOT change this unless you know what you're doing!
system.stateVersion = "24.11"; system.stateVersion = "24.11";
environment.variables = { environment.variables = {
XDG_SESSION_TYPE = "wayland"; XDG_SESSION_TYPE = "wayland";
XDG_CURRENT_DESKTOP = "Hyprland"; XDG_CURRENT_DESKTOP = "Hyprland";
NIXPKGS_ALLOW_INSECURE = 1; NIXPKGS_ALLOW_INSECURE = 1;
}; };
nixpkgs.config = { nixpkgs.config = {
allowInsecurePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [ allowInsecurePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [
"fluffychat-linux" "fluffychat-linux"
"olm" "olm"
"python312Packages.youtube-dl" "python312Packages.youtube-dl"
]; ];
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
alacritty alacritty
vim vim
bluez bluez
xwayland xwayland
unzip unzip
networkmanager networkmanager
]; ];
services.automatic-timezoned.enable = true; services.automatic-timezoned.enable = true;
boot.loader.grub.enable = false; boot.loader.grub.enable = false;
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
programs.xwayland.enable = true; programs.xwayland.enable = true;
} }

View File

@ -7,7 +7,9 @@ let
pkgs = inputs.nixpkgs.legacyPackages.${system}; pkgs = inputs.nixpkgs.legacyPackages.${system};
mkSystem = pkgs: hostname: mkSystem = pkgs: hostname:
pkgs.lib.nixosSystem { pkgs.lib.nixosSystem {
specialArgs = { inherit inputs; }; specialArgs = {
inherit inputs;
};
modules = [ modules = [
./base-configuration.nix ./base-configuration.nix
./${hostname} ./${hostname}

View File

@ -1,10 +1,9 @@
{ inputs, ... }: { inputs, ... }:
{ {
imports = [ imports = [
../../modules/greetd.nix ../../modules/greetd.nix
../../modules/nvidia-support.nix ../../modules/nvidia-support.nix
../../modules/open-fprint-suspend-fix.nix ../../modules/fingerprint.nix
inputs.fingerprint-sensor.nixosModules."06cb-009a-fingerprint-sensor" ];
];
} }

View File

@ -8,4 +8,16 @@ in {
networking.wireless.enable = pkgs.lib.mkIf wirelessEnabled true; networking.wireless.enable = pkgs.lib.mkIf wirelessEnabled true;
networking.wireless.userControlled.enable = pkgs.lib.mkIf wirelessEnabled true; networking.wireless.userControlled.enable = pkgs.lib.mkIf wirelessEnabled true;
networking.firewall = {
trustedInterfaces = [ "p2p-wl+" ];
allowedTCPPorts = [
7236
7250
];
allowedUDPPorts = [
7236
5353
];
};
} }

View File

@ -1,6 +1,7 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
programs.adb.enable = true;
programs.thunar.enable = true; programs.thunar.enable = true;
programs.thunar.plugins = with pkgs.xfce; [ programs.thunar.plugins = with pkgs.xfce; [

View File

@ -18,24 +18,11 @@
}; };
security.rtkit.enable = true; 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 [ systemd.services.bluetooth.serviceConfig.ExecStart = pkgs.lib.mkForce [
"" ""
"${pkgs.bluez}/libexec/bluetooth/bluetoothd -f /etc/bluetooth/main.conf -C" "${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.gvfs.enable = true;
services.tlp = { services.tlp = {
enable = true; enable = true;
@ -45,5 +32,25 @@
}; };
}; };
services.geoclue2 = {
enableWifi = true;
geoProviderUrl = "https://api.beacondb.net/v1/geolocate";
};
services.dbus.enable = true; 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;
} }

View File

@ -1,16 +1,16 @@
{ pkgs, ... }: { pkgs, ... }:
let let
username = "sadorowo"; username = "sadorowo";
fullname = "Franek"; fullname = "Franek";
preferredShell = pkgs.fish; preferredShell = pkgs.fish;
in { in {
users.users.${username} = { users.users.${username} = {
isNormalUser = true; isNormalUser = true;
description = fullname; description = fullname;
home = "/home/${username}"; home = "/home/${username}";
extraGroups = [ "wheel" "networkmanager" ]; extraGroups = [ "wheel" "networkmanager" "plugdev" "adbusers" ];
shell = preferredShell; shell = preferredShell;
ignoreShellProgramCheck = true; # Will do it later in profile configuration ignoreShellProgramCheck = true; # Will do it later in profile configuration
}; };
} }

View File

@ -1,11 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, inputs, ... }:
{ {
options.services.fingerprint-fix.enable = lib.mkEnableOption "Enable systemd service to restart fingerprint services after suspend."; options.services.fingerprint-fix.enable = lib.mkEnableOption "Enable support for fingerprint for P51S-like ThinkPads.";
options.services.fingerprint-fix.calibDataFile = lib.mkOption { options.services.fingerprint-fix.calibDataFile = lib.mkOption {
description = "Path to calibration data file."; description = "Path to calibration data file.";
}; };
imports = [
inputs.fingerprint-sensor.nixosModules."06cb-009a-fingerprint-sensor"
];
config = lib.mkIf config.services.fingerprint-fix.enable { config = lib.mkIf config.services.fingerprint-fix.enable {
# Needed because we're getting TLS error with open-fprintd-resume # Needed because we're getting TLS error with open-fprintd-resume
systemd.services.validity-restart = let systemd.services.validity-restart = let
@ -13,11 +17,8 @@
in { in {
description = "Restart services to fix fingerprint integration"; description = "Restart services to fix fingerprint integration";
wantedBy = targets; wantedBy = targets;
after = targets; after = targets;
serviceConfig = { serviceConfig.ExecStart = "systemctl restart open-fprintd python3-validity";
type = "oneshot";
ExecStart = "systemctl restart python3-validity.service";
};
}; };
services."06cb-009a-fingerprint-sensor" = { services."06cb-009a-fingerprint-sensor" = {
@ -26,6 +27,9 @@
calib-data-file = config.services.fingerprint-fix.calibDataFile; calib-data-file = config.services.fingerprint-fix.calibDataFile;
}; };
services.fprintd.enable = lib.mkForce true; # Fprintd is not working with P51s security.pam.services.su.fprintAuth = true;
}; security.pam.services.sudo.fprintAuth = true;
security.pam.services.login.fprintAuth = true;
security.pam.services.greetd.fprintAuth = true;
};
} }

View File

@ -8,7 +8,6 @@ in {
./packages.nix # Packages to install ./packages.nix # Packages to install
./programs.nix # Programs to enable ./programs.nix # Programs to enable
./theme.nix # System-wide/GTK theme ./theme.nix # System-wide/GTK theme
./portal.nix # Desktop portals
]; ];
home = { home = {
@ -25,3 +24,4 @@ in {
programs.home-manager.enable = true; programs.home-manager.enable = true;
home.stateVersion = "24.11"; # DO NOT change this unless you know what you're doing! home.stateVersion = "24.11"; # DO NOT change this unless you know what you're doing!
} }

View File

@ -44,7 +44,8 @@ in {
starship starship
firefox-beta-bin firefox-beta-bin
thunderbird-bin thunderbird-bin
element-desktop youtube-music
fluffychat
libreoffice-qt6-fresh libreoffice-qt6-fresh
gimp gimp
vscodium git nodejs vscodium git nodejs
@ -56,7 +57,6 @@ in {
greetd.greetd greetd.tuigreet greetd.greetd greetd.tuigreet
playerctl playerctl
adwaita-icon-theme adwaita-icon-theme
darkman
android-tools android-tools
filezilla filezilla
bitwarden-desktop bitwarden-desktop

View File

@ -1,29 +0,0 @@
{ pkgs, ... }:
let
portals-config = pkgs.writeTextDir "share/xdg-desktop-portal/portals/portals.conf" ''
[preferred]
default=hyprland
org.freedesktop.impl.portal.Settings=darkman
'';
packages = [
pkgs.xdg-desktop-portal
pkgs.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal-gtk
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";
};
home.packages = packages;
}

View File

@ -13,21 +13,36 @@
]; ];
}; };
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 = { services.darkman = {
enable = true; enable = true;
darkModeScripts = { darkModeScripts = {
gtk-theme = '' theme = ''
${pkgs.dconf}/bin/dconf write\ ${pkgs.dconf}/bin/dconf write\
/org/gnome/desktop/interface/color-scheme "'prefer-dark'" /org/gnome/desktop/interface/color-scheme "'prefer-dark'"
''; '';
wallpaper = '' wallpaper = ''
$HOME/.config/hypr/scripts/random-wallpaper.sh $HOME/.config/hypr/scripts/random-wallpaper.sh
''; '';
pywalfox = "command -v pywalfox &>/dev/null && pywalfox dark && pywalfox update";
}; };
lightModeScripts = { lightModeScripts = {
gtk-theme = '' theme = ''
${pkgs.dconf}/bin/dconf write\ ${pkgs.dconf}/bin/dconf write\
/org/gnome/desktop/interface/color-scheme "'prefer-light'" /org/gnome/desktop/interface/color-scheme "'prefer-light'"
''; '';
@ -35,8 +50,10 @@
wallpaper = '' wallpaper = ''
$HOME/.config/hypr/scripts/random-wallpaper.sh $HOME/.config/hypr/scripts/random-wallpaper.sh
''; '';
pywalfox = "command -v pywalfox &>/dev/null && pywalfox light && pywalfox update";
}; };
settings.usegeoclue = false; settings.usegeoclue = true;
}; };
} }

View File

@ -1,17 +1,17 @@
{ pkgs, inputs, ... }: { pkgs, inputs, ... }:
let let
nerdfonts = (pkgs.nerdfonts.override { nerdfonts = (pkgs.nerdfonts.override {
fonts = [ fonts = [
"CascadiaCode" "CascadiaCode"
"JetBrainsMono" "JetBrainsMono"
"FiraCode" "FiraCode"
"SpaceMono" "SpaceMono"
]; ];
}); });
cursor-theme = "Bibata-Modern-Classic"; cursor-theme = "Bibata-Modern-Classic";
cursor-pkg = pkgs.bibata-cursors; cursor-pkg = pkgs.bibata-cursors;
in in
{ {
home = { home = {