diff --git a/flake.lock b/flake.lock index 238ba1a..1b57783 100644 --- a/flake.lock +++ b/flake.lock @@ -348,7 +348,8 @@ "nixpkgs-stable": "nixpkgs-stable", "nixvim": "nixvim", "sops-nix": "sops-nix", - "treefmt-nix": "treefmt-nix" + "treefmt-nix": "treefmt-nix", + "zen-browser": "zen-browser" } }, "sops-nix": { @@ -433,6 +434,26 @@ "type": "git", "url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix" } + }, + "zen-browser": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1725083647, + "narHash": "sha256-s41/HUqqjK2sQKADmZEnrlBEdfDY5yPYymwdN9nTlDo=", + "owner": "MarceColl", + "repo": "zen-browser-flake", + "rev": "06af05acbaf5fa72b54f8c6f109b1ed153d095af", + "type": "github" + }, + "original": { + "owner": "MarceColl", + "repo": "zen-browser-flake", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index b60c621..fe388b6 100644 --- a/flake.nix +++ b/flake.nix @@ -109,6 +109,11 @@ utils.follows = "flake-utils"; }; }; + + zen-browser = { + url = "github:MarceColl/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = diff --git a/home-modules/default.nix b/home-modules/default.nix index 5792a8f..bccea2f 100644 --- a/home-modules/default.nix +++ b/home-modules/default.nix @@ -28,6 +28,7 @@ rec { xresources = import ./xresources.nix; yazi = import ./yazi.nix; zathura = import ./zathura.nix; + zen = import ./zen.nix; zsh = import ./zsh.nix; default-modules = [ @@ -58,6 +59,7 @@ rec { xresources yazi zathura + zen zsh ]; } diff --git a/home-modules/xdg.nix b/home-modules/xdg.nix index 61c4bef..a55c246 100644 --- a/home-modules/xdg.nix +++ b/home-modules/xdg.nix @@ -1,4 +1,10 @@ -{ user, pkgs, ... }: +{ + user, + lib, + pkgs, + config, + ... +}: { xdg = { enable = true; @@ -29,13 +35,16 @@ }; }; + # https://discourse.nixos.org/t/home-manager-and-the-mimeapps-list-file-on-plasma-kde-desktops/37694/7 + configFile."mimeapps.list" = lib.mkIf config.xdg.mimeApps.enable { force = true; }; + mimeApps = let associations = let file-manager = "pcmanfm.desktop"; editor = "nvim.desktop"; - browser = "firefox.desktop"; + browser = "userapp-Zen Browser-0SM9S2.desktop"; video-player = "mpv.desktop"; image-viewer = "imv-dir.desktop"; in @@ -72,4 +81,11 @@ associations.added = associations; }; }; + + # Programs to launch from xmonad shortcuts + home.sessionVariables = { + FM = "yazi"; + FMGUI = "pcmanfm"; + BROWSER = "zen"; + }; } diff --git a/home-modules/xmonad/xmonad.hs b/home-modules/xmonad/xmonad.hs index 7016abe..9dddfe7 100644 --- a/home-modules/xmonad/xmonad.hs +++ b/home-modules/xmonad/xmonad.hs @@ -64,7 +64,7 @@ keybinds conf@(XConfig {XMonad.modMask = mod, XMonad.terminal = term}) = -- lock screen (mod, xK_l) ~> spawn "physlock -d", -- launch browser - (mod, xK_w) ~> spawn "firefox", + (mod, xK_w) ~> spawn "$BROWSER", -- Color picker (mod, xK_c) ~> spawn "color", -- rofi menus @@ -73,8 +73,8 @@ keybinds conf@(XConfig {XMonad.modMask = mod, XMonad.terminal = term}) = (mod, xK_e) ~> spawn "rofi -show emoji", (mod, xK_b) ~> spawn "rofi-bluetooth", -- launch file manager - (mod, xK_r) ~> spawn (term ++ " -e yazi"), - (mod .|. shiftMask, xK_r) ~> spawn "pcmanfm", + (mod, xK_r) ~> spawn (term ++ " -e $FM"), + (mod .|. shiftMask, xK_r) ~> spawn "$FMGUI", -- Media keys (0, xF86XK_AudioPlay) ~> spawn "playerctl play-pause", (0, xF86XK_AudioPrev) ~> spawn "playerctl previous", diff --git a/home-modules/zen.nix b/home-modules/zen.nix new file mode 100644 index 0000000..ade32d4 --- /dev/null +++ b/home-modules/zen.nix @@ -0,0 +1,4 @@ +{ inputs, pkgs, ... }: +{ + home.packages = [ inputs.zen-browser.packages."${pkgs.system}".specific ]; +} diff --git a/modules/home.nix b/modules/home.nix index 88d7109..2fd3972 100644 --- a/modules/home.nix +++ b/modules/home.nix @@ -7,6 +7,12 @@ { imports = [ inputs.home-manager.nixosModules.home-manager ]; + environment.extraInit = + let + homeManagerSessionVars = "/etc/profiles/per-user/$USER/etc/profile.d/hm-session-vars.sh"; + in + "[[ -f ${homeManagerSessionVars} ]] && source ${homeManagerSessionVars}"; + home-manager = { extraSpecialArgs = { inherit user inputs;