lifebook: move to niri

disable ssh agent in desktop config
This commit is contained in:
2025-12-23 14:29:54 +01:00
parent 1dc51c4bc4
commit c1f4c25cb6
5 changed files with 424 additions and 12 deletions

View File

@@ -161,18 +161,9 @@
programs = { # No xbacklight, this is the alterantive programs = { # No xbacklight, this is the alterantive
zsh.enable = true; zsh.enable = true;
dconf.enable = true; dconf.enable = true;
ssh = {
startAgent = true;
agentTimeout = "1h";
};
}; };
#xdg.portal = { # Required for flatpak
# enable = true;
# extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
#};
nix = { # Nix Package Manager settings nix = { # Nix Package Manager settings
settings ={ settings ={
auto-optimise-store = true; # Optimise syslinks auto-optimise-store = true; # Optimise syslinks

View File

@@ -22,8 +22,7 @@
{ {
imports = # For now, if applying to other system, swap files imports = # For now, if applying to other system, swap files
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix [(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
#[(import ../../modules/wm/hyprland/default.nix)] ++ # Window Manager [(import ../../modules/wm/niri/default.nix)] ++ # Window Manager
[(import ../../modules/wm/sway/default.nix)] ++ # Window Manager
[(import ../../modules/wm/virtualisation/docker.nix)] ++ # Docker [(import ../../modules/wm/virtualisation/docker.nix)] ++ # Docker
[(import ../../modules/wm/virtualisation/kvm-intel.nix)] ++ # kvm module options [(import ../../modules/wm/virtualisation/kvm-intel.nix)] ++ # kvm module options
(import ../../modules/hardware); # Hardware devices (import ../../modules/hardware); # Hardware devices

View File

@@ -17,7 +17,7 @@
imports = imports =
[ [
#../../modules/wm/hyprland/home.nix # Window Manager #../../modules/wm/hyprland/home.nix # Window Manager
../../modules/wm/sway/home.nix # Window Manager ../../modules/wm/niri/home.nix # Window Manager
../../modules/home.nix # Window Manager ../../modules/home.nix # Window Manager
]; ];

View File

@@ -0,0 +1,78 @@
#
# Sway configuration
#
# flake.nix
# ├─ ./hosts
# │ └─ ./laptop
# │ └─ default.nix
# └─ ./modules
# └─ ./desktop
# └─ ./hyprland
# └─ hyprland.nix *
#
{ config, lib, user, pkgs, desktop, ... }:
{
imports = [ ../waybar.nix ];
environment = {
systemPackages = with pkgs; [
xdg-desktop-portal-gnome
dinit
swaylock
swayidle
slurp
grim
lxqt.lxqt-openssh-askpass
clinfo
glib
brightnessctl
playerctl
];
};
services = {
iio-niri = {
enable = true;
extraArgs = [
"--monitor"
"eDP-1"
];
};
greetd = {
enable = true;
useTextGreeter = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd niri-session";
};
};
};
};
programs = {
niri.enable = true;
# sway.extraSessionCommands = ''
# export MOZ_ENABLE_WAYLAND="1";
# export MOZ_WEBRENDER="1";
# export MOZ_USE_XINPUT2="2";
# export MOZ_DBUS_REMOTE="1";
# export WLR_RENDERER="vulkan";
# export LIBVA_DRIVER_NAME="iHD";
# export VDPAU_DRIVER="iHD";
# export XDG_SESSION_TYPE="wayland";
# #export XDG_CURRENT_DESKTOP="Unity";
# #export QT_QPA_PLATFORMTHEME="wayland-egl";
# export GST_VAAPI_ALL_DRIVERS="1";
# export GTK_THEME="Arc";
# export _JAVA_AWT_WM_NONREPARENTING="1";
# #export LIBCL_ALWAYS_SOFTWARE="1"; # For applications in VM like alacritty to work
# #export WLR_NO_HARDWARE_CURSORS="1"; # For cursor in VM
# '';
ssh.enableAskPassword = true;
ssh.askPassword = "${pkgs.lxqt.lxqt-openssh-askpass}/bin/lxqt-openssh-askpass";
};
security.pam.services.swaylock = {};
}

344
modules/wm/niri/home.nix Normal file
View File

@@ -0,0 +1,344 @@
#
# Sway NixOS & Home manager configuration
#
# flake.nix
# ├─ ./hosts
# │ └─ ./laptop
# │ └─ home.nix
# └─ ./modules
# └─ ./desktop
# └─ ./sway
# └─ home.nix *
#
{ config, lib, pkgs, ... }:
{
# wayland.windowManager.sway = {
# enable = true;
# checkConfig = false;
# config = rec {
# menu = "${pkgs.rofi}/bin/rofi -show combi -show-icons";
# left = "m";
# down = "n";
# up = "e";
# right = "i";
# modifier = "Mod4";
# floating.modifier = "Mod4";
# floating.titlebar = true;
#
# input = {
# "type:keyboard" = {
# xkb_layout = "us,de";
# xkb_variant = "altgr-intl,";
# xkb_options = "grp:win_space_toggle";
# };
# "type:touchpad" = {
# tap = "enabled";
# natural_scroll = "disabled";
# drag = "enabled";
# dwt = "enabled";
# middle_emulation = "enabled";
# scroll_method = "two_finger";
# tap_button_map = "lmr";
# };
# "type:touch" = {
# map_to_output = "eDP-1";
# };
# };
#
# output = {
# "*" = {
# bg = "$HOME/.config/wall fill";
# };
# #"HDMI-A-1" = {
# # mode = "2560x1440";
# # pos = "0,0";
# # #scale = "1.1";
# #};
# "eDP-1" = {
# mode = "1920x1080";
# pos = "2560,0";
# };
# "DP-5" = {
# mode = "2560x1440";
# pos = "0,250";
# };
# "DP-6" = {
# mode = "1920x1200";
# pos = "2560,0";
# transform = "90";
# };
# #"eDP-1" = {
# # mode = "1920x1080";
# # #pos = "4480,0";
# # pos = "2560,0";
# # subpixel = "none";
# # scale = "1.3";
# #};
# };
#
# terminal = "${pkgs.alacritty}/bin/alacritty";
#
# fonts = {
# names = [ "Cascadia Code" ];
# size = 10.0;
# };
#
# colors.focused = {
# background = "#212121";
# border = "#999999";
# childBorder = "#999999";
# indicator = "#999999";
# text = "#FFFFFF";
# };
#
# startup = [
# #{ command = "exec ${pkgs.rot8}/bin/rot8 -Y -k"; }
# { command = "xrdb -load ~/.Xresources"; }
# # { command = "gsettings set org.gnome.desktop.interface gtk-theme Dracula"; }
# # { command = "gsettings set org.gnome.desktop.interface icon-theme Dracula"; }
# # { command = "gsettings set org.gnome.desktop.interface cursor-theme Adwaita"; }
# #{ command = "exec ${pkgs.networkmanagerapplet}/bin/nm-applet --indicator"; }
# #{ command = "${pkgs.thunderbird}/bin/thunderbird"; }
# { command = "${pkgs.firefox}/bin/firefox"; }
# #{ command = "${pkgs.element-desktop}/bin/element-desktop"; }
# ];
#
# workspaceAutoBackAndForth = true;
#
# gaps.inner = 8;
# gaps.outer = 4;
# gaps.smartGaps = true;
# gaps.smartBorders = "on";
#
# assigns = {
# "workspace number 1" = [{ app_id = "thunderbird"; }];
# "workspace number 2" = [{ app_id = "firefox"; }];
# "workspace number 3" = [{ app_id = "Element"; }];
# };
#
# window.commands = [
# { command = "floating enable"; criteria = { app_id = ".yubioath-flutter-wrapped"; }; }
# { command = "floating enable"; criteria = { app_id = "pavucontrol"; }; }
# { command = "floating enable"; criteria = { app_id = "galculator"; }; }
# { command = "floating enable"; criteria = { app_id = "com.nitrokey."; }; }
# { command = "floating enable"; criteria = { app_id = "org.keepassxc.KeePassXC."; }; }
# { command = "floating enable"; criteria = { app_id = "virt-manager"; }; }
# { command = "floating enable"; criteria = { title = "^OpenSSH Authentication"; }; }
# { command = "floating enable"; criteria = { class = "pop-up"; }; }
# ];
#
# bars = [
# { command = "${pkgs.waybar}/bin/waybar"; }
# ];
#
# defaultWorkspace = "workspace number 2";
#
# keybindings =
# let
# mod = config.wayland.windowManager.sway.config.modifier;
# alt = "Mod1";
# left = config.wayland.windowManager.sway.config.left;
# down = config.wayland.windowManager.sway.config.down;
# up = config.wayland.windowManager.sway.config.up;
# right = config.wayland.windowManager.sway.config.right;
# in
# {
# "${mod}+Escape" = "exec swaymsg exit"; # Exit Sway
# "${mod}+Return" = "exec ${terminal}"; # Open terminal
# "${mod}+d" = "exec ${menu}"; # Open menu
# "${mod}+l" = "exec ${pkgs.swaylock}/bin/swaylock"; # Lock Screen
#
# "${mod}+r" = "reload"; # Reload environment
# "${mod}+q" = "kill"; # Kill container
#
# "${mod}+Shift+f" = "exec ${pkgs.pcmanfm}/bin/pcmanfm"; # File Manager
#
#
# "${alt}+${left}" = "workspace prev_on_output"; # Navigate to previous or next workspace on output if it exists
# "${alt}+${right}" = "workspace next_on_output";
# "${alt}+Shift+${left}" = "move container to workspace prev, workspace prev"; # Move container to next available workspace and focus
# "${alt}+Shift+${right}" = "move container to workspace next, workspace next";
#
# "XF86TouchpadToggle" = "input type:touchpad events toggle enabled disabled";
# "XF86AudioPlay" = "exec playerctl play-pause";
# "XF86AudioNext" = "exec playerctl next";
# "XF86AudioPrev" = "exec playerctl previous";
# "XF86AudioStop" = "exec playerctl stop";
#
# # Sink volume raise optionally with --device
# "XF86AudioRaiseVolume" = "exec swayosd-client --output-volume raise";
# "XF86AudioLowerVolume" = "exec swayosd-client --output-volume lower";
# # Sink volume toggle mute
# "XF86AudioMute" = "exec swayosd-client --output-volume mute-toggle";
# # Source volume toggle mute
# "XF86AudioMicMute" = "exec swayosd-client --input-volume mute-toggle";
#
# # Capslock (If you don't want to use the backend)
# #bindsym --release Caps_Lock exec swayosd-client --caps-lock;
#
# # Brightness raise
# "XF86MonBrightnessUp" = "exec swayosd-client --brightness raise";
# # Brightness lower
# "XF86MonBrightnessDown" = "exec swayosd-client --brightness lower";
#
#
# "${mod}+${left}" = "focus left";
# "${mod}+${down}" = "focus down";
# "${mod}+${up}" = "focus up";
# "${mod}+${right}" = "focus right";
#
# "${mod}+Shift+${left}" = "move left";
# "${mod}+Shift+${down}" = "move down";
# "${mod}+Shift+${up}" = "move up";
# "${mod}+Shift+${right}" = "move right";
#
# "${mod}+${alt}+${left}" = "resize grow width 10px";
# "${mod}+${alt}+${down}" = "resize shrink height 10px";
# "${mod}+${alt}+${up}" = "resize grow height 10px";
# "${mod}+${alt}+${right}" = "resize shrink width 10px";
#
# "${mod}+1" = "workspace number 1";
# "${mod}+2" = "workspace number 2";
# "${mod}+3" = "workspace number 3";
# "${mod}+4" = "workspace number 4";
# "${mod}+5" = "workspace number 5";
# "${mod}+6" = "workspace number 6";
# "${mod}+7" = "workspace number 7";
# "${mod}+8" = "workspace number 8";
# "${mod}+9" = "workspace number 9";
# "${mod}+0" = "workspace number 10";
#
# "${mod}+Shift+1" = "move container to workspace number 1";
# "${mod}+Shift+2" = "move container to workspace number 2";
# "${mod}+Shift+3" = "move container to workspace number 3";
# "${mod}+Shift+4" = "move container to workspace number 4";
# "${mod}+Shift+5" = "move container to workspace number 5";
# "${mod}+Shift+6" = "move container to workspace number 6";
# "${mod}+Shift+7" = "move container to workspace number 7";
# "${mod}+Shift+8" = "move container to workspace number 8";
# "${mod}+Shift+9" = "move container to workspace number 9";
# "${mod}+Shift+0" = "move container to workspace number 10";
#
# "${mod}+Tab" = "workspace next";
# "${mod}+Alt+Tab" = "workspace prev";
#
# "${mod}+k" = "splith";
# "${mod}+v" = "splitv";
#
# "${mod}+b" = "layout stacking";
# "${mod}+w" = "layout tabbed";
# "${mod}+p" = "layout toggle split";
#
# "${mod}+f" = "fullscreen";
# "${mod}+Shift+space" = "floating toggle";
# "${mod}+h" = "focus mode_toggle";
# "${mod}+a" = "focus parent";
#
# "${mod}+Shift+minus" = "move scratchpad";
# "${mod}+minus" = "scratchpad show";
# };
# };
# systemd.enable = true;
# wrapperFeatures.gtk = true;
# extraSessionCommands = ''
# export MOZ_ENABLE_WAYLAND="1";
# export MOZ_WEBRENDER="1";
# export MOZ_USE_XINPUT2="2";
# export MOZ_DBUS_REMOTE="1";
# export WLR_RENDERER="vulkan";
# export LIBVA_DRIVER_NAME="iHD";
# export VDPAU_DRIVER="iHD";
# export XDG_SESSION_TYPE="wayland";
# export ANV_DEBUG=video-decode,video-encode
# export XDG_CURRENT_DESKTOP="sway";
# #export QT_QPA_PLATFORMTHEME="wayland-egl";
# export QT_QPA_PLATFORMTHEME="qt6ct";
# export GST_VAAPI_ALL_DRIVERS="1";
# export GTK_THEME="Arc";
# export _JAVA_AWT_WM_NONREPARENTING="1";
# #export LIBCL_ALWAYS_SOFTWARE="1"; # For applications in VM like alacritty to work
# #export WLR_NO_HARDWARE_CURSORS="1"; # For cursor in VM
# '';
#
# extraConfig = ''
# set $output-primary DP-5
# #set $output-secondary eDP-1
# set $output-secondary DP-6
#
# workspace 1 output $output-secondary
# workspace 2 output $output-primary
# workspace 3 output $output-secondary
# '';
# };
programs = {
niriswitcher = {
enable = true;
# settings = ''
# '';
};
swaylock = {
enable = true;
settings = {
color = "000000";
image = "$HOME/.config/lockwall";
indicator-caps-lock = true;
show-keyboard-layout = true;
};
};
# rofi = {
# enable = true;
# extraConfig = {
# modi = "window,drun,ssh";
# kb-primary-paste = "Control+V,Shift+Insert";
# kb-secondary-paste = "Control+v,Insert";
# };
# font = "Cascadia Code";
# location = "top-left";
# plugins = [
# pkgs.rofi-calc
# pkgs.rofi-bluetooth
# pkgs.pinentry-rofi
# ];
# terminal = "${pkgs.alacritty}/bin/alacritty";
# theme = "arthur";
# };
};
services = {
swayidle = {
enable = true;
events = [
{ event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock"; }
{ event = "lock"; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
# { event = "after-resume"; command = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; }
# { event = "unlock"; command = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; }
];
timeouts = [
{ timeout = 300; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
# { timeout = 600; command = "${pkgs.sway}/bin/swaymsg 'output * dpms off'"; resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; }
];
};
swayosd.enable = true;
};
# qt = {
# enable = true;
# style.package = [
# pkgs.dracula-theme
# pkgs.dracula-icon-theme
# pkgs.catppuccin-kvantum
# pkgs.catppuccin-kde
# pkgs.catppuccin-gtk
# pkgs.qt6Packages.qtstyleplugin-kvantum
# ];
# style.name = "kvantum";
# platformTheme.name = "qtct";
# };
# xdg.configFile = {
# "Kvantum/Catppuccin".source = "${pkgs.catppuccin-kvantum}/share/Kvantum/Catppuccin-Frappe-Blue";
# "Kvantum/kvantum.kvconfig".text = "[General]\ntheme=Catppuccin-Frappe-Blue";
# };
}