add niri
This commit is contained in:
parent
9be597750d
commit
00ca4baa74
41 changed files with 795 additions and 113 deletions
1
dotfiles/hypr/.luarc.json
Symbolic link
1
dotfiles/hypr/.luarc.json
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/nix/store/r3344bjbakm2dxxl79bfps7q65lrh0a4-home-manager-files/.config/hypr/.luarc.json
|
||||
1
dotfiles/hypr/conf/conf
Symbolic link
1
dotfiles/hypr/conf/conf
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/home/afoucaultc/nixos-config/dotfiles/hypr/conf
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
require("conf.variables")
|
||||
require("conf.binding")
|
||||
require("conf.env")
|
||||
require("conf.input")
|
||||
require("conf.others")
|
||||
require("conf.monitor")
|
||||
require("conf.startup")
|
||||
require("conf.style")
|
||||
require("conf.windowrules")
|
||||
require("conf.workspace")
|
||||
1
dotfiles/hypr/hyprland.lua
Symbolic link
1
dotfiles/hypr/hyprland.lua
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/nix/store/r3344bjbakm2dxxl79bfps7q65lrh0a4-home-manager-files/.config/hypr/hyprland.lua
|
||||
118
dotfiles/hypr/hyprlock.conf
Normal file
118
dotfiles/hypr/hyprlock.conf
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
source = ~/.config/hypr/variables.conf
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = ~/nixos-config/dotfiles/hypr/wallpaper/nix-wallpaper.png
|
||||
blur_passes = 2
|
||||
contrast = 0.8916
|
||||
brightness = 0.8172
|
||||
zsh:1: command not found: q
|
||||
vibrancy_darkness = 0.3
|
||||
}
|
||||
|
||||
# GENERAL
|
||||
general {
|
||||
no_fade_in = false
|
||||
grace = 0
|
||||
disable_loading_bar = false
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(date +"%A, %B %d")"
|
||||
color = rgba(255,255,255, 0.75)
|
||||
font_size = 22
|
||||
font_family = Luciole
|
||||
position = 0, 100
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo -e "$(LC_TIME=en_US.UTF-8 date +"%A, %B %d")"
|
||||
color = rgba(216, 222, 233, 0.90)
|
||||
font_size = 25
|
||||
font_family = SF Pro Display Semibold
|
||||
position = 0, 350
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<span>$(date +"%I:%M")</span>"
|
||||
color = rgba(216, 222, 233, 0.90)
|
||||
font_size = 120
|
||||
font_family = SF Pro Display Bold
|
||||
position = 0, 230
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# User info
|
||||
label {
|
||||
monitor =
|
||||
text = $USER
|
||||
color = rgba(216, 222, 233, 0.80)
|
||||
outline_thickness = 2
|
||||
dots_size = 0.2
|
||||
dots_spacing = 0.2
|
||||
dots_center = true
|
||||
font_size = 18
|
||||
font_family = SF Pro Display Bold
|
||||
position = 0, -130
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
shape {
|
||||
monitor =
|
||||
size = 280, 55
|
||||
color = rgba(255, 255, 255, .1)
|
||||
rounding = -1
|
||||
border_size = 0
|
||||
border_color = rgba(253, 198, 135, 0)
|
||||
rotate = 0
|
||||
xray = false
|
||||
position = 0, -130
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 280, 55
|
||||
outline_thickness = 2
|
||||
dots_size = 0.2 # Password dot size (0.2-0.8)
|
||||
dots_spacing = 0.2 # Spacing between dots (0.0-1.0)
|
||||
dots_center = true # Center dots in field
|
||||
outer_color = rgba(0, 0, 0, 0)
|
||||
inner_color = rgba(255, 255, 255, 0.1)
|
||||
font_color = rgb(200, 200, 200)
|
||||
fade_on_empty = false
|
||||
font_family = SF Pro Display Bold
|
||||
placeholder_text = <i><span foreground="##ffffff99"> Enter Pass</span></i>
|
||||
hide_input = false # Show/hide password dots
|
||||
position = 0, -210
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:30000] echo "🔋 $(cat /sys/class/power_supply/BAT0/capacity)%"
|
||||
color = rgba(255, 255, 255, 0.8)
|
||||
font_size = 14
|
||||
position = -50, 50
|
||||
halign = right
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
|
||||
auth {
|
||||
fingerprint:enabled=true
|
||||
}
|
||||
|
||||
6
dotfiles/hypr/hyprpaper.conf
Normal file
6
dotfiles/hypr/hyprpaper.conf
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
wallpaper {
|
||||
monitor =
|
||||
path = /home/afoucaultc/nixos-config/dotfiles/hypr/wallpaper/nix-wallpaper.png
|
||||
fit_mode = cover
|
||||
}
|
||||
splash = false
|
||||
|
|
@ -1 +1 @@
|
|||
/nix/store/5c3dhhcvzlwrdj4d24wqkj15fhmy9zpx-home-manager-files/.config/inkscape/palettes
|
||||
/nix/store/r3344bjbakm2dxxl79bfps7q65lrh0a4-home-manager-files/.config/inkscape/palettes
|
||||
|
|
@ -1 +1 @@
|
|||
/nix/store/5c3dhhcvzlwrdj4d24wqkj15fhmy9zpx-home-manager-files/.config/inkscape/templates
|
||||
/nix/store/r3344bjbakm2dxxl79bfps7q65lrh0a4-home-manager-files/.config/inkscape/templates
|
||||
|
|
@ -1 +1 @@
|
|||
/nix/store/5c3dhhcvzlwrdj4d24wqkj15fhmy9zpx-home-manager-files/.config/kitty/kitty.conf
|
||||
/nix/store/r3344bjbakm2dxxl79bfps7q65lrh0a4-home-manager-files/.config/kitty/kitty.conf
|
||||
108
flake.lock
generated
108
flake.lock
generated
|
|
@ -528,6 +528,64 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri": {
|
||||
"inputs": {
|
||||
"niri-stable": "niri-stable",
|
||||
"niri-unstable": "niri-unstable",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1785857305,
|
||||
"narHash": "sha256-25q05zpF1sqOCxPPUG9DPPGd+EDW7SiAOWCzBWRS7r0=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "9ee3e13b60643448228353097880521658b2fe0e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri-stable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1756556321,
|
||||
"narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "YaLTeR",
|
||||
"ref": "v25.08",
|
||||
"repo": "niri",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1785701241,
|
||||
"narHash": "sha256-ircVOzPWRircI39ac/tqJajr5OoJxEVrDlBb05TULEk=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "feb3e43f1475e0865bb89cbd1e898b34d1d2ccf6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
|
|
@ -562,6 +620,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1782847189,
|
||||
"narHash": "sha256-twXPFqFsrrY5r28Zh7Homgcp2gUMBgQ6WDS98Q/3xFI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b6018f87da91d19d0ab4cf979885689b469cdd41",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1767892417,
|
||||
|
|
@ -642,6 +716,7 @@
|
|||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"hyprland": "hyprland",
|
||||
"niri": "niri",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"stylix": "stylix",
|
||||
|
|
@ -816,6 +891,39 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xwayland-satellite-stable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1755491097,
|
||||
"narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "388d291e82ffbc73be18169d39470f340707edaa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Supreeeme",
|
||||
"ref": "v0.7",
|
||||
"repo": "xwayland-satellite",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xwayland-satellite-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1784679892,
|
||||
"narHash": "sha256-Mb7jpqnrcYCfNSItIkkHpuR3YxWFxPuIBfcwNKlRBkk=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "8d135d3b2854b30fd01ea6cd6c27e523dd50a839",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zen-browser": {
|
||||
"inputs": {
|
||||
"home-manager": [
|
||||
|
|
|
|||
|
|
@ -12,6 +12,11 @@
|
|||
# flake hyprland (git version)
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||
# flake niri (git version
|
||||
niri = {
|
||||
url = "github:sodiboo/niri-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# zen browser (communautaire) — follows pour partager les libs système
|
||||
zen-browser = {
|
||||
url = "github:0xc000022070/zen-browser-flake";
|
||||
|
|
@ -35,6 +40,7 @@
|
|||
nixpkgs,
|
||||
home-manager,
|
||||
hyprland,
|
||||
niri,
|
||||
nixos-hardware,
|
||||
zen-browser,
|
||||
stylix,
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
./packages/neovim.nix
|
||||
./packages/nextcloud.nix
|
||||
./packages/other_apps_light.nix
|
||||
./packages/pass.nix
|
||||
./packages/protonmail.nix
|
||||
./packages/python.nix
|
||||
./packages/texlive.nix
|
||||
|
|
|
|||
|
|
@ -14,11 +14,10 @@
|
|||
./packages/mpv.nix
|
||||
#./packages/music.nix
|
||||
./packages/neovim.nix
|
||||
./packages/niri.nix
|
||||
./packages/niri/niri.nix
|
||||
./packages/nextcloud.nix
|
||||
./packages/obs.nix
|
||||
./packages/other_apps.nix
|
||||
./packages/pass.nix
|
||||
./packages/protonmail.nix
|
||||
./packages/python.nix
|
||||
./packages/texlive.nix
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, inputs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
|
@ -48,7 +49,9 @@ in
|
|||
slurp
|
||||
];
|
||||
|
||||
# Force le symlink hors-store, sans passer par dotfiles_apps
|
||||
home.file.".config/hypr/conf".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos-config/dotfiles/hypr/conf";
|
||||
home.activation.symlinkHyprConf = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
mkdir -p ${config.home.homeDirectory}/.config/hypr
|
||||
unlink ${config.home.homeDirectory}/.config/hypr/conf 2>/dev/null || true
|
||||
ln -sf ${config.home.homeDirectory}/nixos-config/dotfiles/hypr/conf ${config.home.homeDirectory}/.config/hypr/conf
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,44 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# --- DAW principal ---
|
||||
lmms
|
||||
|
||||
# --- Boîte à rythmes ---
|
||||
hydrogen
|
||||
drumgizmo
|
||||
|
||||
# --- SoundFonts ---
|
||||
soundfont-fluid
|
||||
soundfont-generaluser-gs
|
||||
|
||||
# --- Synthés (LV2/VST) ---
|
||||
surge-xt
|
||||
zynaddsubfx
|
||||
yoshimi
|
||||
helm
|
||||
vital
|
||||
|
||||
# --- Effets LV2 ---
|
||||
calf
|
||||
lsp-plugins
|
||||
x42-plugins
|
||||
|
||||
# --- Sampling / édition ---
|
||||
audacity
|
||||
|
||||
# --- Utilitaires ---
|
||||
qpwgraph
|
||||
sonic-visualiser
|
||||
];
|
||||
|
||||
# Aide les hôtes LV2/VST à trouver les plugins installés via Nix
|
||||
home.sessionVariables = {
|
||||
LV2_PATH = "$HOME/.nix-profile/lib/lv2";
|
||||
LADSPA_PATH = "$HOME/.nix-profile/lib/ladspa";
|
||||
DSSI_PATH = "$HOME/.nix-profile/lib/dssi";
|
||||
VST_PATH = "$HOME/.nix-profile/lib/vst";
|
||||
VST3_PATH = "$HOME/.nix-profile/lib/vst3";
|
||||
};
|
||||
}
|
||||
55
home/afoucaultc/packages/niri/conf/animations.nix
Normal file
55
home/afoucaultc/packages/niri/conf/animations.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.animations = {
|
||||
enable = true;
|
||||
slowdown = 1.0;
|
||||
|
||||
workspace-switch.spring = {
|
||||
damping-ratio = 1.0;
|
||||
stiffness = 1000;
|
||||
epsilon = 0.0001;
|
||||
};
|
||||
|
||||
window-open = {
|
||||
duration-ms = 150;
|
||||
curve = "ease-out-expo";
|
||||
};
|
||||
|
||||
window-close = {
|
||||
duration-ms = 150;
|
||||
curve = "ease-out-quad";
|
||||
};
|
||||
|
||||
horizontal-view-movement.spring = {
|
||||
damping-ratio = 1.0;
|
||||
stiffness = 800;
|
||||
epsilon = 0.0001;
|
||||
};
|
||||
|
||||
window-movement.spring = {
|
||||
damping-ratio = 1.0;
|
||||
stiffness = 800;
|
||||
epsilon = 0.0001;
|
||||
};
|
||||
|
||||
window-resize.spring = {
|
||||
damping-ratio = 1.0;
|
||||
stiffness = 800;
|
||||
epsilon = 0.0001;
|
||||
};
|
||||
|
||||
config-notification-open-close.spring = {
|
||||
damping-ratio = 0.6;
|
||||
stiffness = 1000;
|
||||
epsilon = 0.001;
|
||||
};
|
||||
|
||||
screenshot-ui-open.duration-ms = 200;
|
||||
|
||||
overview-open-close.spring = {
|
||||
damping-ratio = 1.0;
|
||||
stiffness = 800;
|
||||
epsilon = 0.0001;
|
||||
};
|
||||
};
|
||||
}
|
||||
16
home/afoucaultc/packages/niri/conf/gestures.nix
Normal file
16
home/afoucaultc/packages/niri/conf/gestures.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.gestures = {
|
||||
dnd-edge-view-scroll = {
|
||||
trigger-width = 30;
|
||||
delay-ms = 100;
|
||||
max-speed = 1500;
|
||||
};
|
||||
dnd-edge-workspace-switch = {
|
||||
trigger-height = 50;
|
||||
delay-ms = 100;
|
||||
max-speed = 1500;
|
||||
};
|
||||
hot-corners.enable = true;
|
||||
};
|
||||
}
|
||||
51
home/afoucaultc/packages/niri/conf/input.nix
Normal file
51
home/afoucaultc/packages/niri/conf/input.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.input = {
|
||||
keyboard = {
|
||||
xkb = {
|
||||
layout = "fr";
|
||||
variant = "";
|
||||
model = "";
|
||||
rules = "";
|
||||
options = "caps:escape";
|
||||
};
|
||||
repeat-delay = 600;
|
||||
repeat-rate = 25;
|
||||
track-layout = "global";
|
||||
numlock = true;
|
||||
};
|
||||
touchpad = {
|
||||
off = true;
|
||||
tap = true;
|
||||
dwt = true;
|
||||
dwtp = true;
|
||||
drag = true;
|
||||
drag-lock = false;
|
||||
natural-scroll = true;
|
||||
accel-speed = 0.0;
|
||||
accel-profile = "adaptive";
|
||||
scroll-method = "two-finger";
|
||||
tap-button-map = "left-middle-right";
|
||||
click-method = "clickfinger";
|
||||
middle-emulation = false;
|
||||
scroll-factor = 1.2;
|
||||
};
|
||||
|
||||
mouse = {
|
||||
natural-scroll = false;
|
||||
accel-speed = -0.3;
|
||||
accel-profile = "flat";
|
||||
scroll-factor = 1.2;
|
||||
scroll-method = null;
|
||||
};
|
||||
|
||||
mouse-scroll-factor = 1.0;
|
||||
touchpad-scroll-factor = 1.0;
|
||||
|
||||
focus-follows-mouse = {
|
||||
enable = true;
|
||||
# max-scroll-amount = "0%";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
122
home/afoucaultc/packages/niri/conf/keybind.nix
Normal file
122
home/afoucaultc/packages/niri/conf/keybind.nix
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.binds = {
|
||||
# open programs
|
||||
"ALT+Q".action.spawn = "kitty";
|
||||
"ALT+W".action.spawn = "fuzzel";
|
||||
"ALT+D".action.spawn = "dolphin";
|
||||
"ALT+N".action.spawn = [
|
||||
"kitty"
|
||||
"-e"
|
||||
"nvim"
|
||||
];
|
||||
"Alt+F".spawn = [ "zen-beta" ];
|
||||
"Alt+Z".spawn = [ "zotero" ];
|
||||
"Alt+T".spawn = [ "thunderbird" ];
|
||||
|
||||
# other actions
|
||||
"ALT+F4".action.close-window = { };
|
||||
"ALT+V".toggle-window-floating = { };
|
||||
"ALT+M".maximize-column = { };
|
||||
"ALT+F".fullscreen-window = { };
|
||||
|
||||
"ALT+H".focus-column-left = { };
|
||||
"ALT+L".focus-column-right = { };
|
||||
"ALT+K".focus-window-up = { };
|
||||
"ALT+J".focus-window-down = { };
|
||||
|
||||
"Ctrl+Super+H".move-column-left = { };
|
||||
"Ctrl+Super+L".move-column-right = { };
|
||||
"Ctrl+Super+K".move-window-up = { };
|
||||
"Ctrl+Super+J".move-window-down = { };
|
||||
|
||||
"Super+L".focus-workspace-down = { };
|
||||
"Super+H".focus-workspace-up = { };
|
||||
"Super+K".move-column-to-workspace-down = { };
|
||||
"Super+J".move-column-to-workspace-up = { };
|
||||
|
||||
"Alt+A".focus-monitor-left = { };
|
||||
"Alt+B".focus-monitor-right = { };
|
||||
"Ctrl+Super+A".move-column-to-monitor-left = { };
|
||||
"Ctrl+Super+B".move-column-to-monitor-right = { };
|
||||
|
||||
"Alt+R".switch-preset-column-width = { };
|
||||
"Ctrl+H".set-column-width = [ "-10%" ];
|
||||
"Ctrl+L".set-column-width = [ "+10%" ];
|
||||
"Ctrl+K".action.set-window-height = "-10%";
|
||||
"Ctrl+J".action.set-window-height = "+10%";
|
||||
|
||||
"Print".screenshot = { };
|
||||
"Ctrl+Print".screenshot-screen = { };
|
||||
"Alt+Print".screenshot-window = { };
|
||||
|
||||
# multimédia / luminosité
|
||||
"XF86MonBrightnessUp" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn = [
|
||||
"brightnessctl"
|
||||
"-e4"
|
||||
"-n2"
|
||||
"set"
|
||||
"5%+"
|
||||
];
|
||||
};
|
||||
"XF86MonBrightnessDown" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn = [
|
||||
"brightnessctl"
|
||||
"-e4"
|
||||
"-n2"
|
||||
"set"
|
||||
"5%-"
|
||||
];
|
||||
};
|
||||
"XF86AudioRaiseVolume" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"-l"
|
||||
"1"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"5%+"
|
||||
];
|
||||
};
|
||||
"XF86AudioLowerVolume" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"5%-"
|
||||
];
|
||||
};
|
||||
"XF86AudioMute" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn = [
|
||||
"wpctl"
|
||||
"set-mute"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"toggle"
|
||||
];
|
||||
};
|
||||
"XF86AudioMicMute" = {
|
||||
_props.allow-when-locked = true;
|
||||
spawn = [
|
||||
"wpctl"
|
||||
"set-mute"
|
||||
"@DEFAULT_AUDIO_SOURCE@"
|
||||
"toggle"
|
||||
];
|
||||
};
|
||||
|
||||
# Verrouillage d'écran
|
||||
"Ctrl+Alt+L".action = {
|
||||
spawn = [ "swaylock" ];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
# Aperçu global (overview)
|
||||
"Alt+Tab".action.toggle-overview = { };
|
||||
};
|
||||
}
|
||||
13
home/afoucaultc/packages/niri/conf/layer-rules.nix
Normal file
13
home/afoucaultc/packages/niri/conf/layer-rules.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.layer-rules = [
|
||||
{
|
||||
matches = [ { namespace = "^notifications$"; } ];
|
||||
block-out-from = "screen-capture";
|
||||
}
|
||||
{
|
||||
matches = [ { namespace = "^waybar$"; } ];
|
||||
place-within-backdrop = false;
|
||||
}
|
||||
];
|
||||
}
|
||||
5
home/afoucaultc/packages/niri/conf/layerrules.nix
Normal file
5
home/afoucaultc/packages/niri/conf/layerrules.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.ENTER = {
|
||||
};
|
||||
}
|
||||
79
home/afoucaultc/packages/niri/conf/layout.nix
Normal file
79
home/afoucaultc/packages/niri/conf/layout.nix
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.layout = {
|
||||
gaps = 16;
|
||||
center-focused-column = "never"; # never, always, on-overflow
|
||||
always-center-single-column = false;
|
||||
|
||||
preset-column-widths._children = [
|
||||
{ proportion = 0.33333; }
|
||||
{ proportion = 0.5; }
|
||||
{ proportion = 0.66667; }
|
||||
];
|
||||
|
||||
default-column-width.proportion = 0.5;
|
||||
|
||||
preset-window-heights = [
|
||||
{ proportion = 0.33333; }
|
||||
{ proportion = 0.5; }
|
||||
{ proportion = 0.66667; }
|
||||
];
|
||||
|
||||
focus-ring = {
|
||||
enable = true;
|
||||
width = 4;
|
||||
# active.color = "#7fc8ff";
|
||||
# inactive.color = "#505050";
|
||||
# urgent.color = "#9b0000";
|
||||
};
|
||||
|
||||
border = {
|
||||
enable = false;
|
||||
width = 4;
|
||||
# active.color = "#ffc87f";
|
||||
# inactive.color = "#505050";
|
||||
# urgent.color = "#9b0000";
|
||||
};
|
||||
|
||||
shadow = {
|
||||
enable = false;
|
||||
softness = 30;
|
||||
spread = 5;
|
||||
offset = {
|
||||
x = 0;
|
||||
y = 5;
|
||||
};
|
||||
# color = "#0007";
|
||||
# inactive-color = null;
|
||||
};
|
||||
|
||||
tab-indicator = {
|
||||
enable = true;
|
||||
hide-when-single-tab = true;
|
||||
place-within-column = false;
|
||||
gap = 5;
|
||||
width = 4;
|
||||
length.total-proportion = 0.5;
|
||||
position = "left"; # "left" | "right" | "top" | "bottom"
|
||||
gaps-between-tabs = 0;
|
||||
corner-radius = 0;
|
||||
# active.color = "#7fc8ff";
|
||||
# inactive.color = "#505050";
|
||||
# urgent.color = "#9b0000";
|
||||
};
|
||||
|
||||
insert-hint = {
|
||||
enable = true;
|
||||
# color = "#7fc8ff4d";
|
||||
};
|
||||
|
||||
struts = {
|
||||
left = 0;
|
||||
right = 0;
|
||||
top = 0;
|
||||
bottom = 0;
|
||||
};
|
||||
|
||||
# background-color = "transparent";
|
||||
};
|
||||
}
|
||||
35
home/afoucaultc/packages/niri/conf/misc.nix
Normal file
35
home/afoucaultc/packages/niri/conf/misc.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings = {
|
||||
prefer-no-csd = true;
|
||||
screenshot-path = "~/Screenshots/%Y-%m-%d %H-%M-%S.png";
|
||||
spawn-at-startup = [
|
||||
{
|
||||
command = [
|
||||
"swaybg"
|
||||
"-i"
|
||||
"~/nixos-config/dotfiles/hypr/wallpaper/nix-wallpaper.png"
|
||||
];
|
||||
}
|
||||
];
|
||||
environment = {
|
||||
DISPLAY = null;
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
MOZ_ENABLE_WAYLAND = "1";
|
||||
};
|
||||
cursor = {
|
||||
xcursor-theme = "Bibata-Modern-Ice";
|
||||
xcursor-size = 24;
|
||||
hide-when-typing = true;
|
||||
hide-after-inactive-ms = null;
|
||||
};
|
||||
|
||||
xwayland-satellite = {
|
||||
enable = true;
|
||||
path = "xwayland-satellit";
|
||||
};
|
||||
clipboard.disable-primary = false;
|
||||
hotkey-overlay.skip-at-startup = false;
|
||||
overview.zoom = 0.5;
|
||||
};
|
||||
}
|
||||
30
home/afoucaultc/packages/niri/conf/output.nix
Normal file
30
home/afoucaultc/packages/niri/conf/output.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.output = {
|
||||
"eDP-1" = {
|
||||
enable = true;
|
||||
scale = 1.0;
|
||||
transform.rotation = 0; # 0, 90, 180, 270
|
||||
position = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
};
|
||||
mode = {
|
||||
width = 1920;
|
||||
height = 1080;
|
||||
refresh = 120.0;
|
||||
};
|
||||
variable-refresh-rate = null; # true, false, on-demand
|
||||
# background-color = "#000000";
|
||||
};
|
||||
# 2nd screen
|
||||
# `niri msg outputs`) :
|
||||
# "HDMI-A-1" = {
|
||||
# enable = true;
|
||||
# scale = 1.0;
|
||||
# position = { x = 1920; y = 0; };
|
||||
# mode = { width = 2560; height = 1440; refresh = 144.0; };
|
||||
# };
|
||||
|
||||
};
|
||||
}
|
||||
5
home/afoucaultc/packages/niri/conf/switch-events.nix
Normal file
5
home/afoucaultc/packages/niri/conf/switch-events.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.ENTER = {
|
||||
};
|
||||
}
|
||||
41
home/afoucaultc/packages/niri/conf/window-rules.nix
Normal file
41
home/afoucaultc/packages/niri/conf/window-rules.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.window-rules = [
|
||||
{
|
||||
matches = [ { app-id = "^firefox$"; } ];
|
||||
default-column-width = {
|
||||
proportion = 0.66667;
|
||||
};
|
||||
}
|
||||
{
|
||||
matches = [ { title = "^Picture-in-Picture$"; } ];
|
||||
open-floating = true;
|
||||
default-floating-position = {
|
||||
x = 16;
|
||||
y = 16;
|
||||
relative-to = "bottom-right";
|
||||
};
|
||||
}
|
||||
{
|
||||
matches = [ { app-id = "^(pavucontrol|blueman-manager)$"; } ];
|
||||
open-floating = true;
|
||||
}
|
||||
{
|
||||
# Exemple : bordure/opacité par app
|
||||
matches = [ { app-id = "^kitty$"; } ];
|
||||
opacity = 0.95;
|
||||
geometry-corner-radius = {
|
||||
top-left = 8.0;
|
||||
top-right = 8.0;
|
||||
bottom-left = 8.0;
|
||||
bottom-right = 8.0;
|
||||
};
|
||||
clip-to-geometry = true;
|
||||
}
|
||||
{
|
||||
exclude-from-window-list = false;
|
||||
matches = [ { is-active = false; } ];
|
||||
opacity = 1.0;
|
||||
}
|
||||
];
|
||||
}
|
||||
8
home/afoucaultc/packages/niri/conf/workspaces.nix
Normal file
8
home/afoucaultc/packages/niri/conf/workspaces.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.workspaces = {
|
||||
# "1" = { name = "web"; open-on-output = "eDP-1"; };
|
||||
# "2" = { name = "code"; };
|
||||
# "3" = { name = "chat"; };
|
||||
};
|
||||
}
|
||||
16
home/afoucaultc/packages/niri/niri.nix
Normal file
16
home/afoucaultc/packages/niri/niri.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./settings.nix
|
||||
];
|
||||
programs.niri = {
|
||||
enable = true;
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
fuzzel
|
||||
kitty
|
||||
swaylock
|
||||
wireplumber # fournit wpctl
|
||||
brightnessctl
|
||||
];
|
||||
}
|
||||
15
home/afoucaultc/packages/niri/settings.nix
Normal file
15
home/afoucaultc/packages/niri/settings.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
conf/animations.nix
|
||||
conf/gestures.nix
|
||||
conf/input.nix
|
||||
conf/keybind.nix
|
||||
conf/layer-rules.nix
|
||||
conf/layout.nix
|
||||
conf/misc.nix
|
||||
conf/output.nix
|
||||
conf/window-rules.nix
|
||||
conf/workspaces.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.password-store = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,9 +1,14 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
# agent pour les clés gpg demandées par protonmail
|
||||
services.gpg-agent = {
|
||||
services.gnome-keyring = {
|
||||
enable = true;
|
||||
pinentry.package = pkgs.pinentry-curses;
|
||||
components = [ "secrets" ];
|
||||
};
|
||||
|
||||
services.protonmail-bridge.enable = true;
|
||||
|
||||
systemd.user.services.protonmail-bridge.Service = {
|
||||
ExecStartPre = "${pkgs.bash}/bin/bash -c 'until ${pkgs.systemd}/bin/busctl --user list | grep -q org.freedesktop.secrets; do sleep 1; done'";
|
||||
RestartSec = "10s";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,25 +7,30 @@
|
|||
enable = true;
|
||||
enable32Bit = true; # nécessaire pour Steam / jeux 32-bit
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver # VAAPI pour l'iGPU Intel (Coffee Lake)
|
||||
libva-vdpau-driver
|
||||
intel-media-driver
|
||||
intel-compute-runtime
|
||||
libvdpau-va-gl
|
||||
];
|
||||
extraPackages32 = with pkgs.pkgsi686Linux; [ intel-media-driver ];
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
LIBVA_DRIVER_NAME = "iHD";
|
||||
VDPAU_DRIVER = "va_gl";
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true; # requis pour Wayland/Hyprland
|
||||
powerManagement.enable = true;
|
||||
# RTX 2060 = Turing. Le driver "open" fonctionne pour Turing+, mais le propriétaire reste plus mature sur cette génération.
|
||||
open = false;
|
||||
powerManagement.finegrained = true;
|
||||
open = true;
|
||||
nvidiaSettings = true; # fournit `nvidia-settings`
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
prime = {
|
||||
sync.enable = true;
|
||||
#offload = {
|
||||
# enable = true;
|
||||
# enableOffloadCmd = true;
|
||||
#};
|
||||
offload = {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
intelBusId = "PCI:0:2:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -14,4 +14,5 @@
|
|||
openssh.enable = false;
|
||||
flatpak.enable = true;
|
||||
};
|
||||
virtualisation.docker.enable = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"docker"
|
||||
];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,13 +1,21 @@
|
|||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
nix.settings = {
|
||||
substituters = [ "https://hyprland.cachix.org" ];
|
||||
trusted-public-keys = [
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIITfGmwGaMwaOAd6DDeaU="
|
||||
];
|
||||
};
|
||||
# Portails XDG (captures d'écran, partage d'écran, file pickers Wayland)
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
|
||||
|
||||
security.wrappers.Hyprland = {
|
||||
owner = "root";
|
||||
group = "root";
|
||||
capabilities = "cap_sys_nice+ep";
|
||||
source = lib.getExe inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
};
|
||||
security.polkit.enable = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
|
|
|
|||
5
hosts/nixos-home/config/services/gnome-keyring.nix
Normal file
5
hosts/nixos-home/config/services/gnome-keyring.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{ ... }:
|
||||
{
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
security.pam.services.login.enableGnomeKeyring = true;
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
services.gvfs.enable = true;
|
||||
services.tumbler.enable = true;
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
|
@ -16,25 +15,12 @@
|
|||
};
|
||||
|
||||
services.graphical-desktop.enable = true;
|
||||
|
||||
services.xserver.desktopManager.runXdgAutostartIfNone = lib.mkDefault true;
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
config.common.degault = "*";
|
||||
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
|
||||
};
|
||||
|
||||
nix.settings = {
|
||||
substituters = [ "https://hyprland.cachix.org" ];
|
||||
trusted-public-keys = [
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIITfGmwGaMwaOAd6DDeaU="
|
||||
];
|
||||
};
|
||||
|
||||
security.wrappers.Hyprland = {
|
||||
owner = "root";
|
||||
group = "root";
|
||||
capabilities = "cap_sys_nice+ep";
|
||||
source = lib.getExe inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
./config/style/fonts.nix
|
||||
./config/style/stylix.nix
|
||||
# additional services
|
||||
./config/services/gnome-keyring.nix
|
||||
./config/services/kde.nix
|
||||
./config/services/mullvad.nix
|
||||
./config/services/power_management.nix
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
./config/programs/gamescope.nix
|
||||
./config/programs/steam.nix
|
||||
# packages & others
|
||||
./config/hyprland.nix
|
||||
./config/wayland.nix
|
||||
./config/system_packages.nix
|
||||
# profil nixos pour mon ordi portable maison
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue