diff --git a/modules/home-manager/desktop/awesome/awesomewm.nix b/modules/home-manager/desktop/awesome/awesomewm.nix index 8e371c8..e232a6d 100644 --- a/modules/home-manager/desktop/awesome/awesomewm.nix +++ b/modules/home-manager/desktop/awesome/awesomewm.nix @@ -24,8 +24,9 @@ lib.mkIf config.desktop.awesome.enable { }; }; + services.gnome-keyring.enable = true; + xsession = { - enable = true; windowManager.awesome = { enable = true; luaModules = with pkgs.luaPackages; [ diff --git a/modules/home-manager/desktop/darkman/default.nix b/modules/home-manager/desktop/darkman/default.nix new file mode 100644 index 0000000..770685a --- /dev/null +++ b/modules/home-manager/desktop/darkman/default.nix @@ -0,0 +1,18 @@ +{ + lib, + config, + ... +}: { + config = lib.mkIf config.desktop.enable { + services.darkman = { + enable = true; + settings = { + lat = 50.81; + lng = 7.03; + usegeoclue = true; + dbusserver = true; + portal = true; + }; + }; + }; +} diff --git a/modules/home-manager/desktop/default.nix b/modules/home-manager/desktop/default.nix index 9a5154b..3e0f1d7 100644 --- a/modules/home-manager/desktop/default.nix +++ b/modules/home-manager/desktop/default.nix @@ -1,4 +1,5 @@ { + pkgs, lib, config, nix-colors, @@ -42,6 +43,9 @@ ./rofi ./network-manager-applet ./alacritty + ./xserver + ./darkman + ./thunar ]; config = lib.mkIf config.desktop.enable { desktop.awesome.enable = lib.mkDefault true; @@ -52,11 +56,45 @@ }; services = { nextcloud-client.enable = lib.mkDefault true; - udiskie.enable = lib.mkDefault true; + udiskie = { + settings = { + enable = lib.mkDefault true; + program_options = { + udisks_version = 2; + tray = true; + }; + }; + }; picom.enable = lib.mkDefault true; }; fonts.fontconfig.enable = true; colorScheme = nix-colors.colorSchemes.catppuccin-mocha; desktop.network-manager.enable = lib.mkDefault true; + xdg = { + enable = lib.mkDefault true; + portal = { + enable = lib.mkDefault true; + config = { + common = { + default = [ + "gtk" + ]; + }; + awesome = { + default = [ + "pantheon" + "gtk" + ]; + "org.freedesktop.impl.portal.Secret" = [ + "gnome-keyring" + ]; + }; + }; + extraPortals = with pkgs; [ + xdg-desktop-portal-gtk + ]; + }; + userDirs.enable = true; + }; }; } diff --git a/modules/home-manager/desktop/thunar/default.nix b/modules/home-manager/desktop/thunar/default.nix new file mode 100644 index 0000000..bd556d9 --- /dev/null +++ b/modules/home-manager/desktop/thunar/default.nix @@ -0,0 +1,10 @@ +{ + pkgs, + config, + lib, + ... +}: +with lib; + mkIf config.desktop.enable { + home.packages = with pkgs; [xfce.thunar]; + } diff --git a/modules/home-manager/desktop/xserver/default.nix b/modules/home-manager/desktop/xserver/default.nix new file mode 100644 index 0000000..783ec4f --- /dev/null +++ b/modules/home-manager/desktop/xserver/default.nix @@ -0,0 +1,8 @@ +_: { + imports = [ + ./xresources.nix + ./xsession.nix + ]; + +} + diff --git a/modules/home-manager/desktop/xserver/xresources.nix b/modules/home-manager/desktop/xserver/xresources.nix new file mode 100644 index 0000000..7d8d4a3 --- /dev/null +++ b/modules/home-manager/desktop/xserver/xresources.nix @@ -0,0 +1,40 @@ +_: { + xresources.properties = { + "*background" = "#1E1E2E"; + "*foreground" = "#CDD6F4"; + "*cursorColor" = "#F5E0DC"; + "*color0" = "#45475A"; + "*color8" = "#585B70"; + "*color1" = "#F38BA8"; + "*color9" = "#F38BA8"; + "*color2" = "#A6E3A1"; + "*color10" = "#A6E3A1"; + "*color3" = "#F9E2AF"; + "*color11" = "#F9E2AF"; + "*color4" = "#89B4FA"; + "*color12" = "#89B4FA"; + "*color5" = "#F5C2E7"; + "*color13" = "#F5C2E7"; + "*color6" = "#94E2D5"; + "*color14" = "#94E2D5"; + "*color7" = "#BAC2DE"; + "*color15" = "#A6ADC8"; + "URxvt.letterSpace" = "-1"; + "URxvt.lineSpace" = "0"; + "URxvt.saveline" = "10480"; + "URxvt.scrollBar" = "false"; + "URxvt.urgentOnBell" = "true"; + "URxvt.font" = "xft:FiraCode Nerd Font Mono:size=9"; + "URxvt.fontBold" = "xft:FiraCode Nerd Font Mono:bold:size=9"; + "URxvt.depth" = "32"; + "URxvt.background" = "[95]#1E1E2E"; + "Xft.autohint" = "0"; + "Xft.lcdfilter" = "lcddefault"; + "Xft.hintstyle" = "hintslight"; + "Xft.hinting" = "1"; + "Xft.antialias" = "1"; + "Xft.rgba" = "rgb"; + "XTerm*faceName" = "FiraCode Nerd Font Mono:bold:size=9"; + }; +} + diff --git a/modules/home-manager/desktop/xserver/xsession.nix b/modules/home-manager/desktop/xserver/xsession.nix new file mode 100644 index 0000000..7543216 --- /dev/null +++ b/modules/home-manager/desktop/xserver/xsession.nix @@ -0,0 +1,15 @@ +{ + pkgs, + config, + lib, + ... +}: +lib.mkIf config.desktop.enable { + xsession = { + enable = true; + profileExtra = '' + ${pkgs.mate.mate-polkit}/usr/lib/mate-polkit/polkit-mate-authentication-agent-1 & + ${pkgs.darkman}/bin/darkman set dark + ''; + }; +} diff --git a/modules/nixos/base/default.nix b/modules/nixos/base/default.nix index 6558fa8..6e088ae 100644 --- a/modules/nixos/base/default.nix +++ b/modules/nixos/base/default.nix @@ -15,5 +15,6 @@ hardware.enableRedistributableFirmware = lib.mkDefault true; services.openssh.enable = lib.mkDefault true; boot.loader.systemd-boot.enable = lib.mkDefault true; + services.udisks2.enable = lib.mkDefault true; }; } diff --git a/modules/nixos/base/user/default.nix b/modules/nixos/base/user/default.nix index 75a8ad7..54397df 100644 --- a/modules/nixos/base/user/default.nix +++ b/modules/nixos/base/user/default.nix @@ -1,39 +1,48 @@ -{ config, lib, pkgs, vars, ... }: -let +{ + config, + lib, + pkgs, + vars, + ... +}: let inherit (vars) username name locale hostname sshKeys; baseGroups = [ "users" "wheel" + "audio" + "video" + "disk" + "power" + "adm" + "plugdev" ]; rpiGroups = - if config.hardware.raspberry-pi.enable then [ - "audio" - "video" - "plugdev" - "adm" - "disk" + if config.hardware.raspberry-pi.enable + then [ "i2c" "spi" - "power" - ] else [ ]; + ] + else []; extraGroups = baseGroups ++ rpiGroups; - basePackages = with pkgs; [ home-manager ]; + basePackages = with pkgs; [home-manager]; wslPackages = - if config.wsl.enable then with pkgs; [ - wslu - wsl-open - ] else [ ]; + if config.wsl.enable + then + with pkgs; [ + wslu + wsl-open + ] + else []; packages = basePackages ++ wslPackages; -in -{ +in { options = { hardware.raspberry-pi.enable = lib.mkEnableOption "raspberry pi features"; }; config = { users = { - groups.${username} = { }; + groups.${username} = {}; users = { ${username} = { inherit packages extraGroups; @@ -50,4 +59,3 @@ in }; }; } - diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix index bc04b50..d797774 100644 --- a/modules/nixos/desktop/default.nix +++ b/modules/nixos/desktop/default.nix @@ -14,5 +14,7 @@ programs.dconf.enable = lib.mkDefault true; hardware.opengl.enable = lib.mkDefault true; desktop.enable = lib.mkDefault true; + security.polkit.enable = lib.mkDefault true; + services.upower.enable = lib.mkDefault true; }; } diff --git a/modules/nixos/desktop/xorg/default.nix b/modules/nixos/desktop/xorg/default.nix index 19ce1c5..8847165 100644 --- a/modules/nixos/desktop/xorg/default.nix +++ b/modules/nixos/desktop/xorg/default.nix @@ -21,6 +21,7 @@ }; xserver = { enable = true; + updateDbusEnvironment = true; windowManager.awesome = { enable = true; luaModules = with pkgs.luaPackages; [