refactor
This commit is contained in:
parent
66c05f9093
commit
44067d35ff
205 changed files with 9037 additions and 338 deletions
|
@ -0,0 +1,23 @@
|
|||
{ options, config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
with lib.plusultra;
|
||||
let
|
||||
cfg = config.plusultra.desktop.addons.firefox-nordic-theme;
|
||||
profileDir = ".mozilla/firefox/${config.plusultra.user.name}";
|
||||
in
|
||||
{
|
||||
options.plusultra.desktop.addons.firefox-nordic-theme = with types; {
|
||||
enable = mkBoolOpt false "Whether to enable the Nordic theme for firefox.";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
plusultra.apps.firefox = {
|
||||
extraConfig = builtins.readFile
|
||||
"${pkgs.plusultra.firefox-nordic-theme}/configuration/user.js";
|
||||
userChrome = ''
|
||||
@import "${pkgs.plusultra.firefox-nordic-theme}/userChrome.css";
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
109
modules/darwin/desktop/addons/skhd/default.nix
Normal file
109
modules/darwin/desktop/addons/skhd/default.nix
Normal file
|
@ -0,0 +1,109 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
|
||||
with lib;
|
||||
with lib.plusultra;
|
||||
let
|
||||
cfg = config.plusultra.desktop.addons.skhd;
|
||||
|
||||
mkScript = name: file: pkgs.writeShellApplication {
|
||||
inherit name;
|
||||
checkPhase = "";
|
||||
text = builtins.readFile file;
|
||||
};
|
||||
|
||||
open-iterm2 = mkScript "open-iterm2" ./scripts/open-iterm2.sh;
|
||||
in
|
||||
{
|
||||
options.plusultra.desktop.addons.skhd = {
|
||||
enable = mkEnableOption "skhd";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.skhd = {
|
||||
enable = true;
|
||||
|
||||
skhdConfig = ''
|
||||
# Movement
|
||||
shift + cmd - h : yabai -m window --focus west
|
||||
shift + cmd - j : yabai -m window --focus south
|
||||
shift + cmd - k : yabai -m window --focus north
|
||||
shift + cmd - l : yabai -m window --focus east
|
||||
|
||||
# Window Movement
|
||||
lctrl + shift + cmd - h : yabai -m window --swap west
|
||||
lctrl + shift + cmd - j : yabai -m window --swap south
|
||||
lctrl + shift + cmd - k : yabai -m window --swap north
|
||||
lctrl + shift + cmd - l : yabai -m window --swap east
|
||||
|
||||
# Window Resize
|
||||
lctrl + cmd - h : yabai -m window --resize left:-50:0; \
|
||||
yabai -m window --resize right:-50:0
|
||||
lctrl + cmd - j : yabai -m window --resize bottom:0:50; \
|
||||
yabai -m window --resize top:0:50
|
||||
lctrl + cmd - k : yabai -m window --resize top:0:-50; \
|
||||
yabai -m window --resize bottom:0:-50
|
||||
lctrl + cmd - l : yabai -m window --resize right:50:0; \
|
||||
yabai -m window --resize left:50:0
|
||||
|
||||
lctrl + alt - h : yabai -m window --resize left:-10:0; \
|
||||
yabai -m window --resize right:-10:0
|
||||
lctrl + alt - j : yabai -m window --resize bottom:0:10; \
|
||||
yabai -m window --resize top:0:10
|
||||
lctrl + alt - k : yabai -m window --resize top:0:-10; \
|
||||
yabai -m window --resize bottom:0:-10
|
||||
lctrl + alt - l : yabai -m window --resize right:10:0; \
|
||||
yabai -m window --resize left:10:0
|
||||
|
||||
lctrl + cmd - e : yabai -m space --balance
|
||||
|
||||
# Move Window To Space
|
||||
lctrl + shift + cmd - m : yabai -m window --space last; yabai -m space --focus last
|
||||
lctrl + shift + cmd - p : yabai -m window --space prev; yabai -m space --focus prev
|
||||
lctrl + shift + cmd - n : yabai -m window --space next; yabai -m space --focus next
|
||||
lctrl + shift + cmd - 1 : yabai -m window --space 1; yabai -m space --focus 1
|
||||
lctrl + shift + cmd - 2 : yabai -m window --space 2; yabai -m space --focus 2
|
||||
lctrl + shift + cmd - 3 : yabai -m window --space 3; yabai -m space --focus 3
|
||||
lctrl + shift + cmd - 4 : yabai -m window --space 4; yabai -m space --focus 4
|
||||
|
||||
# Focus Space
|
||||
# shift + cmd - m : yabai -m space --focus last
|
||||
# shift + cmd - p : yabai -m space --focus prev
|
||||
# shift + cmd - n : yabai -m space --focus next
|
||||
shift + cmd - 1 : yabai -m space --focus 1
|
||||
shift + cmd - 2 : yabai -m space --focus 2
|
||||
shift + cmd - 3 : yabai -m space --focus 3
|
||||
shift + cmd - 4 : yabai -m space --focus 4
|
||||
|
||||
# Insert Direction
|
||||
lctrl + shift + cmd - v : yabai -m window --insert south
|
||||
lctrl + shift + cmd - b : yabai -m window --insert east
|
||||
lctrl + shift + cmd - s : yabai -m window --insert stack
|
||||
|
||||
# Floating Windows
|
||||
# shift + cmd - space : \
|
||||
# yabai -m window --toggle float; \
|
||||
# yabai -m window --toggle border
|
||||
shift + cmd - space : yabai -m window --toggle float
|
||||
|
||||
# Terminal
|
||||
shift + cmd - return : ${open-iterm2}/bin/open-iterm2
|
||||
|
||||
# Fullscreen
|
||||
alt - f : yabai -m window --toggle zoom-fullscreen
|
||||
shift + alt - f : yabai -m window --toggle native-fullscreen
|
||||
|
||||
# Restart Yabai
|
||||
shift + lctrl + alt - r : \
|
||||
/usr/bin/env osascript <<< \
|
||||
"display notification \"Restarting Yabai\" with title \"Yabai\""; \
|
||||
launchctl kickstart -k "gui/$UID/org.nixos.yabai"
|
||||
|
||||
# Restart Spacebar
|
||||
shift + lctrl + alt - s : \
|
||||
/usr/bin/env osascript <<< \
|
||||
"display notification \"Restarting Spacebar\" with title \"Spacebar\""; \
|
||||
launchctl kickstart -k "gui/$UID/org.nixos.spacebar"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
14
modules/darwin/desktop/addons/skhd/scripts/open-iterm2.sh
Normal file
14
modules/darwin/desktop/addons/skhd/scripts/open-iterm2.sh
Normal file
|
@ -0,0 +1,14 @@
|
|||
# Detects if iTerm2 is running
|
||||
if ! pgrep -f "iTerm" > /dev/null 2>&1; then
|
||||
open -a "/Applications/Nix Apps/iTerm2.app"
|
||||
else
|
||||
# Create a new window
|
||||
script='tell application "iTerm2" to create window with default profile'
|
||||
! osascript -e "${script}" > /dev/null 2>&1 && {
|
||||
# Get pids for any app with "iTerm" and kill
|
||||
while IFS="" read -r pid; do
|
||||
kill -15 "${pid}"
|
||||
done < <(pgrep -f "iTerm")
|
||||
open -a "/Applications/Nix Apps/iTerm2.app"
|
||||
}
|
||||
fi
|
47
modules/darwin/desktop/addons/spacebar/default.nix
Normal file
47
modules/darwin/desktop/addons/spacebar/default.nix
Normal file
|
@ -0,0 +1,47 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
|
||||
with lib;
|
||||
with lib.plusultra;
|
||||
let
|
||||
cfg = config.plusultra.desktop.addons.spacebar;
|
||||
in
|
||||
{
|
||||
options.plusultra.desktop.addons.spacebar = {
|
||||
enable = mkEnableOption "Spacebar";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.spacebar = {
|
||||
enable = true;
|
||||
package = pkgs.spacebar;
|
||||
|
||||
config = {
|
||||
position = "top";
|
||||
display = "all";
|
||||
height = 32;
|
||||
title = "on";
|
||||
spaces = "on";
|
||||
clock = "on";
|
||||
power = "off";
|
||||
|
||||
padding_left = 10;
|
||||
padding_right = 10;
|
||||
|
||||
spacing_left = 10;
|
||||
spacing_right = 10;
|
||||
|
||||
foreground_color = "0xffeceff4";
|
||||
background_color = "0xff1d2128";
|
||||
|
||||
text_font = ''"Hack Nerd Font Mono:Regular:14.0"'';
|
||||
icon_font = ''"Hack Nerd Font Mono:Regular:20.0"'';
|
||||
|
||||
# Shell entries apparently break the whole bar...
|
||||
# https://github.com/cmacrae/spacebar/issues/104
|
||||
# right_shell_icon = "";
|
||||
# right_shell_command = ''"whoami"'';
|
||||
# right_shell = "on";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
77
modules/darwin/desktop/yabai/default.nix
Normal file
77
modules/darwin/desktop/yabai/default.nix
Normal file
|
@ -0,0 +1,77 @@
|
|||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
cfg = config.plusultra.desktop.yabai;
|
||||
|
||||
inherit (lib) types mkEnableOption mkIf;
|
||||
inherit (lib.plusultra) mkOpt enabled;
|
||||
in
|
||||
{
|
||||
options.plusultra.desktop.yabai = {
|
||||
enable = mkEnableOption "Yabai";
|
||||
enable-scripting-addition = mkOpt types.bool true "Whether to enable the scripting addition for Yabai. (Requires SIP to be disabled)";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
plusultra.desktop.addons = {
|
||||
skhd = enabled;
|
||||
spacebar = enabled;
|
||||
};
|
||||
|
||||
services.yabai = {
|
||||
enable = true;
|
||||
enableScriptingAddition = cfg.enable-scripting-addition;
|
||||
|
||||
config = {
|
||||
layout = "bsp";
|
||||
|
||||
auto_balance = "off";
|
||||
|
||||
debug_output = "on";
|
||||
|
||||
top_padding = 8;
|
||||
right_padding = 8;
|
||||
left_padding = 8;
|
||||
bottom_padding = 8;
|
||||
|
||||
window_gap = 6;
|
||||
window_topmost = "on";
|
||||
window_shadow = "float";
|
||||
|
||||
# As of macOS Sonoma, window borders break Yabai and cause a bunch of lag.
|
||||
window_border = "off";
|
||||
# window_border = "on";
|
||||
# window_border_width = 5;
|
||||
# window_border_radius = 14;
|
||||
# window_border_blur = "off";
|
||||
# window_border_hidpi = "on";
|
||||
# insert_feedback_color = "0xffb48ead";
|
||||
# normal_window_border_color = "0x002e3440";
|
||||
# active_window_border_color = "0xff5e81ac";
|
||||
|
||||
external_bar = "all:${builtins.toString config.services.spacebar.config.height}:0";
|
||||
|
||||
# mouse_modifier = "alt";
|
||||
mouse_modifier = "cmd";
|
||||
mouse_action1 = "move";
|
||||
mouse_action2 = "resize";
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
yabai -m rule --add label="Finder" app="^Finder$" title="(Co(py|nnect)|Move|Info|Pref)" manage=off
|
||||
yabai -m rule --add label="Safari" app="^Safari$" title="^(General|(Tab|Password|Website|Extension)s|AutoFill|Se(arch|curity)|Privacy|Advance)$" manage=off
|
||||
yabai -m rule --add label="System Preferences" app="^System Preferences$" title=".*" manage=off
|
||||
yabai -m rule --add label="App Store" app="^App Store$" manage=off
|
||||
yabai -m rule --add label="Activity Monitor" app="^Activity Monitor$" manage=off
|
||||
yabai -m rule --add label="Calculator" app="^Calculator$" manage=off
|
||||
yabai -m rule --add label="Dictionary" app="^Dictionary$" manage=off
|
||||
yabai -m rule --add label="mpv" app="^mpv$" manage=off
|
||||
yabai -m rule --add label="Software Update" title="Software Update" manage=off
|
||||
yabai -m rule --add label="About This Mac" app="System Information" title="About This Mac" manage=off
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue