Compare commits

...

10 commits

Author SHA1 Message Date
willifan
cc35fd1aba Added auto-epp to Lenni 2025-04-25 22:36:47 +02:00
willifan
4910c67db8 added light for screen brightness 2025-04-24 21:51:26 +02:00
willifan
55007f1a44 removed unused Lenni configurations 2025-04-24 18:15:16 +02:00
willifan
f7b6dc0403 added framework firmware update tool 2025-04-24 18:13:40 +02:00
willifan
928bdb251c enable niri variable refresh rate 2025-04-24 18:08:41 +02:00
willifan
31f9350f78 fix framework backlight 2025-04-23 18:44:23 +02:00
willifan
bfc71700b5 remove unnecessary users directory 2025-04-23 18:36:34 +02:00
willifan
74f16b7a48 switched networkmanager backend to iwd 2025-04-23 18:26:59 +02:00
willifan
08e850ed59 migrate Lenni to AMD mainboard 2025-04-23 18:20:28 +02:00
willifan
fc6703d853 added waybar 2025-04-21 21:10:26 +02:00
12 changed files with 192 additions and 314 deletions

View file

@ -81,7 +81,7 @@
inputs.disko.nixosModules.disko inputs.disko.nixosModules.disko
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.nixvim.nixosModules.nixvim inputs.nixvim.nixosModules.nixvim
inputs.nixos-hardware.nixosModules.framework-12th-gen-intel inputs.nixos-hardware.nixosModules.framework-13-7040-amd
./hosts/Lenni ./hosts/Lenni
./pkgs ./pkgs
]; ];

View file

@ -1,16 +0,0 @@
{ ... }:
{
services.auto-cpufreq = {
enable = true;
settings = {
battery = {
governor = "powersave";
turbo = "never";
};
charger = {
governor = "powersave";
turbo = "never";
};
};
};
}

View file

@ -1,6 +0,0 @@
{ pkgs, ... }:
{
services.udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", MODE="0666", RUN+="${pkgs.coreutils}/bin/chmod a+w /sys/class/backlight/%k/brightness"
'';
}

View file

@ -1,8 +1,6 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./auto-cpufreq.nix
./backlight.nix
./hardware-configuration.nix ./hardware-configuration.nix
#./disko.nix #./disko.nix
@ -26,6 +24,8 @@
}; };
}; };
services.auto-epp.enable = true;
services.fwupd.enable = true;
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
services.hardware.bolt.enable = true; services.hardware.bolt.enable = true;

View file

@ -1,22 +1,20 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports =
[ [ (modulesPath + "/installer/scan/not-detected.nix")
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ { device = "/dev/disk/by-uuid/e09e7d80-9d85-49e6-8b0e-1f31aea83840";
device = "/dev/disk/by-uuid/e09e7d80-9d85-49e6-8b0e-1f31aea83840";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@" ]; options = [ "subvol=@" ];
}; };
@ -24,12 +22,16 @@
boot.initrd.luks.devices."luks-a2f76baf-2f27-42a4-ae48-1963c566a9ab".device = "/dev/disk/by-uuid/a2f76baf-2f27-42a4-ae48-1963c566a9ab"; boot.initrd.luks.devices."luks-a2f76baf-2f27-42a4-ae48-1963c566a9ab".device = "/dev/disk/by-uuid/a2f76baf-2f27-42a4-ae48-1963c566a9ab";
fileSystems."/boot" = fileSystems."/boot" =
{ { device = "/dev/disk/by-uuid/2A99-D7CC";
device = "/dev/disk/by-uuid/2A99-D7CC";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = [ "fmask=0022" "dmask=0022" ];
}; };
fileSystems."/mnt/nfs" =
{ device = "/nix/store/8zm9gh07p3rx8b3vqiwa1qb7zsml17sk-auto.nfs";
fsType = "autofs";
};
swapDevices = [ ]; swapDevices = [ ];
# 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
@ -37,8 +39,9 @@
# 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.wlp166s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp195s0f3u1c2.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View file

@ -4,5 +4,6 @@
imports = [ imports = [
./niri.nix ./niri.nix
./river.nix ./river.nix
./waybar.nix
]; ];
} }

View file

@ -8,23 +8,24 @@ lib.mkIf config.desktop.wm.niri.enable {
programs.niri.enable = true; programs.niri.enable = true;
programs.light.enable = true;
home-manager.users.willifan = { home-manager.users.willifan = {
home.packages = [ home.packages = [
pkgs.xwayland-satellite pkgs.xwayland-satellite
pkgs.ewwbar
]; ];
programs.niri.settings = { programs.niri.settings = {
outputs."eDP-1".scale = 1.6; outputs."eDP-1" = {
scale = 1.6;
variable-refresh-rate = true;
};
spawn-at-startup = [ spawn-at-startup = [
{ {
command = [ "xwayland-satellite" ":0" ]; command = [ "xwayland-satellite" ":0" ];
} }
{
command = [ "ewwbar" ];
}
]; ];
hotkey-overlay.skip-at-startup = true; hotkey-overlay.skip-at-startup = true;
@ -50,6 +51,7 @@ lib.mkIf config.desktop.wm.niri.enable {
}; };
clip-to-geometry = true; clip-to-geometry = true;
open-maximized = true; open-maximized = true;
} }
]; ];
@ -75,8 +77,8 @@ lib.mkIf config.desktop.wm.niri.enable {
"XF86AudioPrev".action.spawn = [ "playerctl" "previous" ]; "XF86AudioPrev".action.spawn = [ "playerctl" "previous" ];
"XF86AudioPlay".action.spawn = [ "playerctl" "play-pause" ]; "XF86AudioPlay".action.spawn = [ "playerctl" "play-pause" ];
"XF86AudioNext".action.spawn = [ "playerctl" "next" ]; "XF86AudioNext".action.spawn = [ "playerctl" "next" ];
"XF86MonBrightnessDown".action.spawn = [ "sh" "-c" "${SCRIPTS}/brightness.sh -4800" ]; "XF86MonBrightnessDown".action.spawn = [ "light" "-U" "5" ];
"XF86MonBrightnessUp".action.spawn = [ "sh" "-c" "${SCRIPTS}/brightness.sh 4800" ]; "XF86MonBrightnessUp".action.spawn = [ "light" "-A" "5" ];
"Print".action.screenshot = { }; "Print".action.screenshot = { };
}; };

View file

@ -0,0 +1,153 @@
{ lib, config, pkgs, ... }:
let
icons = fetchTarball {
url = "https://files.huwe.mooo.com/waybar.tar.gz";
sha256 = "0h5r8r7vscm6yv25kgyzx5y325n5ri78n28vmdvgmysp351drm57";
};
in
lib.mkIf config.desktop.wm.niri.enable {
home-manager.users.willifan = {
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 25;
output = [
"eDP-1"
];
modules-left = [ "clock" "mpris" ];
modules-center = [ "niri/workspaces" ];
modules-right = [ "tray" "group/ressources" "group/peripherals" "group/wireless" "group/power" ];
"group/ressources" = {
orientation = "inherit";
modules = [ "group/cpu" "group/memory" ];
};
"group/peripherals" = {
orientation = "inherit";
modules = [ "group/volume" "group/backlight" ];
};
"group/wireless" = {
orientation = "inherit";
modules = [ "group/networking" "group/bluetooth" ];
};
"group/power" = {
orientation = "inherit";
modules = [ "group/battery" "image#power" ];
};
"clock" = {
interval = 1;
format = "{:%H:%M:%S}";
};
"mpris" = {
format = "";
format-playing = "{dynamic}";
dynamic-order = [ "title" "artist" "album" "position" "length" ];
dynamic-len = 30;
};
"niri/workspaces" = {
all-outputs = true;
};
"group/cpu" = {
orientation = "inherit";
modules = [ "image#cpu" "cpu" ];
};
"image#cpu" = {
path = "${icons}/cpu.png";
size = 16;
};
"cpu" = {
format = "{usage}%";
};
"group/memory" = {
orientation = "inherit";
modules = [ "image#memory" "memory" ];
};
"image#memory" = {
path = "${icons}/ram.png";
size = 16;
};
"memory" = {
format = "{percentage}%";
};
"group/volume" = {
orientation = "inherit";
modules = [ "image#volume" "wireplumber" ];
};
"image#volume" = {
path = "${icons}/volume.png";
size = 16;
};
"wireplumber" = {
format = "{volume}%";
};
"group/backlight" = {
orientation = "inherit";
modules = [ "image#backlight" "backlight" ];
};
"image#backlight" = {
path = "${icons}/brightness.png";
size = 16;
};
"backlight" = {
format = "{percent}%";
};
"group/networking" = {
orientation = "inherit";
modules = [ "image#networking" "network" ];
};
"image#networking" = {
path = "${icons}/wifiHigh.png";
size = 16;
};
"network" = {
format = "{signalStrength}%";
};
"group/bluetooth" = {
orientation = "inherit";
modules = [ "image#bluetooth" "bluetooth" ];
};
"image#bluetooth" = {
path = "${icons}/bluetooth.png";
size = 16;
};
"bluetooth" = {
format = "{status}";
};
"group/battery" = {
orientation = "inherit";
modules = [ "image#battery" "battery" ];
};
"image#battery" = {
path = "${icons}/battery.png";
size = 16;
};
"battery" = {
format = "{capacity}%";
};
"image#power" = {
path = "${icons}/power.png";
size = 16;
};
};
};
systemd = {
enable = true;
};
};
};
}

View file

@ -16,6 +16,7 @@
./keyd.nix ./keyd.nix
./locales.nix ./locales.nix
./mimetype.nix ./mimetype.nix
./networking.nix
./optimise.nix ./optimise.nix
./options.nix ./options.nix
./packages.nix ./packages.nix
@ -25,10 +26,6 @@
./users.nix ./users.nix
]; ];
networking = {
networkmanager.enable = true;
hostName = "${hostname}";
};
console.keyMap = "en"; console.keyMap = "en";
nix = { nix = {

View file

@ -0,0 +1,10 @@
{ hostname, ... }:
{
networking = {
networkmanager = {
enable = true;
wifi.backend = "iwd";
};
hostName = "${hostname}";
};
}

View file

@ -4,7 +4,7 @@
isNormalUser = true; isNormalUser = true;
linger = true; linger = true;
description = "willifan"; description = "willifan";
extraGroups = [ "networkmanager" "wheel" ]; extraGroups = [ "networkmanager" "wheel" "video" ];
shell = pkgs.bash; shell = pkgs.bash;
}; };

View file

@ -1,266 +0,0 @@
{ pkgs, home-manager, ... }:
{
home-manager.users.willifan = {
wayland.windowManager.hyprland = {
enable = true;
systemd.variables = ["--all"];
package = pkgs.hyprland;
settings = {
"$SCRIPTS" = "$XDG_CONFIG_HOME/desktop-utils/scripts";
misc = {
disable_hyprland_logo=true;
};
monitor = [
", preffered, auto, 1"
"eDP-1, preferred, 0x0, 1.6"
"desc:ViewSonic Corporation VX2705-2KP W6Z205100250, 2560x1440@144Hz, 0x384, 1.25"
"desc:ViewSonic Corporation VX2705-2KP W6Z210400766, 2560x1440@144Hz, 2048x384, 1.25"
"desc:BNQ BenQ BL2283 CAM01567019, 1920x1080@60Hz, 4096x0, 1.0, transform, 3"
];
# Execute your favorite apps at launch
exec-once = [
''hyprctl dispatch exec "[workspace 1 silent] kitty"''
''hyprctl dispatch exec "[workspace 2 silent] firefox"''
#''hyprctl dispatch exec "[workspace 3 silent] "''
#''hyprctl dispatch exec "[workspace 4 silent] "''
#''hyprctl dispatch exec "[workspace 8 silent] "''
''hyprctl dispatch exec "[workspace 9 silent] vesktop"''
''hyprctl dispatch exec "[workspace special:ctrl silent] thunar"''
''hyprctl dispatch exec "[workspace special:alt silent] obsidian"''
''hyprctl dispatch exec "[workspace special:altgr silent] thunderbird"''
#''exec-once = hyprctl dispatch exec "[workspace special:strg silent] "''
];
xwayland.force_zero_scaling = true;
input = {
kb_layout = "de";
kb_variant = "";
kb_model = "";
kb_options = "";
kb_rules = "";
follow_mouse = 1;
touchpad.natural_scroll = "yes";
sensitivity = -0.8; # -1.0 - 1.0, 0 means no modification.
numlock_by_default = 1;
special_fallthrough = true;
};
general = {
gaps_in = 2;
gaps_out = 5;
border_size = 2;
# "col.active_border" = "rgba(ffa44bee)";
# "col.inactive_border" = "rgba(595959aa)";
layout = "dwindle";
resize_on_border = true;
};
decoration = {
rounding = 10;
blur = {
enabled = false;
size = 3;
passes = 1;
new_optimizations = 1;
};
drop_shadow = "yes";
shadow_range = 4;
shadow_render_power = 3;
# "col.shadow" = "rgba(1a1a1aee)";
};
misc = {
vfr = true;
mouse_move_enables_dpms = true;
};
animations = {
enabled = "yes";
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
"specialWorkspace, 1, 8, default, slidefadevert 20%"
];
};
dwindle = {
pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = "yes"; # you probably want this
};
gestures = {
workspace_swipe = "on";
workspace_swipe_create_new = "false";
};
device = {
name = "pixa3854:00-093a:0274-touchpad";
sensitivity = 0;
natural_scroll = "yes";
};
windowrule = [
"idleinhibit fullscreen, ^(firefox)$"
"float, ^(thunar)$"
"stayfocused, title:^(Enpass Assistant)$"
"pin, title:^(Enpass Assistant)$"
"center, title:^(Enpass Assistant)$"
"float, ^(Enpass)$"
"center, ^(Enpass)$"
"float, ^(blueman-manager)$"
"move -0% 0%, ^(blueman-manager)$"
"float, ^(org.gnome.Calendar)$"
"move 20% 5%, ^(org.gnome.Calendar)$"
"size 60% 60%, ^(org.gnome.Calendar)$"
"float, ^(org.gnome.Calculator)$"
];
windowrulev2 = [
"center, xwayland:(1)"
"nofocus,class:^jetbrains-(?!toolbox),floating:1,title:^win\d+$"
''workspace +0, workspace:name:special:ctrl, floating:0''
''float, workspace:name:special:altgr, onworkspace:w[2]''
''float, workspace:name:special:strg, onworkspace:w[1]''
''workspace +0, workspace:name:special:strg, floating:0''
];
"$mainMod" = "SUPER";
bind = [
''$mainMod, Q, exec, kitty''
''$mainMod, C, killactive, ''
''$mainMod, M, exit, ''
''$mainMod, E, exec, thunar''
''$mainMod, V, togglefloating, ''
''$mainMod, R, exec, wofi --show drun''
''$mainMod, J, togglesplit, # dwindle''
''$mainMod, P, exec, Enpass''
''$mainMod, T, exec, hyprctl dispatch exec "[float; pin; size 40% 40%; move 100%-41% 40] kitty btop -b proc"''
''$mainMod, W, exec, networkmanager_dmenu''
''$mainMod, F, fullscreen''
# Move focus with mainMod + arrow keys
''$mainMod, left, movefocus, l''
''$mainMod, right, movefocus, r''
''$mainMod, up, movefocus, u''
''$mainMod, down, movefocus, d''
'', XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle''
'', XF86AudioPrev, exec, playerctl previous''
'', XF86AudioPlay, exec, playerctl play-pause''
'', XF86AudioNext, exec, playerctl next''
'', print, exec, grim -g "$(slurp)" - | wl-copy -t image/png''
# Switch workspaces with mainMod + [0-9]
''$mainMod, 1, exec, $SCRIPTS/workspaces.sh 1''
''$mainMod, 2, exec, $SCRIPTS/workspaces.sh 2''
''$mainMod, 3, exec, $SCRIPTS/workspaces.sh 3''
''$mainMod, 4, exec, $SCRIPTS/workspaces.sh 4''
''$mainMod, 5, exec, $SCRIPTS/workspaces.sh 5''
''$mainMod, 6, exec, $SCRIPTS/workspaces.sh 6''
''$mainMod, 7, exec, $SCRIPTS/workspaces.sh 7''
''$mainMod, 8, exec, $SCRIPTS/workspaces.sh 8''
''$mainMod, 9, exec, $SCRIPTS/workspaces.sh 9''
# Move active window to a workspace with mainMod + SHIFT + [0-9]
''$mainMod SHIFT, 1, movetoworkspace, 1''
''$mainMod SHIFT, 2, movetoworkspace, 2''
''$mainMod SHIFT, 3, movetoworkspace, 3''
''$mainMod SHIFT, 4, movetoworkspace, 4''
''$mainMod SHIFT, 5, movetoworkspace, 5''
''$mainMod SHIFT, 6, movetoworkspace, 6''
''$mainMod SHIFT, 7, movetoworkspace, 7''
''$mainMod SHIFT, 8, movetoworkspace, 8''
''$mainMod SHIFT, 9, movetoworkspace, 9''
# Monitor focus
''$mainMod ALT, 1, focusmonitor, 0''
''$mainMod ALT, 2, focusmonitor, 1''
''$mainMod ALT, 3, focusmonitor, 2''
''$mainMod ALT, 4, focusmonitor, 3''
''$mainMod ALT, 5, focusmonitor, 4''
''$mainMod ALT, 6, focusmonitor, 5''
''$mainMod ALT, 7, focusmonitor, 6''
''$mainMod ALT, 8, focusmonitor, 7''
''$mainMod ALT, 9, focusmonitor, 8''
''$mainMod ALT, 0, focusmonitor, 9''
# Scroll through existing workspaces with mainMod + scroll
''$mainMod, mouse_down, workspace, e+1''
''$mainMod, mouse_up, workspace, e-1''
];
binde = [
'', XF86AudioLowerVolume, exec, $SCRIPTS/volume.sh -5''
'', XF86AudioRaiseVolume, exec, $SCRIPTS/volume.sh 5''
];
bindel = [
'', XF86MonBrightnessDown, exec, $SCRIPTS/brightness.sh -4800''
'', XF86MonBrightnessUp, exec, $SCRIPTS/brightness.sh 4800''
];
bindr = [
''SUPERCTRL, Control_L, togglespecialworkspace, ctrl''
''SUPERALT, Alt_L, togglespecialworkspace, alt''
''SUPERMOD5, ISO_Level3_Shift, togglespecialworkspace, altgr''
''SUPERCTRL, Control_R, togglespecialworkspace, strg''
];
bindm = [
# Move/resize windows with mainMod + LMB/RMB and dragging
''$mainMod, mouse:272, movewindow''
''$mainMod, mouse:273, resizewindow''
];
# ------------------------------------------
# ########################################
# ####### Workspaces ###########
# ########################################
# ------------------------------------------
workspace = [
"1, persistent:true"
"2, persistent:true"
"3, persistent:true"
"4, persistent:true"
"5, persistent:true"
"6, persistent:true"
"7, persistent:true"
"8, persistent:true"
"8, persistent:true"
"9, persistent:true"
"name:special:ctrl, persistent:true"
"name:special:alt, persistent:true"
"name:special:altgr, persistent:true"
"name:special:strg, persistent:true"
];
};
};
};
}