From 3213d23a023de402b1f66c896c4be7972b0de02b Mon Sep 17 00:00:00 2001 From: Patrick Neff Date: Mon, 15 Apr 2024 16:07:59 +0200 Subject: [PATCH] xsession and file manager updates --- .../home-manager/desktop/awesome/default.nix | 8 +- modules/home-manager/desktop/default.nix | 12 ++- .../home-manager/desktop/pcmanfm/default.nix | 16 ++++ .../home-manager/desktop/thunar/default.nix | 10 ++- .../home-manager/desktop/xserver/default.nix | 8 +- .../desktop/xserver/xresources.nix | 87 ++++++++++--------- .../home-manager/desktop/xserver/xsession.nix | 2 +- .../mediacenter/kodi/advancedsettings.nix | 78 +++++++++++++++++ .../home-manager/mediacenter/kodi/default.nix | 23 ++--- .../home-manager/shell/borgmatic/default.nix | 3 +- modules/nixos/desktop/default.nix | 7 +- profiles/home-manager/odie@asgard/home.nix | 5 +- 12 files changed, 192 insertions(+), 67 deletions(-) create mode 100644 modules/home-manager/desktop/pcmanfm/default.nix create mode 100644 modules/home-manager/mediacenter/kodi/advancedsettings.nix diff --git a/modules/home-manager/desktop/awesome/default.nix b/modules/home-manager/desktop/awesome/default.nix index a534625..ce08dc8 100644 --- a/modules/home-manager/desktop/awesome/default.nix +++ b/modules/home-manager/desktop/awesome/default.nix @@ -1,4 +1,8 @@ -{ lib, ... }: { +{ + lib, + config, + ... +}: { options = { desktop = { awesome = { @@ -18,5 +22,5 @@ }; }; }; - imports = [ ./awesomewm.nix ]; + imports = [./awesomewm.nix ../xserver]; } diff --git a/modules/home-manager/desktop/default.nix b/modules/home-manager/desktop/default.nix index 3e0f1d7..3f80885 100644 --- a/modules/home-manager/desktop/default.nix +++ b/modules/home-manager/desktop/default.nix @@ -16,7 +16,7 @@ fileManager = lib.mkOption { type = lib.types.str; description = "the default file_manager to use"; - default = "thunar"; + default = "pcmanfm"; }; browser = lib.mkOption { type = lib.types.str; @@ -43,12 +43,17 @@ ./rofi ./network-manager-applet ./alacritty - ./xserver ./darkman + ./pcmanfm ./thunar ]; config = lib.mkIf config.desktop.enable { - desktop.awesome.enable = lib.mkDefault true; + desktop = { + xserver.enable = lib.mkDefault true; + awesome.enable = lib.mkDefault true; + pcmanfm.enable = lib.mkDefault true; + network-manager.enable = lib.mkDefault true; + }; programs = { keepassxc.enable = lib.mkDefault true; firefox.enable = lib.mkDefault true; @@ -69,7 +74,6 @@ }; fonts.fontconfig.enable = true; colorScheme = nix-colors.colorSchemes.catppuccin-mocha; - desktop.network-manager.enable = lib.mkDefault true; xdg = { enable = lib.mkDefault true; portal = { diff --git a/modules/home-manager/desktop/pcmanfm/default.nix b/modules/home-manager/desktop/pcmanfm/default.nix new file mode 100644 index 0000000..e6a4584 --- /dev/null +++ b/modules/home-manager/desktop/pcmanfm/default.nix @@ -0,0 +1,16 @@ +{ + pkgs, + lib, + config, + ... +}: let + cfg = config.desktop.pcmanfm; +in + with lib; { + options = { + desktop.pcmanfm.enable = mkEnableOption "pcmanfm"; + }; + config = mkIf cfg.enable { + home.packages = with pkgs; [pcmanfm]; + }; + } diff --git a/modules/home-manager/desktop/thunar/default.nix b/modules/home-manager/desktop/thunar/default.nix index bd556d9..951dfc1 100644 --- a/modules/home-manager/desktop/thunar/default.nix +++ b/modules/home-manager/desktop/thunar/default.nix @@ -4,7 +4,11 @@ lib, ... }: -with lib; - mkIf config.desktop.enable { +with lib; { + options = { + desktop.thunar.enable = mkEnableOption "Thunar"; + }; + config = mkIf config.desktop.thunar.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 index 783ec4f..393c7a5 100644 --- a/modules/home-manager/desktop/xserver/default.nix +++ b/modules/home-manager/desktop/xserver/default.nix @@ -1,8 +1,10 @@ -_: { +{lib, ...}: +with lib; { imports = [ ./xresources.nix ./xsession.nix ]; - + options = { + desktop.xserver.enable = mkEnableOption "xserver"; + }; } - diff --git a/modules/home-manager/desktop/xserver/xresources.nix b/modules/home-manager/desktop/xserver/xresources.nix index 7d8d4a3..832787e 100644 --- a/modules/home-manager/desktop/xserver/xresources.nix +++ b/modules/home-manager/desktop/xserver/xresources.nix @@ -1,40 +1,47 @@ -_: { - 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"; - }; -} - +{ + config, + lib, + ... +}: let + cfg = config.desktop.xserver; +in + with lib; + mkIf cfg.enable { + 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 index 7543216..29e024c 100644 --- a/modules/home-manager/desktop/xserver/xsession.nix +++ b/modules/home-manager/desktop/xserver/xsession.nix @@ -4,7 +4,7 @@ lib, ... }: -lib.mkIf config.desktop.enable { +lib.mkIf config.desktop.xserver.enable { xsession = { enable = true; profileExtra = '' diff --git a/modules/home-manager/mediacenter/kodi/advancedsettings.nix b/modules/home-manager/mediacenter/kodi/advancedsettings.nix new file mode 100644 index 0000000..25d3ce2 --- /dev/null +++ b/modules/home-manager/mediacenter/kodi/advancedsettings.nix @@ -0,0 +1,78 @@ +{vars,...}: let +inherit (vars) timeZone hostName domain; +datadirs = "smb://svartalbenheim.odie.intranet/kodi/userdata"; + mysql = { + port = 3306; + user = "kodi"; + pass = "kodi"; + }; +in { + advancedsettings = { + addons = { + unknownsourcecs = true; + }; + services = { + devicename = "${hostName}.${domain}"; + webserver = true; + webserverauthentication = false; + webserverusername = "kodi"; + webserverpassword = "kodi"; + webserverport = 8000; + webserverssl = false; + zeroconf = true; + wsdiscovery = true; + upnp = true; + upnpserver = true; + airplay = true; + airplayvideosupport = true; + }; + locale = { + language = "resource.language.de_de"; + country = "Deutschland"; + timezone = timeZone; + }; + lookandfeed = { + enablerssfeeds = false; + }; + videodatabase = { + type = "mysql"; + inherit (mysql) user pass port; + }; + musicdatabase = { + type = "mysql"; + inherit (mysql) user pass port; + }; + videolibrary = { + importwatchedstate = true; + importresumepoint = true; + }; + pathsubstitution = { + substitute = [ + { + from = "special://profile/playlists/"; + to = "${datadirs}/playlists/"; + } + { + from = "special://profile/sources.xml"; + to = "${datadirs}/sources.xml"; + } + { + from = "special://profile/mediasources.xml"; + to = "${datadirs}/mediasources.xml"; + } + { + from = "special://profile/RssFeeds.xml"; + to = "${datadirs}/RssFeeds.xml"; + } + { + from = "special://profile/favourites.xml"; + to = "${datadirs}/favourites.xml"; + } + { + from = "special://profile/passwords.xml"; + to = "${datadirs}/passwords.xml"; + } + ]; + }; + }; +} diff --git a/modules/home-manager/mediacenter/kodi/default.nix b/modules/home-manager/mediacenter/kodi/default.nix index bc68ae9..858c039 100644 --- a/modules/home-manager/mediacenter/kodi/default.nix +++ b/modules/home-manager/mediacenter/kodi/default.nix @@ -1,20 +1,23 @@ { + vars, pkgs, config, lib, ... }: let cfg = config.mediacenter.kodi; -in with lib; { - options = { - mediacenter.kodi = { - enable = mkEnableOption "kodi"; +in + with lib; { + options = { + mediacenter.kodi = { + enable = mkEnableOption "kodi"; }; }; - config = mkIf cfg.enable { - programs.kodi = { - enable = true; - package = pkgs.kodi-standalone; + config = mkIf cfg.enable { + programs.kodi = { + enable = true; + package = pkgs.kodi-standalone; + settings = import ./advancedsettings.nix {inherit vars;}; + }; }; - }; -} + } diff --git a/modules/home-manager/shell/borgmatic/default.nix b/modules/home-manager/shell/borgmatic/default.nix index 095d1c0..a1d0ce2 100644 --- a/modules/home-manager/shell/borgmatic/default.nix +++ b/modules/home-manager/shell/borgmatic/default.nix @@ -1,6 +1,7 @@ { lib, config, + vars, ... }: let @@ -13,7 +14,7 @@ lib.mkIf config.services.borgmatic.enable { home = { location = { patterns = [ - "R /home/odie" + "R /home/${vars.username}" ] ++ commonExcludes; repositories = [ { diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix index d797774..e0547f6 100644 --- a/modules/nixos/desktop/default.nix +++ b/modules/nixos/desktop/default.nix @@ -1,4 +1,4 @@ -{ lib, ... }: { +{lib, ...}: { imports = [ ./fonts ./sound @@ -15,6 +15,9 @@ hardware.opengl.enable = lib.mkDefault true; desktop.enable = lib.mkDefault true; security.polkit.enable = lib.mkDefault true; - services.upower.enable = lib.mkDefault true; + services = { + upower.enable = lib.mkDefault true; + gvfs.enable = lib.mkDefault true; + }; }; } diff --git a/profiles/home-manager/odie@asgard/home.nix b/profiles/home-manager/odie@asgard/home.nix index ff200a4..d688fbd 100644 --- a/profiles/home-manager/odie@asgard/home.nix +++ b/profiles/home-manager/odie@asgard/home.nix @@ -18,6 +18,10 @@ awesome = { enable = false; }; + network-manager.enable = false; + xserver.enable = false; + pcmanfm.enable = false; + thunar.enable = false; }; programs = { firefox.enable = false; @@ -33,7 +37,6 @@ home.packages = with pkgs; [ nix-serve ]; - desktop.network-manager.enable = false; } ]; }