style : nixfmt

This commit is contained in:
Florian Schmitt 2024-09-05 15:39:17 +03:00
parent 0b59cc1453
commit 6d9ae3ec72
9 changed files with 588 additions and 485 deletions

View file

@ -1,4 +1,3 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
@ -14,7 +13,9 @@
"hid_apple.swap_fn_leftctrl=1" "hid_apple.swap_fn_leftctrl=1"
"hid_apple.iso_layout=0" "hid_apple.iso_layout=0"
]; ];
boot.kernel.sysctl = { "vm.swappiness" = 10;}; boot.kernel.sysctl = {
"vm.swappiness" = 10;
};
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
@ -38,7 +39,10 @@
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
networking.firewall = { networking.firewall = {
enable = true; enable = true;
allowedTCPPorts = [ 80 443 ]; allowedTCPPorts = [
80
443
];
}; };
# Set your time zone. # Set your time zone.
@ -76,18 +80,18 @@
../modules/local-dev.nix ../modules/local-dev.nix
../modules/nixos.nix ../modules/nixos.nix
]; ];
services.eris-server = { services.eris-server = {
enable = true; enable = true;
backends = [ backends = [
"badger+file:///var/eris?put&get" # local one on /var/eris "badger+file:///var/eris?put&get" # local one on /var/eris
# "coap+tcp://eris.example.com:5683?get" # an online one # "coap+tcp://eris.example.com:5683?get" # an online one
]; ];
mountpoint = "/mnt/media/eris"; # useful to mount eris-fs folders mountpoint = "/mnt/media/eris"; # useful to mount eris-fs folders
listenHttp = ":8080"; # or "[::1]:8080" listenHttp = ":8080"; # or "[::1]:8080"
listenCoap = ":5683"; # or "[::1]:5683" listenCoap = ":5683"; # or "[::1]:5683"
decode = true; # for http access via https://127.0.0.1:8080/uri-res/N2R?urn:eris:... decode = true; # for http access via https://127.0.0.1:8080/uri-res/N2R?urn:eris:...
package = pkgs.eris-go; # default package package = pkgs.eris-go; # default package
}; };
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. It's perfectly fine and recommended to leave # on your system were taken. It's perfectly fine and recommended to leave

View file

@ -1,15 +1,27 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/hardware/network/broadcom-43xx.nix") (modulesPath + "/hardware/network/broadcom-43xx.nix")
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [
"xhci_pci"
"nvme"
"usbhid"
"usb_storage"
"sd_mod"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.blacklistedKernelModules = [ ]; boot.blacklistedKernelModules = [ ];
@ -17,39 +29,51 @@
#rtl8192eu #rtl8192eu
]; ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/d56411cf-7072-48a8-aab7-70fb73695e64"; device = "/dev/disk/by-uuid/d56411cf-7072-48a8-aab7-70fb73695e64";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot/efi" = fileSystems."/boot/efi" = {
{ device = "/dev/disk/by-uuid/37E1-D07F"; device = "/dev/disk/by-uuid/37E1-D07F";
fsType = "vfat"; fsType = "vfat";
}; };
fileSystems."/mnt/nas/music" = fileSystems."/mnt/nas/music" = {
{ device = "192.168.1.2:/volume1/music";
device = "192.168.1.2:/volume1/music"; options = [
options = [ "nfsvers=4.2" "x-systemd.automount" "noauto" "rw" "relatime" "user" "acl" "defaults"]; "nfsvers=4.2"
fsType = "nfs"; "x-systemd.automount"
}; "noauto"
"rw"
"relatime"
"user"
"acl"
"defaults"
];
fsType = "nfs";
};
services.rpcbind.enable = true; # needed for NFS services.rpcbind.enable = true; # needed for NFS
systemd.mounts = [{ systemd.mounts = [
type = "nfs"; {
mountConfig = { type = "nfs";
Options = "defaults,acl,user,noauto,relatime,rw"; mountConfig = {
}; Options = "defaults,acl,user,noauto,relatime,rw";
what = "192.168.1.2:/volume1/music"; };
where = "/mnt/nas/music"; what = "192.168.1.2:/volume1/music";
}]; where = "/mnt/nas/music";
}
];
systemd.automounts = [{ systemd.automounts = [
wantedBy = [ "multi-user.target" ]; {
automountConfig = { wantedBy = [ "multi-user.target" ];
TimeoutIdleSec = "600"; automountConfig = {
}; TimeoutIdleSec = "600";
where = "/mnt/nas/music"; };
}]; where = "/mnt/nas/music";
}
];
swapDevices = [ ]; swapDevices = [ ];

View file

@ -1,10 +1,11 @@
# cli programs should be available on servers and desktop # cli programs should be available on servers and desktop
{ config, pkgs, ... }: { config, pkgs, ... }:
let let
unstable = import unstable =
(builtins.fetchTarball https://github.com/nixos/nixpkgs/tarball/7afa2c97ebb0585d00c64c112344483e89e00545) import
# reuse the current configuration (builtins.fetchTarball "https://github.com/nixos/nixpkgs/tarball/7afa2c97ebb0585d00c64c112344483e89e00545")
{ config = config.nixpkgs.config; }; # reuse the current configuration
{ config = config.nixpkgs.config; };
in in
{ {
programs.zsh.enable = true; programs.zsh.enable = true;

View file

@ -7,8 +7,8 @@
services = { services = {
openvpn.servers = { openvpn.servers = {
arn = { arn = {
config = '' config /home/mrflos/Nextcloud/vpn\ ARN/2023/vpn510.conf ''; config = ''config /home/mrflos/Nextcloud/vpn\ ARN/2023/vpn510.conf '';
autoStart = false; autoStart = false;
}; };
}; };
@ -62,25 +62,25 @@
}; };
droidcam.enable = true; droidcam.enable = true;
firefox.enable = true; firefox.enable = true;
firefox.languagePacks = ["fr"]; firefox.languagePacks = [ "fr" ];
hyprland.enable = true; hyprland.enable = true;
ssh.askPassword = pkgs.lib.mkForce "${pkgs.ksshaskpass.out}/bin/ksshaskpass"; # conflict between kde and gnome cf. https://github.com/NixOS/nixpkgs/issues/75867 ssh.askPassword = pkgs.lib.mkForce "${pkgs.ksshaskpass.out}/bin/ksshaskpass"; # conflict between kde and gnome cf. https://github.com/NixOS/nixpkgs/issues/75867
ssh.startAgent = true; ssh.startAgent = true;
steam.enable = true; steam.enable = true;
nix-ld.enable = true; nix-ld.enable = true;
# Sets up all the libraries to load # Sets up all the libraries to load
nix-ld.libraries = with pkgs; [ nix-ld.libraries = with pkgs; [
stdenv.cc.cc stdenv.cc.cc
zlib zlib
]; ];
}; };
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# no kde bloat # no kde bloat
environment.plasma5.excludePackages = with pkgs.libsForQt5; [ environment.plasma5.excludePackages = with pkgs.libsForQt5; [
baloo baloo
@ -93,32 +93,33 @@
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
(callPackage ./sddm-rose-pine.nix {}) (callPackage ./sddm-rose-pine.nix { })
(vscode-with-extensions.override { (vscode-with-extensions.override {
vscode = vscodium; vscode = vscodium;
vscodeExtensions = with vscode-extensions; [ vscodeExtensions =
#bmewburn.vscode-intelephense-client with vscode-extensions;
#dracula-theme.theme-dracula [
mvllow.rose-pine #bmewburn.vscode-intelephense-client
editorconfig.editorconfig #dracula-theme.theme-dracula
esbenp.prettier-vscode mvllow.rose-pine
github.github-vscode-theme editorconfig.editorconfig
gruntfuggly.todo-tree esbenp.prettier-vscode
jnoortheen.nix-ide github.github-vscode-theme
mhutchie.git-graph gruntfuggly.todo-tree
ms-ceintl.vscode-language-pack-fr jnoortheen.nix-ide
#junstyle.php-cs-fixer mhutchie.git-graph
#ms-vscode-remote.remote-ssh ms-ceintl.vscode-language-pack-fr
] #junstyle.php-cs-fixer
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ #ms-vscode-remote.remote-ssh
{ ]
name = "vscode-twig-language-2"; ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
publisher = "mblode"; {
version = "0.9.2"; name = "vscode-twig-language-2";
sha256 = "113w2iis4zi4z3sqc3vd2apyrh52hbh2gvmxjr5yvjpmrsksclbd"; publisher = "mblode";
} version = "0.9.2";
] sha256 = "113w2iis4zi4z3sqc3vd2apyrh52hbh2gvmxjr5yvjpmrsksclbd";
; }
];
}) })
(chromium.override { (chromium.override {
enableWideVine = true; # DRM support enableWideVine = true; # DRM support

View file

@ -1,5 +1,10 @@
# Inject the right home-manager config for the machine. # Inject the right home-manager config for the machine.
{ config, pkgs, lib, ... }: {
config,
pkgs,
lib,
...
}:
let let
plasma-manager = pkgs.fetchFromGitHub { plasma-manager = pkgs.fetchFromGitHub {
owner = "pjones"; owner = "pjones";
@ -8,19 +13,18 @@ let
sha256 = "sha256-LJ/lFEupLSi7xtUps234hhMk7ZdVLRoYeU7KiCFaoGw="; sha256 = "sha256-LJ/lFEupLSi7xtUps234hhMk7ZdVLRoYeU7KiCFaoGw=";
}; };
startupScript = pkgs.pkgs.writeShellScriptBin "hyprland-start" '' startupScript = pkgs.pkgs.writeShellScriptBin "hyprland-start" ''
${pkgs.waybar}/bin/waybar & ${pkgs.waybar}/bin/waybar &
${pkgs.swww}/bin/swww init & ${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 { in
{
# TODO can we automate the installation of home-manager ? # 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 # sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-24.05.tar.gz home-manager
imports = [ imports = [ <home-manager/nixos> ];
<home-manager/nixos>
];
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
#programs.home-manager.enable = true; #programs.home-manager.enable = true;
@ -29,323 +33,349 @@ in {
isNormalUser = true; isNormalUser = true;
description = "mrflos"; description = "mrflos";
createHome = true; createHome = true;
extraGroups = ["users" "docker" "libvirtd" "lxd" "networkmanager" "wheel" ]; extraGroups = [
"users"
"docker"
"libvirtd"
"lxd"
"networkmanager"
"wheel"
];
uid = 1000; uid = 1000;
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
nix.settings.trusted-users = [ "mrflos" ]; nix.settings.trusted-users = [ "mrflos" ];
home-manager.backupFileExtension = "backup"; home-manager.backupFileExtension = "backup";
home-manager.users.mrflos = { pkgs, ... }: { home-manager.users.mrflos =
home.stateVersion = "23.05"; { pkgs, ... }:
home.packages = with pkgs; [ {
gcc home.stateVersion = "23.05";
cmake home.packages = with pkgs; [
ripgrep gcc
fd cmake
lua-language-server ripgrep
rust-analyzer-unwrapped fd
php83Packages.composer lua-language-server
nodejs_20 rust-analyzer-unwrapped
swww php83Packages.composer
grimblast nodejs_20
swaylock swww
waybar grimblast
yarn swaylock
]; waybar
yarn
];
imports = [ imports = [
(plasma-manager + "/modules") (plasma-manager + "/modules")
./home-plasma.nix ./home-plasma.nix
]; ];
home.file = { home.file = {
"./.config/kitty/" = { "./.config/kitty/" = {
source = ../dotfiles/kitty; source = ../dotfiles/kitty;
recursive = true; recursive = true;
}; };
"./.config/nvim/" = { "./.config/nvim/" = {
source = ../dotfiles/nvim; source = ../dotfiles/nvim;
recursive = true; recursive = true;
}; };
"./.config/lazygit/" = { "./.config/lazygit/" = {
source = ../dotfiles/lazygit; source = ../dotfiles/lazygit;
recursive = true; recursive = true;
}; };
"./.config/tmux/" = { "./.config/tmux/" = {
source = ../dotfiles/tmux; source = ../dotfiles/tmux;
recursive = true; recursive = true;
};
}; };
}; home.sessionVariables = {
home.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
};
home.sessionPath = [
"$HOME/.local/bin"
"$HOME/go/bin"
];
accounts.email.accounts = {
"mrflos@chmok.net" = {
realName = "Florian Schmitt";
userName = "mrflos@chmok.net";
address = "mrflos@chmok.net";
primary = true;
thunderbird = { enable = true; };
imap = {
host = "mail.infomaniak.com";
port = 993;
};
smtp = {
host = "mail.infomaniak.com";
port = 465;
};
}; };
"mrflos@yeswiki.pro" = { home.sessionPath = [
realName = "Florian Schmitt - Yeswiki.pro"; "$HOME/.local/bin"
userName = "mrflos@yeswiki.pro"; "$HOME/go/bin"
address = "mrflos@yeswiki.pro"; ];
accounts.email.accounts = {
"mrflos@chmok.net" = {
realName = "Florian Schmitt";
userName = "mrflos@chmok.net";
address = "mrflos@chmok.net";
thunderbird = { enable = true; }; primary = true;
imap = { thunderbird = {
host = "mail.infomaniak.com"; enable = true;
port = 993; };
imap = {
host = "mail.infomaniak.com";
port = 993;
};
smtp = {
host = "mail.infomaniak.com";
port = 465;
};
}; };
"mrflos@yeswiki.pro" = {
realName = "Florian Schmitt - Yeswiki.pro";
userName = "mrflos@yeswiki.pro";
address = "mrflos@yeswiki.pro";
smtp = { thunderbird = {
host = "mail.infomaniak.com"; enable = true;
port = 465; };
imap = {
host = "mail.infomaniak.com";
port = 993;
};
smtp = {
host = "mail.infomaniak.com";
port = 465;
};
}; };
}; "mrflos@mrflos.pw" = {
"mrflos@mrflos.pw" = { realName = "Florian Schmitt";
realName = "Florian Schmitt"; userName = "mrflos";
userName = "mrflos"; address = "mrflos@mrflos.pw";
address = "mrflos@mrflos.pw";
primary = false; primary = false;
thunderbird = { enable = true; }; thunderbird = {
imap = { enable = true;
host = "mrflos.pw"; };
port = 993; imap = {
#tls.enable = true; host = "mrflos.pw";
#tls.useStartTls = true; port = 993;
#tls.enable = true;
#tls.useStartTls = true;
};
smtp = {
host = "mrflos.pw";
port = 587;
#tls.useStartTls = true;
};
}; };
"contact@yeswiki.pro" = {
realName = "YesWiki.pro";
userName = "contact@yeswiki.pro";
address = "contact@yeswiki.pro";
smtp = { primary = false;
host = "mrflos.pw"; thunderbird = {
port = 587; enable = true;
#tls.useStartTls = true; };
imap = {
host = "mail.infomaniak.com";
port = 993;
};
smtp = {
host = "mail.infomaniak.com";
port = 465;
};
}; };
}; "contact@yeswiki.net" = {
"contact@yeswiki.pro" = { realName = "YesWiki.net";
realName = "YesWiki.pro"; userName = "contact@yeswiki.net";
userName = "contact@yeswiki.pro"; address = "contact@yeswiki.net";
address = "contact@yeswiki.pro";
primary = false; primary = false;
thunderbird = { enable = true; }; thunderbird = {
imap = { enable = true;
host = "mail.infomaniak.com"; };
port = 993; imap = {
}; host = "mail.infomaniak.com";
port = 993;
};
smtp = { smtp = {
host = "mail.infomaniak.com"; host = "mail.infomaniak.com";
port = 465; port = 465;
}; };
};
"contact@yeswiki.net" = {
realName = "YesWiki.net";
userName = "contact@yeswiki.net";
address = "contact@yeswiki.net";
primary = false;
thunderbird = { enable = true; };
imap = {
host = "mail.infomaniak.com";
port = 993;
};
smtp = {
host = "mail.infomaniak.com";
port = 465;
};
};
};
programs = {
direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
git = {
enable = true;
userName = "Florian Schmitt";
userEmail = "mrflos@gmail.com";
aliases = {
fa = "fetch --all --tags --prune --recurse-submodules --force";
};
extraConfig = {
pull.rebase = true;
init.defaultBranch = "main";
core.editor = "nvim";
core.fileMode = false;
}; };
}; };
neovim = { programs = {
defaultEditor = true; direnv = {
viAlias = true;
vimAlias = true;
};
starship = {
enable = true;
settings = with builtins; fromTOML (readFile ../dotfiles/starship/starship.toml);
};
zsh = {
enable = true;
autosuggestion.enable = true;
enableCompletion = true;
shellAliases = {
#tmux = "tmux -f ~/.config/tmux/tmux.conf attach || tmux -f ~/.config/tmux/tmux.conf new";
bunx = "bun --bun x";
g = "lazygit";
kdenix = "nix run github:pjones/plasma-manager --extra-experimental-features nix-command --extra-experimental-features flakes > /home/mrflos/Developpements/nixos-config/modules/home-plasma.nix";
icat = "kitty +kitten icat";
nixedit = "vi /etc/nixos";
nixupdate = "sudo nix-channel --update && sudo nixos-rebuild switch";
nixclean = "sudo nix-env --delete-generations old --profile /nix/var/nix/profiles/system && sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch && sudo nix-store --gc";
socks = "ssh -N -f -C -D 9090 mrflos@yunohost.yeswiki.net -p 6742";
vi = "/run/current-system/sw/bin/nvim";
vim = "/run/current-system/sw/bin/nvim";
yeswiki-updater = "cd /home/mrflos/Developpements/yeswiki-installer/ && sudo php yeswiki-updater.php";
};
initExtra = ''
export BUN_INSTALL="$HOME/.bun"
export PHP_CS_FIXER_IGNORE_ENV=1
export PATH="$HOME/.local/bin:$BUN_INSTALL/bin:$PATH"
eval "$(atuin init zsh)"
eval "$(zoxide init zsh)"
'';
oh-my-zsh = {
enable = true; enable = true;
extraConfig = '' enableZshIntegration = true;
zstyle :omz:plugins:ssh-agent helper ksshaskpass nix-direnv.enable = true;
zstyle :omz:plugins:ssh-agent agent-forwarding yes };
zstyle :omz:plugins:ssh-agent lazy yes
git = {
enable = true;
userName = "Florian Schmitt";
userEmail = "mrflos@gmail.com";
aliases = {
fa = "fetch --all --tags --prune --recurse-submodules --force";
};
extraConfig = {
pull.rebase = true;
init.defaultBranch = "main";
core.editor = "nvim";
core.fileMode = false;
};
};
neovim = {
defaultEditor = true;
viAlias = true;
vimAlias = true;
};
starship = {
enable = true;
settings = with builtins; fromTOML (readFile ../dotfiles/starship/starship.toml);
};
zsh = {
enable = true;
autosuggestion.enable = true;
enableCompletion = true;
shellAliases = {
#tmux = "tmux -f ~/.config/tmux/tmux.conf attach || tmux -f ~/.config/tmux/tmux.conf new";
bunx = "bun --bun x";
g = "lazygit";
kdenix = "nix run github:pjones/plasma-manager --extra-experimental-features nix-command --extra-experimental-features flakes > /home/mrflos/Developpements/nixos-config/modules/home-plasma.nix";
icat = "kitty +kitten icat";
nixedit = "vi /etc/nixos";
nixupdate = "sudo nix-channel --update && sudo nixos-rebuild switch";
nixclean = "sudo nix-env --delete-generations old --profile /nix/var/nix/profiles/system && sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch && sudo nix-store --gc";
socks = "ssh -N -f -C -D 9090 mrflos@yunohost.yeswiki.net -p 6742";
vi = "/run/current-system/sw/bin/nvim";
vim = "/run/current-system/sw/bin/nvim";
yeswiki-updater = "cd /home/mrflos/Developpements/yeswiki-installer/ && sudo php yeswiki-updater.php";
};
initExtra = ''
export BUN_INSTALL="$HOME/.bun"
export PHP_CS_FIXER_IGNORE_ENV=1
export PATH="$HOME/.local/bin:$BUN_INSTALL/bin:$PATH"
eval "$(atuin init zsh)"
eval "$(zoxide init zsh)"
''; '';
plugins = [ "git" "ssh-agent" ]; oh-my-zsh = {
# theme = "robbyrussell"; enable = true;
extraConfig = ''
zstyle :omz:plugins:ssh-agent helper ksshaskpass
zstyle :omz:plugins:ssh-agent agent-forwarding yes
zstyle :omz:plugins:ssh-agent lazy yes
'';
plugins = [
"git"
"ssh-agent"
];
# theme = "robbyrussell";
};
}; };
}; };
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";
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, backspace, exec, wlogout-launcher-hyprland 1" # logout menu
"$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
# 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"
# Switch workspaces relative to the active workspace with mainMod + CTRL + [←→]
"$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"
# 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"
# 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"
# Scroll through existing workspaces with mainMod + scroll
"$mod, mouse_down, workspace, e+1"
"$mod, mouse_up, workspace, e-1"
# Special workspaces (scratchpad)
"$mod ALT, S, movetoworkspacesilent, special"
"$mod, S, togglespecialworkspace,"
# Toggle Layout
"$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
)
);
# 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"
];
};
}; };
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";
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, backspace, exec, wlogout-launcher-hyprland 1" # logout menu
"$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
# 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"
# Switch workspaces relative to the active workspace with mainMod + CTRL + [←→]
"$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"
# 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"
# 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"
# Scroll through existing workspaces with mainMod + scroll
"$mod, mouse_down, workspace, e+1"
"$mod, mouse_up, workspace, e-1"
# Special workspaces (scratchpad)
"$mod ALT, S, movetoworkspacesilent, special"
"$mod, S, togglespecialworkspace,"
# Toggle Layout
"$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)
);
# 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"
];
};
};
} }

View file

@ -45,21 +45,35 @@
"kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S"; "kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S";
"kcm_touchpad"."Disable Touchpad" = "Touchpad Off"; "kcm_touchpad"."Disable Touchpad" = "Touchpad Off";
"kcm_touchpad"."Enable Touchpad" = "Touchpad On"; "kcm_touchpad"."Enable Touchpad" = "Touchpad On";
"kcm_touchpad"."Toggle Touchpad" = ["Touchpad Toggle,Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku"]; "kcm_touchpad"."Toggle Touchpad" = [
"Touchpad Toggle,Touchpad Toggle"
"Meta+Ctrl+Zenkaku Hankaku"
];
"kded5"."Show System Activity" = "Ctrl+Esc"; "kded5"."Show System Activity" = "Ctrl+Esc";
"kded5"."display" = ["Display" "Meta+P,Display" "Meta+P,Changer d'affichage"]; "kded5"."display" = [
"Display"
"Meta+P,Display"
"Meta+P,Changer d'affichage"
];
"khotkeys"."{d03619b6-9b3c-48cc-9d9c-a2aadb485550}" = [ ]; "khotkeys"."{d03619b6-9b3c-48cc-9d9c-a2aadb485550}" = [ ];
"kitty.desktop"."_launch" = "Meta+T,none"; "kitty.desktop"."_launch" = "Meta+T,none";
"kmix"."decrease_microphone_volume" = "Microphone Volume Down"; "kmix"."decrease_microphone_volume" = "Microphone Volume Down";
"kmix"."decrease_volume" = "Volume Down"; "kmix"."decrease_volume" = "Volume Down";
"kmix"."increase_microphone_volume" = "Microphone Volume Up"; "kmix"."increase_microphone_volume" = "Microphone Volume Up";
"kmix"."increase_volume" = "Volume Up"; "kmix"."increase_volume" = "Volume Up";
"kmix"."mic_mute" = ["Microphone Mute" "Meta+Volume Mute,Microphone Mute" "Meta+Volume Mute,Couper le son du microphone"]; "kmix"."mic_mute" = [
"Microphone Mute"
"Meta+Volume Mute,Microphone Mute"
"Meta+Volume Mute,Couper le son du microphone"
];
"kmix"."mute" = "Volume Mute"; "kmix"."mute" = "Volume Mute";
"konversation"."next_active_tab" = [ ]; "konversation"."next_active_tab" = [ ];
"konversation"."toggle_mainwindow_visibility" = [ ]; "konversation"."toggle_mainwindow_visibility" = [ ];
"ksmserver"."Halt Without Confirmation" = "none,,Éteindre sans confirmation"; "ksmserver"."Halt Without Confirmation" = "none,,Éteindre sans confirmation";
"ksmserver"."Lock Session" = ["Screensaver,Meta+L" "Screensaver,Verrouiller la session"]; "ksmserver"."Lock Session" = [
"Screensaver,Meta+L"
"Screensaver,Verrouiller la session"
];
"ksmserver"."Log Out" = "Ctrl+Alt+Del"; "ksmserver"."Log Out" = "Ctrl+Alt+Del";
"ksmserver"."Log Out Without Confirmation" = "none,,Déconnexion sans confirmation"; "ksmserver"."Log Out Without Confirmation" = "none,,Déconnexion sans confirmation";
"ksmserver"."Reboot Without Confirmation" = "none,,Redémarrer sans confirmation"; "ksmserver"."Reboot Without Confirmation" = "none,,Redémarrer sans confirmation";
@ -67,7 +81,11 @@
"kwin"."Decrease Opacity" = "none,,Diminuer l'opacité de la fenêtre active de 5 %"; "kwin"."Decrease Opacity" = "none,,Diminuer l'opacité de la fenêtre active de 5 %";
"kwin"."Edit Tiles" = "none,Meta+T,Basculer ou sortir de l'éditeur de recouvrement"; "kwin"."Edit Tiles" = "none,Meta+T,Basculer ou sortir de l'éditeur de recouvrement";
"kwin"."Expose" = "Ctrl+F9"; "kwin"."Expose" = "Ctrl+F9";
"kwin"."ExposeAll" = ["Ctrl+F10" "Launch (C),Ctrl+F10" "Launch (C),Activer / désactiver la présentation des fenêtres (tous les bureaux)"]; "kwin"."ExposeAll" = [
"Ctrl+F10"
"Launch (C),Ctrl+F10"
"Launch (C),Activer / désactiver la présentation des fenêtres (tous les bureaux)"
];
"kwin"."ExposeClass" = "Ctrl+F7"; "kwin"."ExposeClass" = "Ctrl+F7";
"kwin"."ExposeClassCurrentDesktop" = [ ]; "kwin"."ExposeClassCurrentDesktop" = [ ];
"kwin"."Grid-Tiling: Close Desktop" = [ ]; "kwin"."Grid-Tiling: Close Desktop" = [ ];
@ -198,7 +216,10 @@
"kwin"."Walk Through Windows of Current Application Alternative (Reverse)" = "none,,Naviguer parmi les fenêtres de l'application alternative courante (en ordre inverse)"; "kwin"."Walk Through Windows of Current Application Alternative (Reverse)" = "none,,Naviguer parmi les fenêtres de l'application alternative courante (en ordre inverse)";
"kwin"."Window Above Other Windows" = "none,,Conserver une fenêtre au-dessus des autres"; "kwin"."Window Above Other Windows" = "none,,Conserver une fenêtre au-dessus des autres";
"kwin"."Window Below Other Windows" = "none,,Conserver une fenêtre au-dessous des autres"; "kwin"."Window Below Other Windows" = "none,,Conserver une fenêtre au-dessous des autres";
"kwin"."Window Close" = ["Alt+F4" "Meta+Q,Alt+F4,Fermer une fenêtre"]; "kwin"."Window Close" = [
"Alt+F4"
"Meta+Q,Alt+F4,Fermer une fenêtre"
];
"kwin"."Window Fullscreen" = "none,,Mettre une fenêtre en plein écran"; "kwin"."Window Fullscreen" = "none,,Mettre une fenêtre en plein écran";
"kwin"."Window Grow Horizontal" = "none,,Maximiser horizontalement une fenêtre"; "kwin"."Window Grow Horizontal" = "none,,Maximiser horizontalement une fenêtre";
"kwin"."Window Grow Vertical" = "none,,Maximiser verticalement une fenêtre"; "kwin"."Window Grow Vertical" = "none,,Maximiser verticalement une fenêtre";
@ -206,7 +227,10 @@
"kwin"."Window Maximize" = "Meta+PgUp"; "kwin"."Window Maximize" = "Meta+PgUp";
"kwin"."Window Maximize Horizontal" = "none,,Maximiser horizontalement une fenêtre"; "kwin"."Window Maximize Horizontal" = "none,,Maximiser horizontalement une fenêtre";
"kwin"."Window Maximize Vertical" = "none,,Maximiser verticalement une fenêtre"; "kwin"."Window Maximize Vertical" = "none,,Maximiser verticalement une fenêtre";
"kwin"."Window Minimize" = ["Meta+PgDown" "Meta+M,Meta+PgDown,Réduire une fenêtre"]; "kwin"."Window Minimize" = [
"Meta+PgDown"
"Meta+M,Meta+PgDown,Réduire une fenêtre"
];
"kwin"."Window Move" = "none,,Déplacer une fenêtre"; "kwin"."Window Move" = "none,,Déplacer une fenêtre";
"kwin"."Window Move Center" = "none,,Déplacer la fenêtre au centre"; "kwin"."Window Move Center" = "none,,Déplacer la fenêtre au centre";
"kwin"."Window No Border" = "none,,Afficher / Masquer la barre de titre et la bordure"; "kwin"."Window No Border" = "none,,Afficher / Masquer la barre de titre et la bordure";
@ -270,7 +294,11 @@
"kwin"."Window to Screen 6" = "none,,Envoyer la fenêtre sur l'écran 6"; "kwin"."Window to Screen 6" = "none,,Envoyer la fenêtre sur l'écran 6";
"kwin"."Window to Screen 7" = "none,,Envoyer la fenêtre sur l'écran 7"; "kwin"."Window to Screen 7" = "none,,Envoyer la fenêtre sur l'écran 7";
"kwin"."view_actual_size" = "Meta+0"; "kwin"."view_actual_size" = "Meta+0";
"kwin"."view_zoom_in" = ["Meta++" "Meta+=,Meta++" "Meta+=,Zoom avant"]; "kwin"."view_zoom_in" = [
"Meta++"
"Meta+=,Meta++"
"Meta+=,Zoom avant"
];
"kwin"."view_zoom_out" = "Meta+-"; "kwin"."view_zoom_out" = "Meta+-";
"lattedock"."activate entry 1" = "none,Meta+1,Activer l'entrée 1"; "lattedock"."activate entry 1" = "none,Meta+1,Activer l'entrée 1";
"lattedock"."activate entry 10" = "none,Meta+0,Activer l'entrée 10"; "lattedock"."activate entry 10" = "none,Meta+0,Activer l'entrée 10";
@ -326,8 +354,15 @@
"org.kde.konsole.desktop"."NewWindow" = [ ]; "org.kde.konsole.desktop"."NewWindow" = [ ];
"org.kde.konsole.desktop"."_launch" = "Ctrl+Alt+T,none"; "org.kde.konsole.desktop"."_launch" = "Ctrl+Alt+T,none";
"org.kde.krunner.desktop"."RunClipboard" = "Alt+Shift+F2,none"; "org.kde.krunner.desktop"."RunClipboard" = "Alt+Shift+F2,none";
"org.kde.krunner.desktop"."_launch" = ["Alt+Space" "Alt+F2" "Search,none"]; "org.kde.krunner.desktop"."_launch" = [
"org.kde.plasma.emojier.desktop"."_launch" = ["Meta+." "Meta+Ctrl+Alt+Shift+Space,none"]; "Alt+Space"
"Alt+F2"
"Search,none"
];
"org.kde.plasma.emojier.desktop"."_launch" = [
"Meta+."
"Meta+Ctrl+Alt+Shift+Space,none"
];
"org.kde.spectacle.desktop"."ActiveWindowScreenShot" = "Meta+Print,none"; "org.kde.spectacle.desktop"."ActiveWindowScreenShot" = "Meta+Print,none";
"org.kde.spectacle.desktop"."CurrentMonitorScreenShot" = [ ]; "org.kde.spectacle.desktop"."CurrentMonitorScreenShot" = [ ];
"org.kde.spectacle.desktop"."FullScreenScreenShot" = "Shift+Print,none"; "org.kde.spectacle.desktop"."FullScreenScreenShot" = "Shift+Print,none";
@ -1090,7 +1125,7 @@
"kwinrc"."Tiling/ed6da6d2-dc03-5e69-aae5-b2fee83fe2cd"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}"; "kwinrc"."Tiling/ed6da6d2-dc03-5e69-aae5-b2fee83fe2cd"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
"kwinrc"."Windows"."AutoRaise" = true; "kwinrc"."Windows"."AutoRaise" = true;
"kwinrc"."Windows"."AutoRaiseInterval" = 300; "kwinrc"."Windows"."AutoRaiseInterval" = 300;
"kwinrc"."Windows"."ElectricBorderCornerRatio" = 0.01; "kwinrc"."Windows"."ElectricBorderCornerRatio" = 1.0e-2;
"kwinrc"."Windows"."Placement" = "Maximizing"; "kwinrc"."Windows"."Placement" = "Maximizing";
"kwinrc"."Windows"."RollOverDesktops" = true; "kwinrc"."Windows"."RollOverDesktops" = true;
"kwinrc"."Xwayland"."Scale" = 1.75; "kwinrc"."Xwayland"."Scale" = 1.75;

View file

@ -1,5 +1,11 @@
# Local developpement # Local developpement
{ pkgs, config, lib, ... }: { {
pkgs,
config,
lib,
...
}:
{
virtualisation = { virtualisation = {
docker.enable = true; docker.enable = true;
#docker.rootless = { #docker.rootless = {
@ -17,31 +23,34 @@
${pkgs.systemd}/bin/systemctl start mysql ${pkgs.systemd}/bin/systemctl start mysql
# etc # etc
''; '';
serviceConfig = let serviceConfig =
startstop = command: let
(pkgs.writeShellApplication { startstop =
name = "yeswikidev"; command:
runtimeInputs = with pkgs; [ systemd ]; (pkgs.writeShellApplication {
text = '' name = "yeswikidev";
systemctl ${command} mysql.service runtimeInputs = with pkgs; [ systemd ];
''; text = ''
}); systemctl ${command} mysql.service
#startstopFullShell = pkgs.writeShellApplication { '';
# name = "yeswikidev"; });
# runtimeInputs = with pkgs; [ systemd ]; #startstopFullShell = pkgs.writeShellApplication {
# text = '' # name = "yeswikidev";
# systemctl "$1" mysql.service # runtimeInputs = with pkgs; [ systemd ];
# ''; # text = ''
#}); # systemctl "$1" mysql.service
#commands = [ "start" "stop" ]; # '';
#scripts = map (command: (pkgs.writeShellApplication { #});
# name = "yeswikidev"; #commands = [ "start" "stop" ];
# runtimeInputs = with pkgs; [ systemd ]; #scripts = map (command: (pkgs.writeShellApplication {
# text = '' # name = "yeswikidev";
# systemctl ${command} mysql.service # runtimeInputs = with pkgs; [ systemd ];
# ''; # text = ''
#})) commands; # systemctl ${command} mysql.service
# '';
#})) commands;
in
#execs = { #execs = {
# ExecStart = "start"; # ExecStart = "start";
# ExecStop = "stop"; # ExecStop = "stop";
@ -50,17 +59,17 @@
# https://nixos.org/manual/nix/stable/language/builtins#builtins-mapAttrs # https://nixos.org/manual/nix/stable/language/builtins#builtins-mapAttrs
#execAttrs = attrNames execs; # ["Start" "Stop"]; #execAttrs = attrNames execs; # ["Start" "Stop"];
#execs2 = mapAttrs (k: v: ()) execs; #execs2 = mapAttrs (k: v: ()) execs;
in { {
# pkgs.writeScript, pkgs.writeScriptBin # pkgs.writeScript, pkgs.writeScriptBin
#ExecStart = startstop "start"; #ExecStart = startstop "start";
#ExecStop = startstop "stop"; #ExecStop = startstop "stop";
# OR # OR
# ExecStart = "${startstopFullShell} start"; # ExecStart = "${startstopFullShell} start";
# ExecStop = "${startstopFullShell} stop"; # ExecStop = "${startstopFullShell} stop";
# OR # OR
# ExecStart = "${scripts[0]}"; # ExecStart = "${scripts[0]}";
# ExecStop = "${scripts[1]}"; # ExecStop = "${scripts[1]}";
}; };
}; };
services.mysql = { services.mysql = {
@ -70,45 +79,47 @@
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; environment.systemPackages =
let with pkgs;
php83 = pkgs.php83.buildEnv { extraConfig = "memory_limit = 2G"; }; let
in [ php83 = pkgs.php83.buildEnv { extraConfig = "memory_limit = 2G"; };
#clang in
dart-sass [
dbeaver-bin #clang
docker-compose dart-sass
eris-go dbeaver-bin
gcc docker-compose
go eris-go
nixfmt-rfc-style gcc
lua go
lua-language-server nixfmt-rfc-style
luarocks lua
nixpkgs-fmt lua-language-server
nodejs luarocks
nodePackages.eslint nixpkgs-fmt
nodePackages.prettier nodejs
php83 nodePackages.eslint
php83Packages.composer nodePackages.prettier
php83Packages.php-cs-fixer php83
python3 php83Packages.composer
python311Packages.virtualenv php83Packages.php-cs-fixer
rpi-imager python3
ruff-lsp python311Packages.virtualenv
stylelint rpi-imager
symfony-cli ruff-lsp
tree-sitter stylelint
virt-manager symfony-cli
yarn tree-sitter
zig virt-manager
# image optimizers yarn
image_optim zig
nodePackages.svgo # image optimizers
jpegoptim image_optim
optipng nodePackages.svgo
pngquant jpegoptim
gifsicle optipng
libwebp pngquant
]; gifsicle
libwebp
];
} }

View file

@ -1,11 +1,11 @@
{ {
# Auto system update # Auto system update
system.autoUpgrade = { system.autoUpgrade = {
enable = true; enable = true;
}; };
nix.settings.experimental-features = [ "nix-command" ]; nix.settings.experimental-features = [ "nix-command" ];
# Automatic Garbage Collection # Automatic Garbage Collection
nix.gc = { nix.gc = {
automatic = true; automatic = true;
@ -14,7 +14,5 @@
}; };
# TODO : find what is installing this, probably obsidian? # TODO : find what is installing this, probably obsidian?
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ];
"electron-25.9.0"
];
} }

View file

@ -1,6 +1,7 @@
{ stdenvNoCC {
, fetchFromGitHub stdenvNoCC,
, libsForQt5 fetchFromGitHub,
libsForQt5,
}: }:
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
@ -8,9 +9,7 @@ stdenvNoCC.mkDerivation rec {
version = "1.2"; version = "1.2";
dontBuild = true; dontBuild = true;
propagatedUserEnvPkgs = [ propagatedUserEnvPkgs = [ libsForQt5.qt5.qtgraphicaleffects ];
libsForQt5.qt5.qtgraphicaleffects
];
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lwndhrst"; owner = "lwndhrst";