From afedfcf1875187bbb5dec8931e31afb2586d660b Mon Sep 17 00:00:00 2001 From: Noah Masur <7386960+nmasur@users.noreply.github.com> Date: Sat, 1 Apr 2023 09:41:45 -0400 Subject: [PATCH] i3 focus or run browser and mail --- modules/common/applications/firefox.nix | 18 ++++++++++++++++++ modules/common/mail/aerc.nix | 12 +++++++++++- modules/nixos/graphical/i3.nix | 6 +++++- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/modules/common/applications/firefox.nix b/modules/common/applications/firefox.nix index 4b809c0..f2a9d65 100644 --- a/modules/common/applications/firefox.nix +++ b/modules/common/applications/firefox.nix @@ -157,6 +157,24 @@ }; }; + + xsession.windowManager.i3.config.keybindings = + lib.mkIf pkgs.stdenv.isLinux { + "${ + config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier + }+Shift+b" = "exec ${ + # Don't name the script `firefox` or it will affect grep + builtins.toString (pkgs.writeShellScript "focus-ff.sh" '' + count=$(ps aux | grep -c firefox) + if [ "$count" -eq 1 ]; then + i3-msg "exec --no-startup-id firefox" + sleep 0.5 + fi + i3-msg "[class=firefox] focus" + '') + }"; + }; + }; }; diff --git a/modules/common/mail/aerc.nix b/modules/common/mail/aerc.nix index bfd0241..913cc21 100644 --- a/modules/common/mail/aerc.nix +++ b/modules/common/mail/aerc.nix @@ -191,7 +191,17 @@ lib.mkIf pkgs.stdenv.isLinux { "${ config.home-manager.users.${config.user}.xsession.windowManager.i3.config.modifier - }+Shift+e" = "exec --no-startup-id kitty aerc"; + }+Shift+e" = "exec ${ + # Don't name the script `aerc` or it will affect grep + builtins.toString (pkgs.writeShellScript "focus-mail.sh" '' + count=$(ps aux | grep -c aerc) + if [ "$count" -eq 1 ]; then + i3-msg "exec --no-startup-id kitty --class aerc aerc" + sleep 0.25 + fi + i3-msg "[class=aerc] focus" + '') + }"; }; programs.fish.shellAbbrs = { ae = "aerc"; }; diff --git a/modules/nixos/graphical/i3.nix b/modules/nixos/graphical/i3.nix index 6874ba5..f81379e 100644 --- a/modules/nixos/graphical/i3.nix +++ b/modules/nixos/graphical/i3.nix @@ -39,7 +39,11 @@ in { modifier = modifier; assigns = { "${ws1}" = [{ class = "Firefox"; }]; - "${ws2}" = [{ class = "kitty"; }]; + "${ws2}" = [ + { class = "kitty"; } + { class = "aerc"; } + { class = "obsidian"; } + ]; "${ws3}" = [{ class = "discord"; }]; "${ws4}" = [{ class = "Steam"; }]; };