Compare commits

...
12 Commits
Author SHA1 Message Date
Administrateur cd6b256c88 last maj 2026-02-16 09:34:11 +01:00
Administrateur 2f7c7d7e8e Clean on IDE deps and add paneru 2026-02-15 22:41:24 +01:00
Administrateur c7d14c4160 add paneru package 2026-02-15 19:31:16 +01:00
Administrateur a13e4f349c Add overlays folder for darwin platerform 2026-02-15 17:26:32 +01:00
Administrateur 50e8057907 Add var envs & paneru derivation 2026-02-15 14:28:42 +01:00
Administrateur 51e0a62c03 Add comment into macOS configuration 2026-02-14 10:19:45 +01:00
Administrateur 5bdc2b80ec Add nix env 2026-02-14 10:15:54 +01:00
Administrateur eba6982552 Add R env 2026-02-14 07:43:00 +01:00
Administrateur a984aa289c Add Rust env 2026-02-13 23:43:09 +01:00
Administrateur 8db6372a01 Readd python 2026-02-13 23:35:59 +01:00
Administrateur fb80be90c0 Add python env 2026-02-13 23:35:25 +01:00
Administrateur acec0450ab Add openJDK option 2026-02-13 23:15:31 +01:00
26 changed files with 324 additions and 258 deletions
+5 -4
View File
@@ -55,13 +55,13 @@
nixos = nixpkgs.lib.nixosSystem { nixos = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
self = self; self = self;
import-tree = import-tree;
home-manager = home-manager;
nixpkgs = nixpkgs; nixpkgs = nixpkgs;
nixpkgs-unstable = nixpkgs-unstable; nixpkgs-unstable = nixpkgs-unstable;
import-tree = import-tree;
home-manager = home-manager;
}; };
modules = [ modules = [
./hosts/nixos/overlays.nix (import-tree ./overlays/nixos)
(import-tree ./hosts/common) (import-tree ./hosts/common)
(import-tree ./modules/system/nixos) (import-tree ./modules/system/nixos)
@@ -93,8 +93,9 @@
(import-tree ./hosts/darwin/system) (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/common)
(import-tree ./hosts/darwin/home) (import-tree ./hosts/darwin/home)
]; ];
+1
View File
@@ -2,6 +2,7 @@
{ {
nix = { nix = {
settings = { settings = {
use-xdg-base-directories = true;
experimental-features = "nix-command flakes"; experimental-features = "nix-command flakes";
trusted-users = [ trusted-users = [
# Needed by Devenv # Needed by Devenv
+50
View File
@@ -3,6 +3,7 @@
home-manager.users.alistreaza = { home-manager.users.alistreaza = {
imports = [ imports = [
(import-tree ../../../modules/home/common) (import-tree ../../../modules/home/common)
(import-tree ../../../modules/home/darwin)
]; ];
home = { home = {
@@ -16,10 +17,59 @@
home.shell.git.enable = true; home.shell.git.enable = true;
home.shell.neovim.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 # No Home Application Folders
targets.darwin.linkApps.enable = false; targets.darwin.linkApps.enable = false;
targets.darwin.copyApps.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 # The state version is required and should stay at the version you
# originally installed. # originally installed.
home.stateVersion = "25.11"; home.stateVersion = "25.11";
+3 -3
View File
@@ -1,4 +1,4 @@
{ pkgs, ... }: { ... }:
{ {
system.primaryUser = "alistreaza"; system.primaryUser = "alistreaza";
nixpkgs.hostPlatform = "aarch64-darwin"; nixpkgs.hostPlatform = "aarch64-darwin";
@@ -6,10 +6,10 @@
# Homebrew apps # Homebrew apps
os.homebrew.iterm.enable = true; os.homebrew.iterm.enable = true;
os.homebrew.zed.enable = true; os.homebrew.zed.enable = true;
os.homebrew.jetbrain.enable = false; os.homebrew.jetbrain.enable = true;
os.homebrew.iina.enable = true; os.homebrew.iina.enable = true;
os.homebrew.zen.enable = true; os.homebrew.zen.enable = true;
os.homebrew.obsidian.enable = true; os.homebrew.obsidian.enable = true;
os.homebrew.microsoft.enable = false; os.homebrew.microsoft.enable = true;
os.homebrew.keka.enable = true; os.homebrew.keka.enable = true;
} }
+3 -3
View File
@@ -14,8 +14,8 @@
minimize-to-application = true; minimize-to-application = true;
show-recents = false; show-recents = false;
tilesize = 30; tilesize = 30;
autohide = false; autohide = true;
orientation = "right"; orientation = "bottom";
persistent-apps = [ persistent-apps = [
{ app = "/System/Applications/Apps.app"; } { app = "/System/Applications/Apps.app"; }
{ app = "/Applications/Zen.app"; } { app = "/Applications/Zen.app"; }
@@ -36,7 +36,7 @@
{ app = "/Applications/DataSpell.app"; } { app = "/Applications/DataSpell.app"; }
{ app = "/Applications/iTerm.app"; } { app = "/Applications/iTerm.app"; }
]; ];
persistent-others= []; persistent-others = [ ];
wvous-bl-corner = 1; wvous-bl-corner = 1;
wvous-br-corner = 3; wvous-br-corner = 3;
wvous-tl-corner = 1; wvous-tl-corner = 1;
+23
View File
@@ -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
];
};
}
+29
View File
@@ -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";
};
};
}
+23
View File
@@ -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
];
};
}
+22
View File
@@ -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
];
};
}
+27
View File
@@ -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";
};
};
}
+5 -1
View File
@@ -13,9 +13,13 @@ in
enable = true; enable = true;
autosuggestion.enable = true; autosuggestion.enable = true;
syntaxHighlighting.enable = true; syntaxHighlighting.enable = true;
dotDir = "${config.xdg.configHome}/zsh";
history = {
path = "${config.xdg.dataHome}/zsh/history";
};
oh-my-zsh = { oh-my-zsh = {
enable = true; enable = true;
theme = "af-magic"; theme = "dieter";
}; };
}; };
+100
View File
@@ -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;
};
};
}
-22
View File
@@ -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
];
};
}
-22
View File
@@ -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
];
};
}
-22
View File
@@ -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
];
};
}
-22
View File
@@ -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
];
};
}
-22
View File
@@ -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
];
};
}
-22
View File
@@ -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
];
};
}
-22
View File
@@ -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
];
};
}
-22
View File
@@ -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
];
};
}
-22
View File
@@ -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
];
};
}
+2 -5
View File
@@ -12,12 +12,9 @@ in
homebrew.casks = [ homebrew.casks = [
"intellij-idea" "intellij-idea"
"pycharm" "pycharm"
"phpstorm"
"rustrover"
"goland"
"datagrip"
"dataspell"
"clion" "clion"
"rustrover"
"dataspell"
]; ];
}; };
+31
View File
@@ -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;
})
];
}