From c1f4c25cb6ebb53ab60073e4ae7413a3c8dabe49 Mon Sep 17 00:00:00 2001 From: Kabbone Date: Tue, 23 Dec 2025 14:29:54 +0100 Subject: [PATCH] lifebook: move to niri disable ssh agent in desktop config --- hosts/configuration_desktop.nix | 9 - hosts/lifebook/default.nix | 3 +- hosts/lifebook/home.nix | 2 +- modules/wm/niri/default.nix | 78 ++++++++ modules/wm/niri/home.nix | 344 ++++++++++++++++++++++++++++++++ 5 files changed, 424 insertions(+), 12 deletions(-) create mode 100644 modules/wm/niri/default.nix create mode 100644 modules/wm/niri/home.nix diff --git a/hosts/configuration_desktop.nix b/hosts/configuration_desktop.nix index 287121c..cc3952c 100644 --- a/hosts/configuration_desktop.nix +++ b/hosts/configuration_desktop.nix @@ -161,18 +161,9 @@ programs = { # No xbacklight, this is the alterantive zsh.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 settings ={ auto-optimise-store = true; # Optimise syslinks diff --git a/hosts/lifebook/default.nix b/hosts/lifebook/default.nix index 35d72a1..49572fe 100644 --- a/hosts/lifebook/default.nix +++ b/hosts/lifebook/default.nix @@ -22,8 +22,7 @@ { imports = # For now, if applying to other system, swap files [(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix - #[(import ../../modules/wm/hyprland/default.nix)] ++ # Window Manager - [(import ../../modules/wm/sway/default.nix)] ++ # Window Manager + [(import ../../modules/wm/niri/default.nix)] ++ # Window Manager [(import ../../modules/wm/virtualisation/docker.nix)] ++ # Docker [(import ../../modules/wm/virtualisation/kvm-intel.nix)] ++ # kvm module options (import ../../modules/hardware); # Hardware devices diff --git a/hosts/lifebook/home.nix b/hosts/lifebook/home.nix index 42e91c9..6d3e2e3 100644 --- a/hosts/lifebook/home.nix +++ b/hosts/lifebook/home.nix @@ -17,7 +17,7 @@ imports = [ #../../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 ]; diff --git a/modules/wm/niri/default.nix b/modules/wm/niri/default.nix new file mode 100644 index 0000000..49a7c1b --- /dev/null +++ b/modules/wm/niri/default.nix @@ -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 = {}; + +} diff --git a/modules/wm/niri/home.nix b/modules/wm/niri/home.nix new file mode 100644 index 0000000..a73dfd2 --- /dev/null +++ b/modules/wm/niri/home.nix @@ -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"; +# }; + +}