wip macos config
This commit is contained in:
parent
35ad28c03a
commit
232b3546e1
8 changed files with 176 additions and 180 deletions
8
darwin-configuration.nix
Normal file
8
darwin-configuration.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
# NixOS config entry point
|
||||
# import the hardware and configuration files specific to your machine
|
||||
{
|
||||
imports =
|
||||
[
|
||||
./machines/MacMiniM2-darwin-configuration.nix
|
||||
];
|
||||
}
|
2
dotfiles/init_yeswiki_repos.sh
Normal file → Executable file
2
dotfiles/init_yeswiki_repos.sh
Normal file → Executable file
|
@ -14,7 +14,7 @@
|
|||
|
||||
corebranch="doryphore-dev"
|
||||
curdir="$HOME/Developpements" #${PWD}
|
||||
repos=$(curl --request GET --url "https://api.github.com/orgs/yeswiki/repos" | jq '.[].full_name' | tr -d "\"" | sort)
|
||||
repos=$(curl --request GET --url "https://api.github.com/orgs/yeswiki/repos?per_page=100" | jq '.[].full_name' | tr -d "\"" | sort)
|
||||
|
||||
# core
|
||||
printf "\n================ Install YesWiki core ================\n"
|
||||
|
|
34
machines/MacMiniM2-darwin-configuration.nix
Normal file
34
machines/MacMiniM2-darwin-configuration.nix
Normal file
|
@ -0,0 +1,34 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../modules/console.nix
|
||||
../modules/local-dev.nix
|
||||
../modules/home-config.nix
|
||||
];
|
||||
|
||||
fonts = {
|
||||
fontDir.enable = true;
|
||||
fonts = with pkgs; [
|
||||
inter
|
||||
(nerdfonts.override { fonts = [ "Iosevka" ]; })
|
||||
];
|
||||
};
|
||||
|
||||
# Use a custom configuration.nix location.
|
||||
# $ darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin/configuration.nix
|
||||
# environment.darwinConfig = "$HOME/.config/nixpkgs/darwin/configuration.nix";
|
||||
|
||||
# Auto upgrade nix package and the daemon service.
|
||||
services.nix-daemon.enable = true;
|
||||
nix.package = pkgs.nix;
|
||||
|
||||
networking.hostName = "ace";
|
||||
|
||||
# Create /etc/zshrc that loads the nix-darwin environment.
|
||||
programs.zsh.enable = true; # default shell on catalina
|
||||
|
||||
# Used for backwards compatibility, please read the changelog before changing.
|
||||
# $ darwin-rebuild changelog
|
||||
system.stateVersion = 4;
|
||||
}
|
|
@ -3,10 +3,10 @@
|
|||
|
||||
{
|
||||
programs.zsh.enable = true;
|
||||
programs.fzf = {
|
||||
fuzzyCompletion = true;
|
||||
keybindings = true;
|
||||
};
|
||||
# programs.fzf = {
|
||||
# fuzzyCompletion = true;
|
||||
# keybindings = true;
|
||||
# };
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
|
@ -41,11 +41,12 @@
|
|||
mpc-cli
|
||||
mpd
|
||||
neofetch
|
||||
neovim
|
||||
ollama
|
||||
pandoc
|
||||
pass
|
||||
pciutils
|
||||
pinentry
|
||||
#pinentry
|
||||
ripgrep
|
||||
rustc
|
||||
slides
|
||||
|
@ -55,12 +56,12 @@
|
|||
tokei
|
||||
tree
|
||||
unzip
|
||||
usbutils
|
||||
#usbutils
|
||||
wget
|
||||
whois
|
||||
wl-clipboard
|
||||
wirelesstools
|
||||
yazi
|
||||
#wirelesstools
|
||||
yt-dlp
|
||||
zellij
|
||||
zoxide
|
||||
|
|
|
@ -1,41 +1,33 @@
|
|||
# Inject the right home-manager config for the machine.
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
plasma-manager = pkgs.fetchFromGitHub {
|
||||
owner = "pjones";
|
||||
repo = "plasma-manager";
|
||||
rev = "4e56cfeb95081a43cb49487d0996dc936d6201e5";
|
||||
sha256 = "sha256-LJ/lFEupLSi7xtUps234hhMk7ZdVLRoYeU7KiCFaoGw=";
|
||||
};
|
||||
startupScript = pkgs.pkgs.writeShellScriptBin "hyprland-start" ''
|
||||
${pkgs.waybar}/bin/waybar &
|
||||
${pkgs.swww}/bin/swww init &
|
||||
#startupScript = pkgs.pkgs.writeShellScriptBin "hyprland-start" ''
|
||||
# ${pkgs.waybar}/bin/waybar &
|
||||
# ${pkgs.swww}/bin/swww init &
|
||||
#
|
||||
# sleep 1
|
||||
|
||||
sleep 1
|
||||
|
||||
${pkgs.swww}/bin/swww img /home/mrflos/Nextcloud/Images/Wallpapers/chihiro014.jpg &
|
||||
'';
|
||||
# ${pkgs.swww}/bin/swww img /home/mrflos/Nextcloud/Images/Wallpapers/chihiro014.jpg &
|
||||
# '';
|
||||
in {
|
||||
# TODO can we automate the installation of home-manager ?
|
||||
# sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-24.05.tar.gz home-manager
|
||||
imports = [
|
||||
<home-manager/nixos>
|
||||
#<home-manager/nixos>
|
||||
<home-manager/nix-darwin>
|
||||
];
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
#programs.home-manager.enable = true;
|
||||
home-manager.useGlobalPkgs = true;
|
||||
users.users.mrflos = {
|
||||
isNormalUser = true;
|
||||
#isNormalUser = true;
|
||||
description = "mrflos";
|
||||
createHome = true;
|
||||
extraGroups = ["users" "docker" "libvirtd" "lxd" "networkmanager" "wheel" ];
|
||||
#extraGroups = ["users" "docker" "libvirtd" "lxd" "networkmanager" "wheel" ];
|
||||
uid = 1000;
|
||||
shell = pkgs.zsh;
|
||||
home = "/Users/mrflos";
|
||||
};
|
||||
|
||||
nix.settings.trusted-users = [ "mrflos" ];
|
||||
|
||||
home-manager.backupFileExtension = "backup";
|
||||
home-manager.users.mrflos = { pkgs, ... }: {
|
||||
home.stateVersion = "23.05";
|
||||
home.packages = with pkgs; [
|
||||
|
@ -47,17 +39,17 @@ in {
|
|||
rust-analyzer-unwrapped
|
||||
php83Packages.composer
|
||||
nodejs_20
|
||||
swww
|
||||
grimblast
|
||||
swaylock
|
||||
waybar
|
||||
# swww
|
||||
# grimblast
|
||||
#swaylock
|
||||
#waybar
|
||||
yarn
|
||||
];
|
||||
|
||||
imports = [
|
||||
(plasma-manager + "/modules")
|
||||
./home-plasma.nix
|
||||
];
|
||||
#imports = [
|
||||
# (plasma-manager + "/modules")
|
||||
# ./home-plasma.nix
|
||||
#];
|
||||
home.file = {
|
||||
"./.config/kitty/" = {
|
||||
source = ../dotfiles/kitty;
|
||||
|
@ -238,105 +230,105 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
services.ssh-agent.enable = true;
|
||||
wayland.windowManager.hyprland.enable = true;
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec-once = ''${startupScript}/bin/hyprland-start'';
|
||||
"$mod" = "SUPER";
|
||||
#services.ssh-agent.enable = true;
|
||||
#wayland.windowManager.hyprland.enable = true;
|
||||
#wayland.windowManager.hyprland.settings = {
|
||||
# exec-once = ''${startupScript}/bin/hyprland-start'';
|
||||
# "$mod" = "SUPER";
|
||||
|
||||
# assign apps
|
||||
"$term" = "kitty";
|
||||
"$editor" = "nvim";
|
||||
"$file" = "dolphin";
|
||||
"$browser" = "firefox";
|
||||
# "$term" = "kitty";
|
||||
# "$editor" = "nvim";
|
||||
# "$file" = "dolphin";
|
||||
# "$browser" = "firefox";
|
||||
|
||||
bind = [
|
||||
", Print, exec, grimblast copy area"
|
||||
# bind = [
|
||||
# ", Print, exec, grimblast copy area"
|
||||
# Window/Session actions
|
||||
"$mod, Q, killactive"
|
||||
"ALT, F4, killactive"
|
||||
"$mod, delete, exit" # kill hyperland session
|
||||
"$mod, W, togglefloating" # toggle the window on focus to float
|
||||
"$mod, G, togglegroup" # toggle the window on focus to float
|
||||
"ALT, return, fullscreen" # toggle the window on focus to fullscreen
|
||||
"$mod, L, exec, swaylock" # lock screen
|
||||
# "$mod, Q, killactive"
|
||||
# "ALT, F4, killactive"
|
||||
# "$mod, delete, exit" # kill hyperland session
|
||||
# "$mod, W, togglefloating" # toggle the window on focus to float
|
||||
# "$mod, G, togglegroup" # toggle the window on focus to float
|
||||
# "ALT, return, fullscreen" # toggle the window on focus to fullscreen
|
||||
# "$mod, L, exec, swaylock" # lock screen
|
||||
# "$mod, backspace, exec, wlogout-launcher-hyprland 1" # logout menu
|
||||
"$CONTROL, ESCAPE, exec, systemctl-toggle --user waybar.service"
|
||||
# "$CONTROL, ESCAPE, exec, systemctl-toggle --user waybar.service"
|
||||
|
||||
# Application shortcuts
|
||||
"$mod, T, exec, $term" # open terminal
|
||||
"$mod, E, exec, $file" # open file manager
|
||||
"$mod, C, exec, $editor" # open vscode
|
||||
"$mod, F, exec, $browser" # open browser
|
||||
# "$mod, T, exec, $term" # open terminal
|
||||
# "$mod, E, exec, $file" # open file manager
|
||||
# "$mod, C, exec, $editor" # open vscode
|
||||
# "$mod, F, exec, $browser" # open browser
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
"$mod, left, movefocus, l"
|
||||
"$mod, right, movefocus, r"
|
||||
"$mod, up, movefocus, u"
|
||||
"$mod, down, movefocus, d"
|
||||
"ALT, Tab, movefocus, d"
|
||||
# "$mod, left, movefocus, l"
|
||||
# "$mod, right, movefocus, r"
|
||||
# "$mod, up, movefocus, u"
|
||||
# "$mod, down, movefocus, d"
|
||||
# "ALT, Tab, movefocus, d"
|
||||
|
||||
|
||||
# Switch workspaces relative to the active workspace with mainMod + CTRL + [←→]
|
||||
"$mod CTRL, right, workspace, r+1"
|
||||
"$mod CTRL, left, workspace, r-1"
|
||||
# "$mod CTRL, right, workspace, r+1"
|
||||
# "$mod CTRL, left, workspace, r-1"
|
||||
|
||||
# move to the first empty workspace instantly with mainMod + CTRL + [↓]
|
||||
"$mod CTRL, down, workspace, empty"
|
||||
# "$mod CTRL, down, workspace, empty"
|
||||
|
||||
# Move active window to a relative workspace with mainMod + CTRL + ALT + [←→]
|
||||
"$mod CTRL ALT, right, movetoworkspace, r+1"
|
||||
"$mod CTRL ALT, left, movetoworkspace, r-1"
|
||||
# "$mod CTRL ALT, right, movetoworkspace, r+1"
|
||||
# "$mod CTRL ALT, left, movetoworkspace, r-1"
|
||||
|
||||
# Move active window around current workspace with mainMod + SHIFT + CTRL [←→↑↓]
|
||||
"$mod SHIFT $CONTROL, left, movewindow, l"
|
||||
"$mod SHIFT $CONTROL, right, movewindow, r"
|
||||
"$mod SHIFT $CONTROL, up, movewindow, u"
|
||||
"$mod SHIFT $CONTROL, down, movewindow, d"
|
||||
# "$mod SHIFT $CONTROL, left, movewindow, l"
|
||||
# "$mod SHIFT $CONTROL, right, movewindow, r"
|
||||
# "$mod SHIFT $CONTROL, up, movewindow, u"
|
||||
# "$mod SHIFT $CONTROL, down, movewindow, d"
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
"$mod, mouse_down, workspace, e+1"
|
||||
"$mod, mouse_up, workspace, e-1"
|
||||
# "$mod, mouse_down, workspace, e+1"
|
||||
# "$mod, mouse_up, workspace, e-1"
|
||||
|
||||
# Special workspaces (scratchpad)
|
||||
"$mod ALT, S, movetoworkspacesilent, special"
|
||||
"$mod, S, togglespecialworkspace,"
|
||||
# "$mod ALT, S, movetoworkspacesilent, special"
|
||||
# "$mod, S, togglespecialworkspace,"
|
||||
|
||||
# Toggle Layout
|
||||
"$mod, J, togglesplit," # dwindle
|
||||
]
|
||||
++ (
|
||||
# "$mod, J, togglesplit," # dwindle
|
||||
# ]
|
||||
# ++ (
|
||||
# workspaces
|
||||
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
||||
builtins.concatLists (builtins.genList (
|
||||
x: let
|
||||
ws = let
|
||||
c = (x + 1) / 10;
|
||||
in
|
||||
builtins.toString (x + 1 - (c * 10));
|
||||
in [
|
||||
"$mod, ${ws}, workspace, ${toString (x + 1)}"
|
||||
"$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
|
||||
"$mod ALT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}" # Move window silently to workspace Super + Alt + [0-9]
|
||||
]
|
||||
)
|
||||
10)
|
||||
);
|
||||
# builtins.concatLists (builtins.genList (
|
||||
# x: let
|
||||
# ws = let
|
||||
# c = (x + 1) / 10;
|
||||
# in
|
||||
# builtins.toString (x + 1 - (c * 10));
|
||||
# in [
|
||||
# "$mod, ${ws}, workspace, ${toString (x + 1)}"
|
||||
# "$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
|
||||
# "$mod ALT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}" # Move window silently to workspace Super + Alt + [0-9]
|
||||
# ]
|
||||
# )
|
||||
# 10)
|
||||
# );
|
||||
#
|
||||
# # Move/Resize windows with mainMod + LMB/RMB and dragging
|
||||
# bindm = [
|
||||
# "$mod, mouse:272, movewindow"
|
||||
# "$mod, mouse:273, resizewindow"
|
||||
# ];
|
||||
|
||||
# Move/Resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
# Resize windows
|
||||
binde = [
|
||||
"$mod SHIFT, right, resizeactive, 30 0"
|
||||
"$mod SHIFT, left, resizeactive, -30 0"
|
||||
"$mod SHIFT, up, resizeactive, 0 -30"
|
||||
"$mod SHIFT, down, resizeactive, 0 30"
|
||||
];
|
||||
};
|
||||
# # Resize windows
|
||||
# binde = [
|
||||
# "$mod SHIFT, right, resizeactive, 30 0"
|
||||
# "$mod SHIFT, left, resizeactive, -30 0"
|
||||
# "$mod SHIFT, up, resizeactive, 0 -30"
|
||||
# "$mod SHIFT, down, resizeactive, 0 30"
|
||||
# ];
|
||||
# };
|
||||
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,12 @@
|
|||
{
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
plasma-manager = pkgs.fetchFromGitHub {
|
||||
owner = "pjones";
|
||||
repo = "plasma-manager";
|
||||
rev = "4e56cfeb95081a43cb49487d0996dc936d6201e5";
|
||||
sha256 = "sha256-LJ/lFEupLSi7xtUps234hhMk7ZdVLRoYeU7KiCFaoGw=";
|
||||
};
|
||||
in {
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
shortcuts = {
|
||||
|
|
|
@ -1,86 +1,38 @@
|
|||
# Local developpement
|
||||
{ pkgs, config, lib, ... }: {
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
#docker.rootless = {
|
||||
# enable = true;
|
||||
# setSocketVariable = true;
|
||||
#};
|
||||
#libvirtd.enable = true;
|
||||
#lxd.enable = true;
|
||||
#waydroid.enable = true;
|
||||
};
|
||||
homebrew.enable = true;
|
||||
homebrew.brews = [
|
||||
# `brew install`
|
||||
#"imagemagick"
|
||||
|
||||
systemd.services.yeswikidev = {
|
||||
enable = true;
|
||||
script = ''
|
||||
${pkgs.systemd}/bin/systemctl start mysql
|
||||
# etc
|
||||
'';
|
||||
serviceConfig = let
|
||||
startstop = command:
|
||||
(pkgs.writeShellApplication {
|
||||
name = "yeswikidev";
|
||||
runtimeInputs = with pkgs; [ systemd ];
|
||||
text = ''
|
||||
systemctl ${command} mysql.service
|
||||
'';
|
||||
});
|
||||
#startstopFullShell = pkgs.writeShellApplication {
|
||||
# name = "yeswikidev";
|
||||
# runtimeInputs = with pkgs; [ systemd ];
|
||||
# text = ''
|
||||
# systemctl "$1" mysql.service
|
||||
# '';
|
||||
#});
|
||||
#commands = [ "start" "stop" ];
|
||||
#scripts = map (command: (pkgs.writeShellApplication {
|
||||
# name = "yeswikidev";
|
||||
# runtimeInputs = with pkgs; [ systemd ];
|
||||
# text = ''
|
||||
# systemctl ${command} mysql.service
|
||||
# '';
|
||||
#})) commands;
|
||||
|
||||
#execs = {
|
||||
# ExecStart = "start";
|
||||
# ExecStop = "stop";
|
||||
#};
|
||||
# https://nixos.org/manual/nix/stable/language/builtins
|
||||
# https://nixos.org/manual/nix/stable/language/builtins#builtins-mapAttrs
|
||||
#execAttrs = attrNames execs; # ["Start" "Stop"];
|
||||
#execs2 = mapAttrs (k: v: ()) execs;
|
||||
in {
|
||||
# pkgs.writeScript, pkgs.writeScriptBin
|
||||
#ExecStart = startstop "start";
|
||||
#ExecStop = startstop "stop";
|
||||
# OR
|
||||
# ExecStart = "${startstopFullShell} start";
|
||||
# ExecStop = "${startstopFullShell} stop";
|
||||
# OR
|
||||
# ExecStart = "${scripts[0]}";
|
||||
# ExecStop = "${scripts[1]}";
|
||||
};
|
||||
};
|
||||
|
||||
services.mysql = {
|
||||
enable = true;
|
||||
package = pkgs.mariadb;
|
||||
};
|
||||
# `brew install`, always `brew services restart`, `brew link`, `brew unlink mysql` (if it is installed)
|
||||
{
|
||||
name = "mariadb";
|
||||
restart_service = true;
|
||||
link = true;
|
||||
conflicts_with = [ "mysql" ];
|
||||
}
|
||||
];
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs;
|
||||
let
|
||||
php83 = pkgs.php83.buildEnv { extraConfig = "memory_limit = 2G"; };
|
||||
php83 = pkgs.php83.buildEnv { extraConfig = ""
|
||||
memory_limit = 2G
|
||||
max_upload_size = 2G
|
||||
""; };
|
||||
in [
|
||||
#clang
|
||||
dart-sass
|
||||
dbeaver-bin
|
||||
cmake
|
||||
dart-sass
|
||||
docker-compose
|
||||
fd
|
||||
fzf
|
||||
gcc
|
||||
go
|
||||
nixfmt-rfc-style
|
||||
lua-language-server
|
||||
nixpkgs-fmt
|
||||
nodejs
|
||||
nodePackages.eslint
|
||||
|
@ -90,7 +42,8 @@
|
|||
php83Packages.php-cs-fixer
|
||||
python3
|
||||
python311Packages.virtualenv
|
||||
rpi-imager
|
||||
ripgrep
|
||||
rust-analyzer-unwrapped
|
||||
ruff-lsp
|
||||
stylelint
|
||||
symfony-cli
|
||||
|
|
Loading…
Reference in a new issue