Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd6b256c88 | ||
|
|
2f7c7d7e8e | ||
|
|
c7d14c4160 | ||
|
|
a13e4f349c | ||
|
|
50e8057907 | ||
|
|
51e0a62c03 | ||
|
|
5bdc2b80ec | ||
|
|
eba6982552 | ||
|
|
a984aa289c | ||
|
|
8db6372a01 | ||
|
|
fb80be90c0 | ||
|
|
acec0450ab |
@@ -55,13 +55,13 @@
|
||||
nixos = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
self = self;
|
||||
import-tree = import-tree;
|
||||
home-manager = home-manager;
|
||||
nixpkgs = nixpkgs;
|
||||
nixpkgs-unstable = nixpkgs-unstable;
|
||||
import-tree = import-tree;
|
||||
home-manager = home-manager;
|
||||
};
|
||||
modules = [
|
||||
./hosts/nixos/overlays.nix
|
||||
(import-tree ./overlays/nixos)
|
||||
(import-tree ./hosts/common)
|
||||
|
||||
(import-tree ./modules/system/nixos)
|
||||
@@ -93,8 +93,9 @@
|
||||
(import-tree ./hosts/darwin/system)
|
||||
]
|
||||
++ [
|
||||
home-manager.darwinModules.home-manager
|
||||
(import-tree ./overlays/darwin)
|
||||
|
||||
home-manager.darwinModules.home-manager
|
||||
(import-tree ./hosts/common)
|
||||
(import-tree ./hosts/darwin/home)
|
||||
];
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
{
|
||||
nix = {
|
||||
settings = {
|
||||
use-xdg-base-directories = true;
|
||||
experimental-features = "nix-command flakes";
|
||||
trusted-users = [
|
||||
# Needed by Devenv
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
home-manager.users.alistreaza = {
|
||||
imports = [
|
||||
(import-tree ../../../modules/home/common)
|
||||
(import-tree ../../../modules/home/darwin)
|
||||
];
|
||||
|
||||
home = {
|
||||
@@ -16,10 +17,59 @@
|
||||
home.shell.git.enable = true;
|
||||
home.shell.neovim.enable = true;
|
||||
|
||||
# Nix env deps
|
||||
home.env.nix.enable = true;
|
||||
|
||||
# Languages env deps
|
||||
home.env.r.enable = true;
|
||||
home.env.jdk.enable = true;
|
||||
home.env.rust.enable = true;
|
||||
home.env.python.enable = true;
|
||||
|
||||
# No Home Application Folders
|
||||
targets.darwin.linkApps.enable = false;
|
||||
targets.darwin.copyApps.enable = false;
|
||||
|
||||
services.paneru = {
|
||||
enable = true;
|
||||
# Equivalent to what you would put into `~/.paneru` (See Configuration options below).
|
||||
settings = {
|
||||
options = {
|
||||
preset_column_widths = [
|
||||
0.25
|
||||
0.33
|
||||
0.5
|
||||
0.66
|
||||
0.75
|
||||
];
|
||||
swipe_gesture_fingers = 4;
|
||||
animation_speed = 4000;
|
||||
};
|
||||
bindings = {
|
||||
window_focus_west = "cmd - h";
|
||||
window_focus_east = "cmd - l";
|
||||
window_focus_north = "cmd - k";
|
||||
window_focus_south = "cmd - j";
|
||||
window_swap_west = "alt - h";
|
||||
window_swap_east = "alt - l";
|
||||
window_swap_first = "alt + shift - h";
|
||||
window_swap_last = "alt + shift - l";
|
||||
window_center = "alt - c";
|
||||
window_resize = "alt - r";
|
||||
window_fullwidth = "alt - f";
|
||||
window_manage = "ctrl + alt - t";
|
||||
window_stack = "alt - ]";
|
||||
window_unstack = "alt + shift - ]";
|
||||
quit = "ctrl + alt - q";
|
||||
};
|
||||
windows.all = {
|
||||
title = ".*";
|
||||
vertical_padding = 5;
|
||||
horizontal_padding = 5;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# The state version is required and should stay at the version you
|
||||
# originally installed.
|
||||
home.stateVersion = "25.11";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
system.primaryUser = "alistreaza";
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
@@ -6,10 +6,10 @@
|
||||
# Homebrew apps
|
||||
os.homebrew.iterm.enable = true;
|
||||
os.homebrew.zed.enable = true;
|
||||
os.homebrew.jetbrain.enable = false;
|
||||
os.homebrew.jetbrain.enable = true;
|
||||
os.homebrew.iina.enable = true;
|
||||
os.homebrew.zen.enable = true;
|
||||
os.homebrew.obsidian.enable = true;
|
||||
os.homebrew.microsoft.enable = false;
|
||||
os.homebrew.microsoft.enable = true;
|
||||
os.homebrew.keka.enable = true;
|
||||
}
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
minimize-to-application = true;
|
||||
show-recents = false;
|
||||
tilesize = 30;
|
||||
autohide = false;
|
||||
orientation = "right";
|
||||
autohide = true;
|
||||
orientation = "bottom";
|
||||
persistent-apps = [
|
||||
{ app = "/System/Applications/Apps.app"; }
|
||||
{ app = "/Applications/Zen.app"; }
|
||||
@@ -36,7 +36,7 @@
|
||||
{ app = "/Applications/DataSpell.app"; }
|
||||
{ app = "/Applications/iTerm.app"; }
|
||||
];
|
||||
persistent-others= [];
|
||||
persistent-others = [ ];
|
||||
wvous-bl-corner = 1;
|
||||
wvous-br-corner = 3;
|
||||
wvous-tl-corner = 1;
|
||||
|
||||
Vendored
+23
@@ -0,0 +1,23 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.env.nix;
|
||||
in
|
||||
{
|
||||
options.home.env.nix = {
|
||||
enable = mkEnableOption "Zen Editor options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs; [
|
||||
nil
|
||||
nixd
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
Vendored
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.env.jdk;
|
||||
in
|
||||
{
|
||||
options.home.env.jdk = {
|
||||
enable = mkEnableOption "Zen Editor options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs; [
|
||||
jdk25
|
||||
];
|
||||
|
||||
home.sessionVariables = {
|
||||
JAVA_HOME = "${pkgs.jdk25}";
|
||||
M2_HOME = "${config.xdg.dataHome}/maven";
|
||||
MVN_HOME = "${config.xdg.dataHome}/maven";
|
||||
MAVEN_HOME = "${config.xdg.dataHome}/maven";
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
Vendored
+23
@@ -0,0 +1,23 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.env.python;
|
||||
in
|
||||
{
|
||||
options.home.env.python = {
|
||||
enable = mkEnableOption "Zen Editor options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs; [
|
||||
python3
|
||||
uv
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.env.r;
|
||||
in
|
||||
{
|
||||
options.home.env.r = {
|
||||
enable = mkEnableOption "Zen Editor options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs; [
|
||||
R
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
Vendored
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.env.rust;
|
||||
in
|
||||
{
|
||||
options.home.env.rust = {
|
||||
enable = mkEnableOption "Zen Editor options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs; [
|
||||
rustup
|
||||
];
|
||||
|
||||
home.sessionVariables = {
|
||||
CARGO_HOME = "${config.xdg.dataHome}/cargo";
|
||||
RUSTUP_HOME = "${config.xdg.dataHome}/rustup";
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
@@ -13,9 +13,13 @@ in
|
||||
enable = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
dotDir = "${config.xdg.configHome}/zsh";
|
||||
history = {
|
||||
path = "${config.xdg.dataHome}/zsh/history";
|
||||
};
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "af-magic";
|
||||
theme = "dieter";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.paneru;
|
||||
tomlFormat = pkgs.formats.toml { };
|
||||
in
|
||||
{
|
||||
options.services.paneru = {
|
||||
enable = lib.mkEnableOption ''
|
||||
Install paneru and configure the launchd agent.
|
||||
|
||||
The first time this is enabled, macOS will prompt you to allow this background
|
||||
item in System Settings.
|
||||
|
||||
You can verify the service is running correctly from your terminal.
|
||||
Run: `launchctl list | grep paneru`
|
||||
|
||||
In case of failure, check the logs with `cat /tmp/paneru.err.log`.
|
||||
'';
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.paneru;
|
||||
description = "The paneru package to use.";
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.attrs;
|
||||
default = null;
|
||||
description = "Configuration to put in `~/.paneru.toml`.";
|
||||
example = {
|
||||
options = {
|
||||
focus_follows_mouse = true;
|
||||
preset_column_widths = [
|
||||
0.25
|
||||
0.33
|
||||
0.5
|
||||
0.66
|
||||
0.75
|
||||
];
|
||||
swipe_gesture_fingers = 4;
|
||||
animation_speed = 4000;
|
||||
};
|
||||
bindings = {
|
||||
window_focus_west = "cmd - h";
|
||||
window_focus_east = "cmd - l";
|
||||
window_focus_north = "cmd - k";
|
||||
window_focus_south = "cmd - j";
|
||||
window_swap_west = "alt - h";
|
||||
window_swap_east = "alt - l";
|
||||
window_swap_first = "alt + shift - h";
|
||||
window_swap_last = "alt + shift - l";
|
||||
window_center = "alt - c";
|
||||
window_resize = "alt - r";
|
||||
window_manage = "ctrl + alt - t";
|
||||
window_stack = "alt - ]";
|
||||
window_unstack = "alt + shift - ]";
|
||||
quit = "ctrl + alt - q";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [ (lib.hm.assertions.assertPlatform "services.paneru" pkgs lib.platforms.darwin) ];
|
||||
launchd.agents.paneru = {
|
||||
enable = true;
|
||||
config = {
|
||||
KeepAlive = {
|
||||
Crashed = true;
|
||||
SuccessfulExit = false;
|
||||
};
|
||||
Label = "Paneru";
|
||||
Nice = -20;
|
||||
ProcessType = "Interactive";
|
||||
EnvironmentVariables = {
|
||||
NO_COLOR = "1";
|
||||
XDG_CONFIG_HOME =
|
||||
if config.xdg.enable then config.xdg.configHome else "${config.home.homeDirectory}/.config";
|
||||
};
|
||||
RunAtLoad = true;
|
||||
StandardOutPath = "/tmp/paneru.log";
|
||||
StandardErrorPath = "/tmp/paneru.err.log";
|
||||
Program = cfg.package + /bin/paneru;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile."paneru/paneru.toml" = lib.mkIf (config.xdg.enable && cfg.settings != null) {
|
||||
source = tomlFormat.generate "paneru.toml" cfg.settings;
|
||||
};
|
||||
|
||||
home.file.".paneru.toml" = lib.mkIf (!config.xdg.enable && cfg.settings != null) {
|
||||
source = tomlFormat.generate ".paneru.toml" cfg.settings;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.ide.jetbrains.clion;
|
||||
in
|
||||
{
|
||||
options.home.ide.jetbrains.clion = {
|
||||
enable = mkEnableOption "JetBrains options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs.unstable; [
|
||||
jetbrains.clion
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.ide.jetbrains.datagrip;
|
||||
in
|
||||
{
|
||||
options.home.ide.jetbrains.datagrip = {
|
||||
enable = mkEnableOption "JetBrains options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs.unstable; [
|
||||
jetbrains.datagrip
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.ide.jetbrains.dataspell;
|
||||
in
|
||||
{
|
||||
options.home.ide.jetbrains.dataspell = {
|
||||
enable = mkEnableOption "JetBrains options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs.unstable; [
|
||||
jetbrains.dataspell
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.ide.jetbrains.goland;
|
||||
in
|
||||
{
|
||||
options.home.ide.jetbrains.goland = {
|
||||
enable = mkEnableOption "JetBrains options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs.unstable; [
|
||||
jetbrains.goland
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.ide.jetbrains.idea;
|
||||
in
|
||||
{
|
||||
options.home.ide.jetbrains.idea = {
|
||||
enable = mkEnableOption "JetBrains options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs.unstable; [
|
||||
jetbrains.idea
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.ide.jetbrains.phpstorm;
|
||||
in
|
||||
{
|
||||
options.home.ide.jetbrains.phpstorm = {
|
||||
enable = mkEnableOption "JetBrains options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs.unstable; [
|
||||
jetbrains.phpstorm
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.ide.jetbrains.pycharm;
|
||||
in
|
||||
{
|
||||
options.home.ide.jetbrains.pycharm = {
|
||||
enable = mkEnableOption "JetBrains options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs.unstable; [
|
||||
jetbrains.pycharm
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.ide.jetbrains.rider;
|
||||
in
|
||||
{
|
||||
options.home.ide.jetbrains.rider = {
|
||||
enable = mkEnableOption "JetBrains options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs.unstable; [
|
||||
jetbrains.rider
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.ide.jetbrains.rubymine;
|
||||
in
|
||||
{
|
||||
options.home.ide.jetbrains.rubymine = {
|
||||
enable = mkEnableOption "JetBrains options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs.unstable; [
|
||||
jetbrains.ruby-mine
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.ide.jetbrains.rustrover;
|
||||
in
|
||||
{
|
||||
options.home.ide.jetbrains.rustrover = {
|
||||
enable = mkEnableOption "JetBrains options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs.unstable; [
|
||||
jetbrains.rust-rover
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.home.ide.jetbrains.webstorm;
|
||||
in
|
||||
{
|
||||
options.home.ide.jetbrains.webstorm = {
|
||||
enable = mkEnableOption "JetBrains options";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
home.packages = with pkgs.unstable; [
|
||||
jetbrains.webstorm
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
@@ -12,12 +12,9 @@ in
|
||||
homebrew.casks = [
|
||||
"intellij-idea"
|
||||
"pycharm"
|
||||
"phpstorm"
|
||||
"rustrover"
|
||||
"goland"
|
||||
"datagrip"
|
||||
"dataspell"
|
||||
"clion"
|
||||
"rustrover"
|
||||
"dataspell"
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
package = pkgs.rustPlatform.buildRustPackage {
|
||||
pname = "paneru";
|
||||
version = "0.3.0";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "karinushka";
|
||||
repo = "paneru";
|
||||
rev = "66c94493cc99ee7715b4beb1e5cf455ada60213a";
|
||||
sha256 = "sha256-VyKzfnXfnIkyjbg1RQTDaIbMdPQjNBD5dxVL6OZQf2U=";
|
||||
};
|
||||
cargoHash = "sha256-nVOhtPbX7pN5K/xqv0Nlx7MZDg9ASTxfgdTy/Kagui8=";
|
||||
postPatch = ''
|
||||
substituteInPlace build.rs --replace-fail \
|
||||
'let sdk_dir = "/Library/Developer/CommandLineTools/SDKs";' \
|
||||
'let sdk_dir = "${pkgs.apple-sdk}/Platforms/MacOSX.platform/Developer/SDKs";'
|
||||
'';
|
||||
buildInputs = [ pkgs.apple-sdk.privateFrameworksHook ];
|
||||
doCheck = false;
|
||||
meta = {
|
||||
platforms = [ "aarch64-darwin" ];
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
paneru = package;
|
||||
})
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user