quick add on niri

This commit is contained in:
afoucaultc 2026-08-23 09:42:08 +02:00
parent 9ec0f2b20d
commit 1562c3b39b
69 changed files with 48 additions and 3226 deletions

View file

@ -1 +0,0 @@
/nix/store/rjsnz0fgbfbw9rw9y6sdiba87pw6i928-home-manager-files/.config/hypr/.luarc.json

View file

@ -1,64 +0,0 @@
-- shutdown hyprland and lock
hl.bind(
"CTRL + ALT + M",
hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'")
)
hl.bind("CTRL + ALT + L", hl.dsp.exec_cmd(lockscreen))
-- launchers
hl.bind("ALT + D", hl.dsp.exec_cmd(fileManager))
hl.bind("ALT + D", hl.dsp.exec_cmd(fileManager2))
hl.bind("ALT + Q", hl.dsp.exec_cmd(terminal))
hl.bind("ALT + N", hl.dsp.exec_cmd("kitty -e nvim"))
hl.bind("ALT + F", hl.dsp.exec_cmd(browser))
hl.bind("ALT + Z", hl.dsp.exec_cmd("zotero"))
hl.bind("ALT + T", hl.dsp.exec_cmd("thunderbird"))
-- rofi
hl.bind("ALT + W", hl.dsp.exec_cmd(rofi_launcher))
hl.bind("ALT + X", hl.dsp.exec_cmd(rofi_window))
hl.bind("ALT + C", hl.dsp.exec_cmd(rofi_file))
-- window management
hl.bind("ALT + V", hl.dsp.window.float({ action = "toggle" }))
hl.bind("ALT + F4", hl.dsp.window.close())
-- move focus
hl.bind("ALT + L", hl.dsp.focus({ direction = "right" }))
hl.bind("ALT + H", hl.dsp.focus({ direction = "left" }))
hl.bind("ALT + J", hl.dsp.focus({ direction = "up" }))
hl.bind("ALT + K", hl.dsp.focus({ direction = "down" }))
-- move window
hl.bind("CTRL + SUPER + L", hl.dsp.window.move({ direction = "right" }))
hl.bind("CTRL + SUPER + H", hl.dsp.window.move({ direction = "left" }))
hl.bind("CTRL + SUPER + K", hl.dsp.window.move({ direction = "up" }))
hl.bind("CTRL + SUPER + J", hl.dsp.window.move({ direction = "down" }))
-- move to monitor
hl.bind("ALT + A", hl.dsp.focus({ monitor = monitorA }))
hl.bind("ALT + B", hl.dsp.focus({ monitor = monitorB }))
hl.bind("ALT + B", hl.dsp.focus({ monitor = monitorC }))
hl.bind("CTRL + SUPER + A", hl.dsp.window.move({ monitor = monitorA }))
hl.bind("CTRL + SUPER + B", hl.dsp.window.move({ monitor = monitorB }))
hl.bind("CTRL + SUPER + B", hl.dsp.window.move({ monitor = monitorC }))
-- change workspace
hl.bind("SUPER + L", hl.dsp.focus({ workspace = "r+1" }))
hl.bind("SUPER + H", hl.dsp.focus({ workspace = "r-1" }))
hl.bind("SUPER + K", hl.dsp.window.move({ workspace = "r+1" }))
hl.bind("SUPER + J", hl.dsp.window.move({ workspace = "r-1" }))
-- screenshot
hl.bind(
"Print",
hl.dsp.exec_cmd(
[[mkdir -p ~/Screenshots && filename=~/Screenshots/"$(date +'%F-%T').png" && grim -g "$(slurp)" "$filename" && wl-copy < "$filename" && gwenview "$filename"]]
)
)
hl.bind("SUPER + V", hl.dsp.exec_cmd("cliphist list | rofi -dmenu -display-columns 2 | cliphist decode | wl-copy"))
-- mouse resize
hl.bind("ALT + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind("ALT + mouse:273", hl.dsp.window.resize(), { mouse = true })
-- brightness
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"))
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"))
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"))
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"))
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"))
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"))

View file

@ -1 +0,0 @@
/home/afoucaultc/nixos-config/dotfiles/hypr/conf

View file

@ -1,13 +0,0 @@
-- environment variables
hl.env("LIBVA_DRIVER_NAME", "nvidia")
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
hl.env("XDG_CURRENT_DESKTOP", "Hyprland")
hl.env("XDG_SESSION_TYPE", "wayland")
hl.env("NVD_BACKEND", "direct")
hl.env("ELECTRON_OZONE_PLATFORM_HINT", "auto")
hl.env("SCREENSHOT_DIR", "$home/Screenshots")
hl.env("GDK_SCALE", 1)
hl.env("XCURSOR_THEME", "Bibata-Modern-Ice")
hl.env("XCURSOR_SIZE", 24)
hl.env("HYPRCURSOR_THEME", "Bibata-Modern-Ice")
hl.env("HYPRCURSOR_SIZE", 24)

View file

@ -1,23 +0,0 @@
hl.config({
input = {
kb_layout = "fr",
numlock_by_default = true,
accel_profile = "adaptive",
follow_mouse = 1,
sensitivity = -0.3,
touchpad = {
disable_while_typing = true,
scroll_factor = 1.2,
natural_scroll = false,
middle_button_emulation = false,
},
},
})
hl.device({
name = "elan1203:00-04f3:307a-touchpad",
enabled = false,
})

View file

@ -1,20 +0,0 @@
hl.monitor({
output = monitorA,
mode = "preferred",
position = "0x0",
scale = "1",
})
hl.monitor({
output = monitorB,
mode = "preferred",
position = "auto",
scale = "1",
})
hl.monitor({
output = "",
mode = "preferred",
position = "auto",
scale = "1",
})

View file

@ -1,6 +0,0 @@
hl.config({
cursor = {
enable_hyprcursor = false,
no_hardware_cursors = true,
},
})

View file

@ -1,13 +0,0 @@
hl.on("hyprland.start", function()
hl.exec_cmd("hyprpaper")
hl.exec_cmd("wl-paste --type text --watch cliphist store")
hl.exec_cmd("wl-paste --type image --watch cliphist store")
hl.exec_cmd("systemctl --user start hyprpolkitagent")
hl.exec_cmd("hyprctl setcursor Bibata-Modern-Ice 24")
-- hl.exec_cmd("noctalia-shell")
-- hl.exec_cmd("hyprpanel")
-- hl.exec_cmd("hyprsunset")
-- hl.exec_cmd("xsettingsd")
-- hl.exec_cmd("nwg-look -a")
-- hl.exec_cmd("protonmail-bridge")
end)

View file

@ -1,68 +0,0 @@
hl.config({
general = {
gaps_in = 5,
gaps_out = 10,
border_size = 2,
col = {
active_border = { colors = { "rgba(7aa2f7ee)", "rgba(bb9af7ee)" }, angle = 45 },
inactive_border = "rgba(414868aa)",
},
resize_on_border = true,
hover_icon_on_border = true,
allow_tearing = true,
layout = "master",
snap = {
enabled = true,
},
},
decoration = {
rounding = 5,
rounding_power = 10,
-- Change transparency of focused and unfocused windows
active_opacity = 0.99,
inactive_opacity = 0.99,
shadow = {
enabled = false,
range = 4,
render_power = 3,
color = 0xee1a1a1a,
},
blur = {
enabled = true,
size = 1,
passes = 2,
vibrancy = 0.1696,
},
},
animations = {
enabled = false,
},
})
-- tiling managers
hl.config({
dwindle = {
preserve_split = true,
},
master = {
new_status = "slave",
orientation = "left",
mfact = "0.6",
},
scrolling = {
fullscreen_on_one_column = true,
column_width = 0.9,
direction = right,
},
})
-- others
hl.config({
misc = {
force_default_wallpaper = 0,
disable_hyprland_logo = true,
vrr = 0,
disable_splash_rendering = true,
},
})

View file

@ -1,14 +0,0 @@
terminal = "kitty"
fileManager = "dolphin"
fileManager2 = "nautilus"
menu = "wofi --show drun"
home = "/home/afoucaultc/"
lockscreen = "hyprlock"
browser = "zen-beta"
-- rofi_launcher = "rofi"
rofi_launcher = "rofi -show drun"
rofi_window = "rofi -show window"
rofi_file = "rofi -show filebrowser"
monitorA = "eDP-1"
monitorB = "HDMI-A-1"
monitorC = "DP-2"

View file

@ -1,21 +0,0 @@
hl.window_rule({
name = "opacity kitty",
match = {
class = "kitty",
},
opacity = "0.9",
})
hl.window_rule({
name = "opacity zathura",
match = {
class = "org.pwmt.zathura",
},
opacity = 2,
})
hl.window_rule({
name = "opacity vesktop",
match = {
class = "vesktop",
},
opacity = 2,
})

View file

@ -1,12 +0,0 @@
local workspaces = {
{
id = 1,
layout = "scroll",
persistent = "true",
},
{
id = 2,
layout = "dwindle",
persistent = "true",
},
}

View file

@ -1 +0,0 @@
/nix/store/rjsnz0fgbfbw9rw9y6sdiba87pw6i928-home-manager-files/.config/hypr/hyprland.lua

View file

@ -1,364 +0,0 @@
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- AUTOGENERATED HYPRLAND CONFIG. --
-- EDIT THIS CONFIG ACCORDING TO THE WIKI INSTRUCTIONS. --
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
hl.config({ autogenerated = true }) -- remove this line to remove the warning
-- This is an example Hyprland Lua config file.
-- Refer to the wiki for more information.
-- https://wiki.hypr.land/Configuring/Start/
-- Please note not all available settings / options are set here.
-- For a full list, see the wiki
-- You can (and should!!) split this configuration into multiple files
-- Create your files separately and then require them like this:
-- require("myColors")
------------------
---- MONITORS ----
------------------
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
hl.monitor({
output = "",
mode = "preferred",
position = "auto",
scale = "auto",
})
---------------------
---- MY PROGRAMS ----
---------------------
-- Set programs that you use
local terminal = "kitty"
local fileManager = "dolphin"
local menu = "hyprlauncher"
-------------------
---- AUTOSTART ----
-------------------
-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
-- Autostart necessary processes (like notifications daemons, status bars, etc.)
-- Or execute your favorite apps at launch like this:
--
-- hl.on("hyprland.start", function ()
-- hl.exec_cmd(terminal)
-- hl.exec_cmd("nm-applet")
-- hl.exec_cmd("waybar & hyprpaper & firefox")
-- end)
-------------------------------
---- ENVIRONMENT VARIABLES ----
-------------------------------
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
hl.env("XCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_SIZE", "24")
-----------------------
----- PERMISSIONS -----
-----------------------
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/
-- Please note permission changes here require a Hyprland restart and are not applied on-the-fly
-- for security reasons
-- hl.config({
-- ecosystem = {
-- enforce_permissions = true,
-- },
-- })
-- hl.permission("/usr/(bin|local/bin)/grim", "screencopy", "allow")
-- hl.permission("/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", "screencopy", "allow")
-- hl.permission("/usr/(bin|local/bin)/hyprpm", "plugin", "allow")
-----------------------
---- LOOK AND FEEL ----
-----------------------
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
hl.config({
general = {
gaps_in = 5,
gaps_out = 20,
border_size = 2,
col = {
active_border = { colors = {"rgba(33ccffee)", "rgba(00ff99ee)"}, angle = 45 },
inactive_border = "rgba(595959aa)",
},
-- Set to true to enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false,
-- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
allow_tearing = false,
layout = "dwindle",
},
decoration = {
rounding = 10,
rounding_power = 2,
-- Change transparency of focused and unfocused windows
active_opacity = 1.0,
inactive_opacity = 1.0,
shadow = {
enabled = true,
range = 4,
render_power = 3,
color = 0xee1a1a1a,
},
blur = {
enabled = true,
size = 3,
passes = 1,
vibrancy = 0.1696,
},
},
animations = {
enabled = true,
},
})
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
hl.curve("easeOutQuint", { type = "bezier", points = { {0.23, 1}, {0.32, 1} } })
hl.curve("easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, {0.36, 1} } })
hl.curve("linear", { type = "bezier", points = { {0, 0}, {1, 1} } })
hl.curve("almostLinear", { type = "bezier", points = { {0.5, 0.5}, {0.75, 1} } })
hl.curve("quick", { type = "bezier", points = { {0.15, 0}, {0.1, 1} } })
-- Default springs
hl.curve("easy", { type = "spring", mass = 1, stiffness = 238.1191, dampening = 24.21279333 })
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
hl.animation({ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" })
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "popin 87%" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
-- Ref https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
-- "Smart gaps" / "No gaps when only"
-- uncomment all if you wish to use that.
-- hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
-- hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
-- hl.window_rule({
-- name = "no-gaps-wtv1",
-- match = { float = false, workspace = "w[tv1]" },
-- border_size = 0,
-- rounding = 0,
-- })
-- hl.window_rule({
-- name = "no-gaps-f1",
-- match = { float = false, workspace = "f[1]" },
-- border_size = 0,
-- rounding = 0,
-- })
-- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
hl.config({
dwindle = {
preserve_split = true, -- You probably want this
},
})
-- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more
hl.config({
master = {
new_status = "master",
},
})
-- See https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ for more
hl.config({
scrolling = {
fullscreen_on_one_column = true,
},
})
----------------
---- MISC ----
----------------
hl.config({
misc = {
force_default_wallpaper = -1, -- Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
},
})
---------------
---- INPUT ----
---------------
hl.config({
input = {
kb_layout = "us",
kb_variant = "",
kb_model = "",
kb_options = "",
kb_rules = "",
follow_mouse = 1,
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
touchpad = {
natural_scroll = false,
},
},
})
hl.gesture({
fingers = 3,
direction = "horizontal",
action = "workspace"
})
-- Example per-device config
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Devices/ for more
hl.device({
name = "epic-mouse-v1",
sensitivity = -0.5,
})
---------------------
---- KEYBINDINGS ----
---------------------
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
hl.bind(mainMod .. " + Q", hl.dsp.exec_cmd(terminal))
local closeWindowBind = hl.bind(mainMod .. " + C", hl.dsp.window.close())
-- closeWindowBind:set_enabled(false)
hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
hl.bind(mainMod .. " + R", hl.dsp.exec_cmd(menu))
hl.bind(mainMod .. " + P", hl.dsp.window.pseudo())
hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit")) -- dwindle only
-- Move focus with mainMod + arrow keys
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))
-- Switch workspaces with mainMod + [0-9]
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
for i = 1, 10 do
local key = i % 10 -- 10 maps to key 0
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i}))
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
end
-- Example special workspace (scratchpad)
hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special("magic"))
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
-- Scroll through existing workspaces with mainMod + scroll
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
-- Move/resize windows with mainMod + LMB/RMB and dragging
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
-- Laptop multimedia keys for volume and LCD brightness
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
-- Requires playerctl
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
--------------------------------
---- WINDOWS AND WORKSPACES ----
--------------------------------
-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/
-- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
-- Example window rules that are useful
local suppressMaximizeRule = hl.window_rule({
-- Ignore maximize requests from all apps. You'll probably like this.
name = "suppress-maximize-events",
match = { class = ".*" },
suppress_event = "maximize",
})
-- suppressMaximizeRule:set_enabled(false)
hl.window_rule({
-- Fix some dragging issues with XWayland
name = "fix-xwayland-drags",
match = {
class = "^$",
title = "^$",
xwayland = true,
float = true,
fullscreen = false,
pin = false,
},
no_focus = true,
})
-- Layer rules also return a handle.
-- local overlayLayerRule = hl.layer_rule({
-- name = "no-anim-overlay",
-- match = { namespace = "^my-overlay$" },
-- no_anim = true,
-- })
-- overlayLayerRule:set_enabled(false)
-- Hyprland-run windowrule
hl.window_rule({
name = "move-hyprland-run",
match = { class = "hyprland-run" },
move = "20 monitor_h-120",
float = true,
})

View file

@ -1,118 +0,0 @@
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
}

View file

@ -1,6 +0,0 @@
wallpaper {
monitor =
path = /home/afoucaultc/nixos-config/dotfiles/hypr/wallpaper/nix-wallpaper.png
fit_mode = cover
}
splash = false

View file

@ -1 +0,0 @@
/nix/store/zks330cms6y9r46zz2afbfk1ncb3787x-home-manager-files/.config/kitty/kitty.conf

View file

@ -1,3 +0,0 @@
snippet plot "Plot" b
plot(#1,#2,'Color',#3,'Linewidth',1.5,'MarkerSize',0,'DisplayName',"#4")
endsnippet

View file

@ -1,159 +0,0 @@
############## Figures ##############
snippet svgfig "Figures from inkscape PDF+PDF_tex" b
\begin{figure}[htbp]
\centering
\def\svgwidth{0.99\textwidth}
\import{figures/$1.pdf_tex}
\caption{$2}
\label{$1}
\end{figure}
endsnippet
snippet sfig "Single figure" b
\begin{figure}[htbp]
\centering
\input{figures/$1}
\caption{$2}
\label{$1}
\end{figure}
endsnippet
snippet dfig "Double figures" b
\begin{figure}
\begin{subfigure}{\dfigsize}
\centering
\includegraphics[width=\textwidth]{figures/$2}
\caption{$1}
\label{fig:$2}
\end{subfigure}
\hfill
\begin{subfigure}{\dfigsize}
\centering
\includegraphics[width=\textwidth]{figures/$4}
\caption{$3}
\label{fig:$4}
\end{subfigure}
\caption{$5}
\end{figure}
endsnippet
snippet tab "Table" b
\begin{table}
\centering
\begin{tabular}{$1}
\hline
$4 & & & \\ \hline
\end{tabular}
\caption{$2}
\label{table:$3}
\end{table}
endsnippet
############## Basics ##############
snippet env "Environment"
\begin{$1}
$2
\end{$1}
endsnippet
############## Direct env ##############
snippet abs "Abstract" b
\begin{abstract}
$1
\end{abstract}
endsnippet
snippet itm "Environnement itemize" b
\begin{${1:itemize}}
\item $2
\end{$1}
endsnippet
snippet it "Add item" b
\item $1
endsnippet
############## Section ##############
snippet sec "sections"
\\$1{$2}\label{sec:$3}
endsnippet
############## Disp ##############
snippet bold "bold"
\textbf{$1}
endsnippet
snippet ital "italique"
\textit{$1}
endsnippet
snippet smcap "small caps"
\textsc{$1}
endsnippet
snippet _ "undertext"
_{$1}
endsnippet
snippet ^ "uptext"
^{$1}
endsnippet
############## Maths ##############
snippet frac "fraction"
\frac{$1}{$2}
endsnippet
snippet cases "cases"
\begin{cases}
$1
\end{cases}
endsnippet
snippet eq "Equation" b
\begin{equation}
$1
\label{eq:${2}}
\end{equation}
endsnippet
snippet param "Parameters" b
\begin{parameters}
$1 & $2
\end{parameters}
endsnippet
snippet align "Align" b
\begin{align}
$1
\label{eq:$2}
\end{align}
endsnippet
snippet mat "Matrix" b
\begin{bmatrix}
$1
\end{bmatrix}
endsnippet
############## Citation ##############
snippet ref "reference"
\ref{$1}
endsnippet
snippet cite "citation"
\cite{$1}
endsnippet
############## Siunitz ##############
snippet num "Number"
\num{$1}
endsnippet
snippet un "Unit"
\unit{$1}
endsnippet
snippet quant "Quantity"
\qty{$1}{$2}
endsnippet
snippet ptm "Point médian"
\ptm
endsnippet

View file

@ -1 +0,0 @@
/nix/store/rjsnz0fgbfbw9rw9y6sdiba87pw6i928-home-manager-files/.config/nvim/init.lua

View file

@ -1,3 +0,0 @@
-- ~/.config/nvim/init.lua
vim.g.python3_host_prog = "/etc/profiles/per-user/afoucaultc/bin/python3"
require("neoconf")

View file

@ -1,53 +0,0 @@
{
"LazyVim": { "branch": "main", "commit": "c10948c50b18fae7f256433afdef09e432410480" },
"LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" },
"baleia.nvim": { "branch": "main", "commit": "710537ff5cd669c5a76c5f5b6a9169fd9b913d18" },
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"catppuccin": { "branch": "main", "commit": "edefef779ab08ce1a4a404713e3012b0d202bd35" },
"conform.nvim": { "branch": "master", "commit": "016802de402556da54c36bd7359b441266b01cdd" },
"csvview.nvim": { "branch": "main", "commit": "5c22774c3ecc7f8883af5d143b366e45b1f0875d" },
"debugpy.nvim": { "branch": "master", "commit": "490a0d7bfa23af8c6096bb3fbd867770b7d4a28b" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"flash.nvim": { "branch": "main", "commit": "b6346946d10d07998efee029fb0f7a593806d0cd" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"fzf-lua": { "branch": "main", "commit": "05e44d38de0a79c11fba5f7bf8138791b1dbdd1e" },
"gitsigns.nvim": { "branch": "main", "commit": "5be654f2232c10ddcad19c1607a67b6b4b78fc29" },
"grug-far.nvim": { "branch": "main", "commit": "11595bf747edc270bce2069d1020502ad4ae56cf" },
"image.nvim": { "branch": "master", "commit": "88351f1f7d9dbae286e671ce3690a49660dd8a5c" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" },
"lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
"markview.nvim": { "branch": "main", "commit": "5d9fc2aa6dd1c2fbdc7a68bc79b300e9967b21ff" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "47059d71b42d74b0a1e9f61c1d99d301039c3b5b" },
"mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" },
"mini.ai": { "branch": "main", "commit": "25248c6aa002391936a6200f12d1466015987133" },
"mini.icons": { "branch": "main", "commit": "98faae31e9be1cc054ae63485e58ceb185efcad0" },
"mini.pairs": { "branch": "main", "commit": "b1c5a726921b7a8c9321e9a7a208aa0571de5810" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "ebd66767191714e008ce73b769518a763ff31bdc" },
"neogit": { "branch": "master", "commit": "37e0f22a2345bad1bffe01b31970885882f46275" },
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
"nui.nvim": { "branch": "main", "commit": "a25dd472316d806eb38a5dd667c2e40da5570c75" },
"nvim-dap": { "branch": "master", "commit": "9e848e09a697ee95302a3ef2dd43fd6eb709e570" },
"nvim-lint": { "branch": "master", "commit": "5b5b794458b5ff0b17d26c9d7400faaebd00b32d" },
"nvim-lspconfig": { "branch": "master", "commit": "c8a582abc20a3121a768073df569d088cb5604b5" },
"nvim-treesitter": { "branch": "main", "commit": "074aa4422bf029908338e855d0c0f71470a971bb" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "898ee307df58f854d11cd7edd06472574d48014e" },
"nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" },
"nvim-web-devicons": { "branch": "master", "commit": "2ae6958df7ced50baac5035cec0c15799eedfbf7" },
"oil.nvim": { "branch": "master", "commit": "b73018b75affd13fa38e2fc94ef753b465f770d7" },
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"snacks.nvim": { "branch": "main", "commit": "882c996cf28183f4d63640de0b4c02ec886d01f2" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" },
"telescope.nvim": { "branch": "master", "commit": "40aedd8a68c78a656a10a8d62d80c54af59420fb" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
"tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"ts-comments.nvim": { "branch": "main", "commit": "a59d6092213447450191122c9346f309161504cb" },
"ultisnips": { "branch": "master", "commit": "62aca2a735b76d24a8fc7862f902330ac688849b" },
"vimtex": { "branch": "master", "commit": "b652447a39eeb180ea103d6b39efe84e7cf74117" },
"vimtex-follow": { "branch": "main", "commit": "4f882c0fba6b4b769d1efc239e669d6b6527b5ac" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}

View file

@ -1,9 +0,0 @@
{
"extras": [
],
"news": {
"NEWS.md": "11866"
},
"version": 8
}

View file

@ -1 +0,0 @@
/nix/store/rjsnz0fgbfbw9rw9y6sdiba87pw6i928-home-manager-files/.config/nvim/lua/conf/autocmd.lua

View file

@ -1 +0,0 @@
/nix/store/rjsnz0fgbfbw9rw9y6sdiba87pw6i928-home-manager-files/.config/nvim/lua/conf/lsp-config.lua

View file

@ -1 +0,0 @@
/nix/store/rjsnz0fgbfbw9rw9y6sdiba87pw6i928-home-manager-files/.config/nvim/lua/conf/remap.lua

View file

@ -1 +0,0 @@
/nix/store/rjsnz0fgbfbw9rw9y6sdiba87pw6i928-home-manager-files/.config/nvim/lua/conf/settings.lua

View file

@ -1,56 +0,0 @@
-- (.config/nvim/lua/neoconf/autocmd.lua)
vim.api.nvim_create_autocmd("BufWritePre", {
callback = function()
vim.lsp.buf.format({ async = false })
end,
})
local function run_curr_python_file()
-- Get file name in the current buffer
local file_name = vim.api.nvim_buf_get_name(0)
-- Get terminal codes for running python file
-- ("i" to enter insert before typing rest of the command)
local py_cmd = vim.api.nvim_replace_termcodes('ipython "' .. file_name .. '"<cr>', true, false, true)
-- Determine terminal window split and launch terminal
local percent_of_win = 0.4
local curr_win_height = vim.api.nvim_win_get_height(0) -- Current window height
local term_height = math.floor(curr_win_height * percent_of_win) -- Terminal height
vim.cmd(":below " .. term_height .. "split | term") -- Launch terminal (horizontal split)
-- Press keys to run python command on current file
vim.api.nvim_feedkeys(py_cmd, "t", false)
end
vim.keymap.set({ "n" }, "<A-r>", "", {
desc = "Run .py file via Neovim built-in terminal",
callback = run_curr_python_file,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = { "markdown", "rmd" },
callback = function()
-- Force syntaxe markdown
vim.bo.syntax = "markdown"
-- Conceal normal pour markdown
vim.wo.conceallevel = 2
-- Désactive vimtex pour ces fichiers
vim.b.vimtex_syntax_enabled = 0
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "*",
callback = function()
pcall(vim.treesitter.start)
end,
})
vim.api.nvim_create_autocmd("User", {
pattern = "VeryLazy",
callback = function()
pcall(vim.keymap.del, "n", "<leader>l")
end,
})

View file

@ -1,76 +0,0 @@
-- Function to compile and run the current C++ file
function Compile_and_run_cpp()
local filename = vim.fn.expand("%:p")
local basename = vim.fn.expand("%:r")
local output_file = "output.txt" -- Change this to the desired output file name
local input_file = "input.txt" -- Change this to the desired input file name
-- Check if current file is a valid C++ or C file
local valid_extensions = { "cpp", "c" }
local valid_file = false
for _, ext in ipairs(valid_extensions) do
if filename:match("%." .. ext .. "$") then
valid_file = true
break
end
end
-- Exit function if file is not valid
if not valid_file then
vim.api.nvim_err_writeln("Not a valid C++ or C file.")
return
end
-- Check if input file exists, create if it doesn't
local input_fd = io.open(input_file, "a+") -- Open in append mode to create if it doesn't exist
if input_fd == nil then
vim.api.nvim_err_writeln("Failed to open or create input file: " .. input_file)
return
end
input_fd:close()
-- Check if output file exists, create if it doesn't
local output_fd = io.open(output_file, "a+") -- Open in append mode to create if it doesn't exist
if output_fd == nil then
vim.api.nvim_err_writeln("Failed to open or create output file: " .. output_file)
return
end
output_fd:close()
-- Check if input file buffer is already open
local input_bufnr = vim.fn.bufnr(input_file)
if input_bufnr == -1 then
-- Open input file in a new split at top right side
vim.cmd("vsp " .. input_file)
else
-- Switch to existing buffer for input file
vim.cmd(input_bufnr .. "wincmd w")
end
-- Check if input file buffer is already open
local output_butnr = vim.fn.bufnr(output_file)
if output_butnr == -1 then
-- Open input file in a new split at top right side
vim.cmd("split " .. output_file)
else
-- Switch to existing buffer for input file
vim.cmd(input_bufnr .. "wincmd w")
end
vim.cmd("vertical resize 70%")
local file = vim.fn.bufnr(filename)
vim.cmd(file .. "wincmd w")
-- Compile and run C++ file
local compile_cmd =
string.format("g++ %s -o %s && ./%s < %s > %s", filename, basename, basename, input_file, output_file)
vim.cmd("silent w") -- Save the current file
vim.cmd("silent !clear") -- Clear the terminal
vim.cmd("silent !" .. compile_cmd) -- Execute the compile and run command
-- Open the output file in a new buffer
-- vim.cmd("edit " .. output_file)
end
-- Map Ctrl+B to the compile_and_run_cpp function
vim.api.nvim_set_keymap("n", "<C-b>", ":lua Compile_and_run_cpp()<CR>", { noremap = true, silent = true })

View file

@ -1,11 +0,0 @@
-- ~/.config/nvim/lua/neoconf/init.lua
vim.g.mapleader = " "
vim.g.maplocalleader = " "
-- call every other init files
require("neoconf.lazy_init")
require("neoconf.settings")
require("neoconf.remap")
require("neoconf.autocmd")
require("neoconf.lsp-config")
require("neoconf.plugins_settings")

View file

@ -1,55 +0,0 @@
return {
{
"saghen/blink.cmp",
-- optional: provides snippets for the snippet source
dependencies = { "rafamadriz/friendly-snippets" },
-- use a release tag to download pre-built binaries
version = "1.*",
-- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust
-- build = 'cargo build --release',
-- If you use nix, you can build from source using latest nightly rust with:
-- build = 'nix run .#build-plugin',
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
-- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
-- 'super-tab' for mappings similar to vscode (tab to accept)
-- 'enter' for enter to accept
-- 'none' for no mappings
--
-- All presets have the following mappings:
-- C-space: Open menu or open docs if already open
-- C-n/C-p or Up/Down: Select next/previous item
-- C-e: Hide menu
-- C-k: Toggle signature help (if signature.enabled = true)
--
-- See :h blink-cmp-config-keymap for defining your own keymap
keymap = { preset = "default" },
appearance = {
-- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- Adjusts spacing to ensure icons are aligned
nerd_font_variant = "mono",
},
-- (Default) Only show the documentation popup when manually triggered
completion = { documentation = { auto_show = false } },
-- Default list of enabled providers defined so that you can extend it
-- elsewhere in your config, without redefining it, due to `opts_extend`
sources = {
default = { "lsp", "path", "snippets", "buffer" },
},
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
-- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation,
-- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"`
--
-- See the fuzzy documentation for more information
fuzzy = { implementation = "prefer_rust_with_warning" },
},
opts_extend = { "sources.default" },
},
}

View file

@ -1,8 +0,0 @@
return {
"stevearc/conform.nvim",
opts = {
formatters_by_ft = {
nix = { "nixfmt" },
},
},
}

View file

@ -1,170 +0,0 @@
return {
{
"hat0uma/csvview.nvim",
---@module "csvview"
---@type CsvView.Options
opts = {
parser = {
--- The number of lines that the asynchronous parser processes per cycle.
--- This setting is used to prevent monopolization of the main thread when displaying large files.
--- If the UI freezes, try reducing this value.
--- @type integer
async_chunksize = 50,
--- Specifies the delimiter character to separate columns.
--- This can be configured in one of three ways:
---
--- 1. As a single string for a fixed delimiter.
--- e.g., delimiter = ","
---
--- 2. As a function that dynamically returns the delimiter.
--- e.g., delimiter = function(bufnr) return "\t" end
---
--- 3. As a table for advanced configuration:
--- - `ft`: Maps filetypes to specific delimiters. This has the highest priority.
--- - `fallbacks`: An ordered list of delimiters to try for automatic detection
--- when no `ft` rule matches. The plugin will test them in sequence and use
--- the first one that highest scores based on the number of fields in each line.
---
--- Note: Only fixed-length strings are supported as delimiters.
--- Regular expressions (e.g., `\s+`) are not currently supported.
--- @type CsvView.Options.Parser.Delimiter
delimiter = {
ft = {
csv = ";",
tsv = "\t",
},
fallbacks = {
",",
"\t",
";",
"|",
":",
" ",
},
},
--- The quote character
--- If a field is enclosed in this character, it is treated as a single field and the delimiter in it will be ignored.
--- e.g:
--- quote_char= "'"
--- You can also specify it on the command line.
--- e.g:
--- :CsvViewEnable quote_char='
--- @type string
quote_char = '"',
--- The comment prefix characters
--- If the line starts with one of these characters, it is treated as a comment.
--- Comment lines are not displayed in tabular format.
--- You can also specify it on the command line.
--- e.g:
--- :CsvViewEnable comment=#
--- @type string[]
comments = {
-- "#",
-- "--",
-- "//",
},
--- The number of lines at the beginning of the file to treat as comments.
--- Lines from 1 to this number will be treated as comment lines regardless of their content.
--- This is useful for files that have a fixed header/metadata section at the top.
--- You can also specify it on the command line.
--- e.g:
--- :CsvViewEnable comment_lines=2
--- @type integer?
comment_lines = nil,
--- Maximum lookahead for multi-line fields
--- This limits how many lines ahead the parser will look when trying to find
--- the closing quote of a multi-line field. Setting this too high may cause
--- performance issues when editing files with unmatched quotes.
--- @type integer
max_lookahead = 50,
},
view = {
--- minimum width of a column
--- @type integer
min_column_width = 5,
--- spacing between columns
--- @type integer
spacing = 2,
--- The display method of the delimiter
--- "highlight" highlights the delimiter
--- "border" displays the delimiter with `│`
--- You can also specify it on the command line.
--- e.g:
--- :CsvViewEnable display_mode=border
---@type CsvView.Options.View.DisplayMode
display_mode = "highlight",
--- The line number of the header row
--- Controls which line should be treated as the header for the CSV table.
--- This affects both visual styling and the sticky header feature.
---
--- Values:
--- - `true`: Automatically detect the header line (default)
--- - `integer`: Specific line number to use as header (1-based)
--- - `false`: No header line, treat all lines as data rows
---
--- When a header is defined, it will be:
--- - Highlighted with the CsvViewHeaderLine highlight group
--- - Used for the sticky header feature if enabled
--- - Excluded from normal data processing in some contexts
---
--- See also: `view.sticky_header`
--- @type integer|false|true
header_lnum = true,
--- The sticky header feature settings
--- If `view.header_lnum` is set, the header line is displayed at the top of the window.
sticky_header = {
--- Whether to enable the sticky header feature
--- @type boolean
enabled = true,
--- The separator character for the sticky header window
--- set `false` to disable the separator
--- @type string|false
separator = "",
},
},
--- Keymaps for csvview.
--- These mappings are only active when csvview is enabled.
--- You can assign key mappings to each action defined in `opts.actions`.
--- For example:
--- ```lua
--- keymaps = {
--- -- Text objects for selecting fields
--- textobject_field_inner = { "if", mode = { "o", "x" } },
--- textobject_field_outer = { "af", mode = { "o", "x" } },
---
--- -- Excel-like navigation:
--- -- Use <Tab> and <S-Tab> to move horizontally between fields.
--- -- Use <Enter> and <S-Enter> to move vertically between rows.
--- -- Note: In terminals, you may need to enable CSI-u mode to use <S-Tab> and <S-Enter>.
--- jump_next_field_end = { "<Tab>", mode = { "n", "v" } },
--- jump_prev_field_end = { "<S-Tab>", mode = { "n", "v" } },
--- jump_next_row = { "<Enter>", mode = { "n", "v" } },
--- jump_prev_row = { "<S-Enter>", mode = { "n", "v" } },
---
--- -- Custom key mapping example:
--- { "<leader>h", function() print("hello") end, mode = "n" },
--- }
--- ```
--- @type CsvView.Options.Keymaps
keymaps = {},
--- Actions for keymaps.
---@type CsvView.Options.Actions
actions = {
-- See lua/csvview/config.lua
},
},
cmd = { "CsvViewEnable", "CsvViewDisable", "CsvViewToggle" },
},
}

View file

@ -1,5 +0,0 @@
return {
{
"mfussenegger/nvim-dap",
},
}

View file

@ -1,5 +0,0 @@
return {
{
"HiPhish/debugpy.nvim",
},
}

View file

@ -1,9 +0,0 @@
return {
{
"L3MON4D3/LuaSnip",
dependencies = { "rafamadriz/friendly-snippets" },
opts = {
exclude = { "latex" },
},
},
}

View file

@ -1,9 +0,0 @@
return {
{
"3rd/image.nvim",
build = false, -- so that it doesn't build the rock https://github.com/3rd/image.nvim/issues/91#issuecomment-2453430239
opts = {
processor = "magick_cli",
},
},
}

View file

@ -1,31 +0,0 @@
return {
"neovim/nvim-lspconfig",
config = function()
-- lua_ls avec tes settings perso
vim.lsp.config("lua_ls", {
settings = {
Lua = {
diagnostics = { globals = { "vim" } },
workspace = { library = vim.api.nvim_get_runtime_file("", true) },
},
},
})
-- active tous les serveurs ; leurs configs viennent des
-- fichiers lsp/*.lua fournis par nvim-lspconfig (chargé ici)
vim.lsp.enable({
"nil_ls",
"lua_ls",
"texlab",
"marksman",
"pyright",
"bashls",
"clangd",
"cssls",
"jsonls",
"html",
"ts_ls",
"vimls",
})
end,
}

View file

@ -1,23 +0,0 @@
return {
"nvim-lualine/lualine.nvim",
opts = {
options = {
theme = "nightfly",
section_separators = { left = "", right = "" },
component_separators = { left = "", right = "" },
},
sections = {
lualine_a = { {
"mode",
fmt = function(str)
return str:upper()
end,
} },
lualine_b = { "branch", "diff" },
lualine_c = { "filename" },
lualine_x = { "diagnostics" },
lualine_y = { "filetype" },
lualine_z = { "progress", "location" },
},
},
}

View file

@ -1,18 +0,0 @@
-- lua/plugins/markview.lua
return {
"OXY2DEV/markview.nvim",
lazy = false,
opts = {
preview = {
icon_provider = "internal",
},
modes = { "n", "i" },
latex = {
enable = true,
fonts = {
enable = true,
},
},
},
}

View file

@ -1,5 +0,0 @@
return {
{ "mason-org/mason.nvim", enabled = false },
{ "mason-org/mason-lspconfig.nvim", enabled = false },
{ "WhoIsSethDaniel/mason-tool-installer.nvim", enabled = false },
}

View file

@ -1,22 +0,0 @@
return {
{
"NeogitOrg/neogit",
lazy = true,
dependencies = {
"nvim-lua/plenary.nvim", -- required
-- Only one of these is needed.
"sindrets/diffview.nvim", -- optional
-- For a custom log pager
"m00qek/baleia.nvim", -- optional
-- Only one of these is needed.
"nvim-telescope/telescope.nvim", -- optional
},
cmd = "Neogit",
keys = {
{ "<leader>gg", "<cmd>Neogit<cr>", desc = "Show Neogit UI" },
},
},
}

View file

@ -1,21 +0,0 @@
return {
{
"nvim-neo-tree/neo-tree.nvim",
branch = "v3.x",
dependencies = {
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
"nvim-tree/nvim-web-devicons",
},
lazy = false,
opts = {
filesystem = {
filtered_items = {
-- hide_dotfiles = false,
-- hide_gitignored = false,
}
}
}
}
}

View file

@ -1,22 +0,0 @@
-- lazy.nvim
return {
{
"folke/noice.nvim",
event = "VeryLazy",
opts = {
lsp = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
},
-- add any options here
},
dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
"MunifTanjim/nui.nvim",
-- OPTIONAL:
-- `nvim-notify` is only needed, if you want to use the notification view.
-- If not available, we use `mini` as the fallback
--- "rcarriga/nvim-notify",
},
},
}

View file

@ -1,216 +0,0 @@
return {
{
"stevearc/oil.nvim",
---@module 'oil'
---@type oil.SetupOpts
opts = {
-- Oil will take over directory buffers (e.g. `vim .` or `:e src/`)
-- Set to false if you want some other plugin (e.g. netrw) to open when you edit directories.
default_file_explorer = true,
-- Id is automatically added at the beginning, and name at the end
-- See :help oil-columns
columns = {
"icon",
-- "permissions",
-- "size",
-- "mtime",
},
-- Buffer-local options to use for oil buffers
buf_options = {
buflisted = false,
bufhidden = "hide",
},
-- Window-local options to use for oil buffers
win_options = {
wrap = false,
signcolumn = "no",
cursorcolumn = false,
foldcolumn = "0",
spell = false,
list = false,
conceallevel = 3,
concealcursor = "nvic",
},
-- Send deleted files to the trash instead of permanently deleting them (:help oil-trash)
delete_to_trash = false,
-- Skip the confirmation popup for simple operations (:help oil.skip_confirm_for_simple_edits)
skip_confirm_for_simple_edits = false,
-- Selecting a new/moved/renamed file or directory will prompt you to save changes first
-- (:help prompt_save_on_select_new_entry)
prompt_save_on_select_new_entry = true,
-- Oil will automatically delete hidden buffers after this delay
-- You can set the delay to false to disable cleanup entirely
-- Note that the cleanup process only starts when none of the oil buffers are currently displayed
cleanup_delay_ms = 2000,
lsp_file_methods = {
-- Enable or disable LSP file operations
enabled = true,
-- Time to wait for LSP file operations to complete before skipping
timeout_ms = 1000,
-- Set to true to autosave buffers that are updated with LSP willRenameFiles
-- Set to "unmodified" to only save unmodified buffers
autosave_changes = false,
},
-- Constrain the cursor to the editable parts of the oil buffer
-- Set to `false` to disable, or "name" to keep it on the file names
constrain_cursor = "editable",
-- Set to true to watch the filesystem for changes and reload oil
watch_for_changes = false,
-- Keymaps in oil buffer. Can be any value that `vim.keymap.set` accepts OR a table of keymap
-- options with a `callback` (e.g. { callback = function() ... end, desc = "", mode = "n" })
-- Additionally, if it is a string that matches "actions.<name>",
-- it will use the mapping at require("oil.actions").<name>
-- Set to `false` to remove a keymap
-- See :help oil-actions for a list of all available actions
keymaps = {
["g?"] = { "actions.show_help", mode = "n" },
["<CR>"] = "actions.select",
["<C-s>"] = { "actions.select", opts = { vertical = true } },
["<C-h>"] = { "actions.select", opts = { horizontal = true } },
["<C-t>"] = { "actions.select", opts = { tab = true } },
["<C-p>"] = "actions.preview",
["<C-c>"] = { "actions.close", mode = "n" },
["<C-l>"] = "actions.refresh",
["-"] = { "actions.parent", mode = "n" },
["_"] = { "actions.open_cwd", mode = "n" },
["`"] = { "actions.cd", mode = "n" },
["g~"] = { "actions.cd", opts = { scope = "tab" }, mode = "n" },
["gs"] = { "actions.change_sort", mode = "n" },
["gx"] = "actions.open_external",
["g."] = { "actions.toggle_hidden", mode = "n" },
["g\\"] = { "actions.toggle_trash", mode = "n" },
},
-- Set to false to disable all of the above keymaps
use_default_keymaps = true,
view_options = {
-- Show files and directories that start with "."
show_hidden = false,
-- This function defines what is considered a "hidden" file
is_hidden_file = function(name, bufnr)
local m = name:match("^%.")
return m ~= nil
end,
-- This function defines what will never be shown, even when `show_hidden` is set
is_always_hidden = function(name, bufnr)
return false
end,
-- Sort file names with numbers in a more intuitive order for humans.
-- Can be "fast", true, or false. "fast" will turn it off for large directories.
natural_order = "fast",
-- Sort file and directory names case insensitive
case_insensitive = false,
sort = {
-- sort order can be "asc" or "desc"
-- see :help oil-columns to see which columns are sortable
{ "type", "asc" },
{ "name", "asc" },
},
-- Customize the highlight group for the file name
highlight_filename = function(entry, is_hidden, is_link_target, is_link_orphan)
return nil
end,
},
-- Extra arguments to pass to SCP when moving/copying files over SSH
extra_scp_args = {},
-- Extra arguments to pass to aws s3 when creating/deleting/moving/copying files using aws s3
extra_s3_args = {},
-- EXPERIMENTAL support for performing file operations with git
git = {
-- Return true to automatically git add/mv/rm files
add = function(path)
return false
end,
mv = function(src_path, dest_path)
return false
end,
rm = function(path)
return false
end,
},
-- Configuration for the floating window in oil.open_float
float = {
-- Padding around the floating window
padding = 2,
-- max_width and max_height can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
max_width = 0,
max_height = 0,
border = nil,
win_options = {
winblend = 0,
},
-- optionally override the oil buffers window title with custom function: fun(winid: integer): string
get_win_title = nil,
-- preview_split: Split direction: "auto", "left", "right", "above", "below".
preview_split = "auto",
-- This is the config that will be passed to nvim_open_win.
-- Change values here to customize the layout
override = function(conf)
return conf
end,
},
-- Configuration for the file preview window
preview_win = {
-- Whether the preview window is automatically updated when the cursor is moved
update_on_cursor_moved = true,
-- How to open the preview window "load"|"scratch"|"fast_scratch"
preview_method = "fast_scratch",
-- A function that returns true to disable preview on a file e.g. to avoid lag
disable_preview = function(filename)
return false
end,
-- Window-local options to use for preview window buffers
win_options = {},
},
-- Configuration for the floating action confirmation window
confirmation = {
-- Width dimensions can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
-- min_width and max_width can be a single value or a list of mixed integer/float types.
-- max_width = {100, 0.8} means "the lesser of 100 columns or 80% of total"
max_width = 0.9,
-- min_width = {40, 0.4} means "the greater of 40 columns or 40% of total"
min_width = { 40, 0.4 },
-- optionally define an integer/float for the exact width of the preview window
width = nil,
-- Height dimensions can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
-- min_height and max_height can be a single value or a list of mixed integer/float types.
-- max_height = {80, 0.9} means "the lesser of 80 columns or 90% of total"
max_height = 0.9,
-- min_height = {5, 0.1} means "the greater of 5 columns or 10% of total"
min_height = { 5, 0.1 },
-- optionally define an integer/float for the exact height of the preview window
height = nil,
border = nil,
win_options = {
winblend = 0,
},
},
-- Configuration for the floating progress window
progress = {
max_width = 0.9,
min_width = { 40, 0.4 },
width = nil,
max_height = { 10, 0.9 },
min_height = { 5, 0.1 },
height = nil,
border = nil,
minimized_border = "none",
win_options = {
winblend = 0,
},
},
-- Configuration for the floating SSH window
ssh = {
border = nil,
},
-- Configuration for the floating keymaps help window
keymaps_help = {
border = nil,
},
},
-- Optional dependencies
dependencies = { { "nvim-mini/mini.icons", opts = {} } },
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons
-- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations.
lazy = false,
},
}

View file

@ -1,10 +0,0 @@
return {
{
"nvim-telescope/telescope.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
-- optional but recommended
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
},
},
}

View file

@ -1,17 +0,0 @@
return {
-- Configure le style de tokyonight
{
"folke/tokyonight.nvim",
opts = {
style = "night", -- "night" (dark), "storm", "moon", "day"
},
},
-- Dit à LazyVim d'utiliser ce colorscheme
{
"LazyVim/LazyVim",
opts = {
colorscheme = "tokyonight-night",
},
},
}

View file

@ -1,10 +0,0 @@
return {
{
"akinsho/toggleterm.nvim",
version = "*",
opts = {
open_mapping = [[<c-\>]],
direction = "float",
},
},
}

View file

@ -1,27 +0,0 @@
return {
"nvim-treesitter/nvim-treesitter",
branch = "main",
build = ":TSUpdate",
config = function()
require("nvim-treesitter").setup({})
require("nvim-treesitter").install({
"cpp",
"matlab",
"regex",
"yaml",
"python",
"latex",
"typst",
"markdown_inline",
"comment",
"bash",
"c",
"html",
"lua",
"markdown",
"nix",
"vim",
"vimdoc",
})
end,
}

View file

@ -1,5 +0,0 @@
return {
{
"SirVer/ultisnips",
},
}

View file

@ -1,10 +0,0 @@
return {
{
"itsfernn/vimtex-follow",
dependencies = { "lervag/vimtex" },
lazy = false,
config = function()
require("vimtex-follow").setup()
end,
},
}

View file

@ -1,19 +0,0 @@
return {
{
"lervag/vimtex",
lazy = false, -- we don't want to lazy load VimTeX
-- tag = "v2.15", -- uncomment to pin to a specific release
init = function()
-- VimTeX configuration goes here, e.g.
vim.g.vimtex_view_method = "zathura"
vim.g.vimtex_complete_close_brace = 1
vim.g.vimtex_format_enabled = 1
vim.g.vimtex_imaps_enabled = 0
vim.g.vimtex_complete_enabled = 0
vim.g.vimtex_syntax_enabled = 0
vim.g.vimtex_compiler_latexmk = {
aux_dir = vim.fn.expand("~/.aux-tex/"),
}
end,
},
}

View file

@ -1,20 +0,0 @@
return {
{
"folke/which-key.nvim",
event = "VeryLazy",
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "Buffer Local Keymaps (which-key)",
},
},
},
}

View file

@ -1,25 +0,0 @@
-- (~/.config/nvim/lua/neoconf/lazy_init.lua)
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable",
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- leaders AVANT lazy.setup (exigé par LazyVim)
vim.g.mapleader = " "
vim.g.maplocalleader = ","
require("lazy").setup({
spec = {
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
{ import = "neoconf.lazy" },
},
change_detection = { notify = false },
})

View file

@ -1,14 +0,0 @@
-- diagnostic
vim.diagnostic.config({
virtual_text = {
prefix = "", -- Icône avant le message
source = "if_many", -- Affiche la source LSP si plusieurs
format = function(diag)
return string.format("%s: %s", diag.source, diag.message)
end,
},
signs = true,
underline = true,
update_in_insert = false, -- Évite flicker en insert
severity_sort = true,
})

View file

@ -1,22 +0,0 @@
-- treesitter
vim.wo[0][0].foldexpr = "v:lua.vim.treesitter.foldexpr()"
vim.wo[0][0].foldmethod = "expr"
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
-- Auto-cd + exécution Python
vim.keymap.set("n", "<leader>rr", "<cmd>ToggleTerm direction=float size=20<cr>", { desc = "Run Python" })
vim.keymap.set("n", "<leader>rp", function()
local term = require("toggleterm.terminal").Terminal:new({
cmd = "cd " .. vim.fn.expand("%:p:h") .. " && python " .. vim.fn.expand("%"),
dir = "git_dir",
direction = "float",
close_on_exit = false,
})
term:toggle()
end, { desc = "Python Run" })
-- ultisnips
vim.g.UltiSnipsExpandOrJumpTrigger = "<tab>"
vim.g.UltiSNipsListSnippets = "<c-tab>"
vim.g.UltiSnipsJumpBackwardTrigger = "<c-b>"

View file

@ -1,75 +0,0 @@
-- (.config/nvim/lua/neoconf/remap.lua)
-- leader = space
-- C = ctrl
-- clear highlights when typing esc
vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>")
-- diagnostic keymaps
vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Open diagnostic [Q]uickfix list" })
-- exit terminal mode (or ctrl C)
vim.keymap.set("t", "<Esc><Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" })
-- disable arrow keys
vim.keymap.set("n", "<left>", '<cmd>echo "Use h to move!!"<CR>')
vim.keymap.set("n", "<right>", '<cmd>echo "Use l to move!!"<CR>')
vim.keymap.set("n", "<up>", '<cmd>echo "Use k to move!!"<CR>')
vim.keymap.set("n", "<down>", '<cmd>echo "Use j to move!!"<CR>')
-- ctrl hjkl for moving between windows
vim.keymap.set("n", "<C-h>", "<C-w><C-h>", { desc = "Move focus to the left window" })
vim.keymap.set("n", "<C-l>", "<C-w><C-l>", { desc = "Move focus to the right window" })
vim.keymap.set("n", "<C-j>", "<C-w><C-j>", { desc = "Move focus to the lower window" })
vim.keymap.set("n", "<C-k>", "<C-w><C-k>", { desc = "Move focus to the upper window" })
-- telescope
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "Telescope find files" })
vim.keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "Telescope live grep" })
vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "Telescope buffers" })
vim.keymap.set("n", "<leader>fh", builtin.help_tags, { desc = "Telescope help tags" })
-- oil
vim.keymap.set("n", "<leader>n", "<cmd>Oil<CR>", { desc = "Launch oil buffer" })
-- csv
vim.keymap.set(
"n",
"<leader>cv",
":CsvViewToggle delimiter=; display_mode=border header_lnum=1<CR>",
{ desc = "Toggle CSV view" }
)
-- python
vim.keymap.set("n", "<F5>", ":w<CR>:!python3 %<CR>", { noremap = true, silent = false })
-- spell checker from fr to en
vim.keymap.set("n", "<leader>sf", function()
if vim.o.spelllang == "fr" then
vim.o.spelllang = "en"
else
vim.o.spelllang = "fr"
end
vim.o.spell = true
print("Spelllang: " .. vim.o.spelllang)
end, { desc = "Toggle spelllang FR/EN" })
-- toggle correction
vim.keymap.set("n", "<leader>sg", function()
vim.wo.spell = not vim.wo.spell
vim.notify("Spell: " .. (vim.wo.spell and "ON" or "OFF"), vim.log.levels.INFO)
end, { desc = "Toggle spell check" })
-- toggle split view markdown
vim.api.nvim_set_keymap(
"n",
"<leader>m",
"<CMD>Markview splitToggle<CR>",
{ desc = "Toggles `splitview` for current buffer." }
)
vim.api.nvim_create_user_command("OctaveRun", function()
vim.cmd("write")
vim.cmd('!octave -qf "%:p"')
end, {})
-- set vimtex main to current file
local function vimtex_set_main()
vim.b.vimtex_main = vim.fn.expand("%:p")
vim.b.vimtex = nil
vim.fn["vimtex#init"]()
print("VimTeX main → " .. vim.b.vimtex_main)
end
vim.keymap.set("n", "<leader>lm", vimtex_set_main, { desc = "VimTeX: set main to current file" })

View file

@ -1,46 +0,0 @@
-- .config/nvim/lua/neoconf/settings.lua
vim.g.have_nerd_font = true
-- options
-- enable line number
vim.o.number = true
-- relative line number
vim.o.relativenumber = true
-- dont show the mode
vim.o.showmode = true
-- sync clipboard
vim.schedule(function()
vim.o.clipboard = "unnamedplus"
end)
-- enable break indent
vim.o.breakindent = true
-- indent options
vim.o.autoindent = true
vim.o.smartindent = true
vim.o.expandtab = true
-- save undo history
vim.o.undofile = true
-- case insensitive search
vim.o.ignorecase = true
vim.o.smartcase = true
-- keep signcolumn
vim.o.signcolumn = "yes"
-- config new split opening
vim.o.splitright = true
vim.o.splitbelow = true
-- whitespace char display
vim.o.list = true
vim.opt.listchars = { tab = "» ", trail = "·", nbsp = "" }
-- preview substitutions live with !
vim.o.inccommand = "split"
-- show line cursor
vim.o.cursorline = true
-- min lines above and below cursor
vim.o.scrolloff = 10
-- confirm save/confirm
vim.o.confirm = true
-- spell checking
vim.opt.spell = true
vim.opt.spelllang = "fr"
-- wrap
vim.o.wrap = true
vim.o.linebreak = true

View file

@ -1 +0,0 @@
/nix/store/rjsnz0fgbfbw9rw9y6sdiba87pw6i928-home-manager-files/.config/nvim/luasnippets/matlab.lua

View file

@ -1 +0,0 @@
/nix/store/rjsnz0fgbfbw9rw9y6sdiba87pw6i928-home-manager-files/.config/nvim/luasnippets/tex.lua

File diff suppressed because it is too large Load diff

View file

@ -1 +0,0 @@
/nix/store/rjsnz0fgbfbw9rw9y6sdiba87pw6i928-home-manager-files/.config/nvim/queries/nix/injections.scm

View file

@ -1,12 +0,0 @@
{
"Test": {
"prefix": [
"preamble",
"pre"
],
"body": [
"\\begin{preamble}"
],
"description": "Préambule test"
}
}

View file

@ -1,15 +0,0 @@
{
"contributes": {
"snippets": [
{
"language": "latex",
"path": "./latex.json"
},
{
"language": "markdown",
"path": "./markdown.json"
}
]
},
"name": "my-snippets"
}

View file

@ -1,3 +0,0 @@
discretizing
timesteps
Possibilistic

View file

@ -1,3 +0,0 @@
Discretization
discretized
discretization