Merge branch 'waybar-here-i-come' of github.com:anotherhadi/nixy into waybar-here-i-come

This commit is contained in:
Hadi
2026-07-30 16:55:57 +02:00
82 changed files with 1020 additions and 362 deletions
-66
View File
@@ -1,66 +0,0 @@
{
pkgs,
config,
...
}: let
cursorShaders = pkgs.fetchFromGitHub {
owner = "sahaj-b";
repo = "ghostty-cursor-shaders";
rev = "06d4e90fb5410e9c4d0b3131584060adddf89406";
hash = "sha256-G/UIr1bKnxn1AcHl/4FL/jou6b7M2VeREslYVELxdmw=";
};
c = config.lib.stylix.colors;
in {
home.sessionVariables = {
TERMINAL = "ghostty";
TERM = "ghostty";
};
programs.ghostty = {
enable = true;
installVimSyntax = true;
enableZshIntegration = true;
settings = {
window-padding-x = 10;
confirm-close-surface = false;
window-padding-y = 10;
clipboard-read = "allow";
clipboard-write = "allow";
copy-on-select = "clipboard";
app-notifications = false;
custom-shader = "${cursorShaders}/cursor_warp.glsl";
custom-shader-animation = "always";
keybind = [
# "ctrl+j=goto_split:left"
# "ctrl+i=goto_split:up"
# "ctrl+k=goto_split:down"
# "ctrl+l=goto_split:right"
# "shift+ctrl+h=new_split:left"
# "shift+ctrl+j=new_split:down"
# "shift+ctrl+k=new_split:up"
# "shift+ctrl+l=new_split:right"
"shift+ctrl+tab=new_tab"
];
};
};
home.file.".config/ilovetui/config.yaml".text = ''
colors:
base00: "#${c.base00}" # Background
base01: "#${c.base01}" # Lighter Background / Status Bars
base02: "#${c.base02}" # Selection Background
base03: "#${c.base03}" # Comments / Invisibles
base04: "#${c.base04}" # Dark Foreground / Status Bars
base05: "#${c.base05}" # Default Foreground
base06: "#${c.base06}" # Light Foreground
base07: "#${c.base07}" # Light Background
base08: "#${c.base08}" # Variables / Errors / Diff Deleted
base09: "#${c.base09}" # Integers / Constants / Booleans
base0a: "#${c.base0A}" # Classes / Warnings / Search Background
base0b: "#${c.base0B}" # Strings / Success / Diff Inserted
base0c: "#${c.base0C}" # Support / Regex / Escape Characters
base0d: "#${c.base0D}" # Functions / Methods / Headings / Accent
base0e: "#${c.base0E}" # Keywords / Storage / Diff Changed
base0f: "#${c.base0F}" # Embedded / Misc
'';
}
-17
View File
@@ -1,17 +0,0 @@
{
pkgs,
pkgs-stable,
}:
(with pkgs; [
go
claude-code
])
++ (with pkgs-stable; [
nodejs
air
duckdb
python3
jq
nix-prefetch-github
rsync
])
+14 -1
View File
@@ -3,5 +3,18 @@
pkgs-stable,
...
}: {
home.packages = import ./dev-packages.nix {inherit pkgs pkgs-stable;};
home.packages = with pkgs;
[
go
claude-code
]
++ (with pkgs-stable; [
nodejs
air
duckdb
python3
jq
nix-prefetch-github
rsync
]);
}
-21
View File
@@ -1,21 +0,0 @@
{
inputs,
pkgs,
pkgs-stable,
system,
...
}: let
devPackages = import ./dev-packages.nix {inherit pkgs pkgs-stable;};
cyberPackages = import ./cybersecurity-packages.nix {inherit pkgs pkgs-stable;};
in {
packages.${system} = {
dev = pkgs.buildEnv {
name = "dev-tools";
paths = devPackages;
};
cybersecurity = pkgs.buildEnv {
name = "cybersecurity-tools";
paths = cyberPackages;
};
};
}
-11
View File
@@ -1,11 +0,0 @@
{pkgs-stable, ...}: {
home.packages = with pkgs-stable; [
tty-solitaire
bastet
peaclock
cbonsai
pipes
cmatrix
fastfetch
];
}
@@ -91,6 +91,7 @@
nativeBuildInputs = [pkgs.makeWrapper];
postBuild = ''
wrapProgram $out/bin/helium \
--set-default GTK_USE_PORTAL 1 \
--run ${lib.escapeShellArg (toString patchScript)}
'';
};
@@ -111,7 +112,7 @@ in {
xdg.desktopEntries.helium = {
name = "Helium";
genericName = "Navigateur Web";
genericName = "Web Browser";
exec = "${config.programs.helium.package}/bin/helium %U";
icon = "${config.programs.helium.package}/share/icons/hicolor/256x256/apps/helium.png";
terminal = false;
@@ -128,7 +129,7 @@ in {
xdg.desktopEntries.helium-private = {
name = "Helium (Private window)";
genericName = "Navigateur Web";
genericName = "Web Browser";
exec = "${config.programs.helium.package}/bin/helium --incognito %U";
icon = "${config.programs.helium.package}/share/icons/hicolor/256x256/apps/helium.png";
terminal = false;
+16
View File
@@ -0,0 +1,16 @@
{pkgs-stable, ...}: {
home.packages = with pkgs-stable; [
vlc # Video player
obsidian # Note taking app
textpieces # Manipulate texts
resources # Resource monitor
gnome-clocks # Clocks app
gnome-text-editor # Basic graphic text editor
ticktick # Todo app
pinta # Image editor
switcheroo # Convert images between different formats
onlyoffice-desktopeditors # Office suite
blanket # Listen to different sounds
signal-desktop # Messaging app
];
}
-37
View File
@@ -1,37 +0,0 @@
{
inputs,
config,
...
}: let
c = config.lib.stylix.colors;
in {
imports = [inputs.nvf.homeManagerModules.default];
home.sessionVariables = {
EDITOR = "nvim";
};
programs.nvf = {
enable = true;
settings = {
vim.luaConfigRC.hl-overrides = ''
local function apply_hl()
vim.api.nvim_set_hl(0, "MiniStarterHeader", { fg = "#${c.base0D}", bold = true })
vim.api.nvim_set_hl(0, "SnacksPickerBorder", { fg = "#${c.base0D}" })
vim.api.nvim_set_hl(0, "SnacksPickerTitle", { fg = "#${c.base0D}", bold = true })
end
apply_hl()
vim.api.nvim_create_autocmd("ColorScheme", { pattern = "*", callback = apply_hl })
'';
imports = [
./options.nix
./languages.nix
./picker.nix
./snacks.nix
./keymaps.nix
./utils.nix
./mini.nix
];
};
};
}
-37
View File
@@ -1,37 +0,0 @@
{
inputs,
pkgs,
system,
...
}: let
nvimConfig = inputs.nvf.lib.neovimConfiguration {
inherit pkgs;
modules = [
./options.nix
./languages.nix
./picker.nix
./snacks.nix
./keymaps.nix
./utils.nix
./mini.nix
];
};
in {
packages.${system}.nvim = nvimConfig.neovim;
apps.${system}.nvim = {
type = "app";
program = "${nvimConfig.neovim}/bin/nvim";
};
defaultApp.${system} = {
type = "app";
program = "${nvimConfig.neovim}/bin/nvim";
};
homeManagerModules.nvim = {
imports = [
inputs.nvf.homeManagerModules.default
./default.nix
];
};
}
+40
View File
@@ -0,0 +1,40 @@
# Ghostty is a terminal emulator
{
pkgs,
config,
...
}: let
cursorShaders = pkgs.fetchFromGitHub {
owner = "sahaj-b";
repo = "ghostty-cursor-shaders";
rev = "06d4e90fb5410e9c4d0b3131584060adddf89406";
hash = "sha256-G/UIr1bKnxn1AcHl/4FL/jou6b7M2VeREslYVELxdmw=";
};
c = config.lib.stylix.colors;
in {
home.sessionVariables = {
TERMINAL = "ghostty";
TERM = "ghostty";
};
programs.ghostty = {
enable = true;
installVimSyntax = true;
enableZshIntegration = true;
settings = {
window-padding-x = 10;
confirm-close-surface = false;
window-padding-y = 10;
gtk-single-instance = true;
clipboard-read = "allow";
clipboard-write = "allow";
copy-on-select = "clipboard";
app-notifications = false;
custom-shader = "${cursorShaders}/cursor_warp.glsl";
custom-shader-animation = "always";
keybind = [
"shift+ctrl+tab=new_tab"
];
};
};
}
@@ -16,6 +16,8 @@ in {
"node_modules"
"result"
"result-*"
".superpowers/"
"docs/superpowers/"
];
settings = {
user.name = username;
@@ -40,13 +42,10 @@ in {
d = "diff";
ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)";
pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)";
af = "!git add $(git ls-files -m -o --exclude-standard | sk -m)";
st = "status";
br = "branch";
df = "!git hist | peco | awk '{print $2}' | xargs -I {} git diff {}^ {}";
hist = ''log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all'';
llog = ''log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative'';
edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; hx `f`";
};
};
};
+23
View File
@@ -0,0 +1,23 @@
{config, ...}: let
c = config.lib.stylix.colors;
in {
home.file.".config/ilovetui/config.yaml".text = ''
colors:
base00: "#${c.base00}" # Background
base01: "#${c.base01}" # Lighter Background / Status Bars
base02: "#${c.base02}" # Selection Background
base03: "#${c.base03}" # Comments / Invisibles
base04: "#${c.base04}" # Dark Foreground / Status Bars
base05: "#${c.base05}" # Default Foreground
base06: "#${c.base06}" # Light Foreground
base07: "#${c.base07}" # Light Background
base08: "#${c.base08}" # Variables / Errors / Diff Deleted
base09: "#${c.base09}" # Integers / Constants / Booleans
base0a: "#${c.base0A}" # Classes / Warnings / Search Background
base0b: "#${c.base0B}" # Strings / Success / Diff Inserted
base0c: "#${c.base0C}" # Support / Regex / Escape Characters
base0d: "#${c.base0D}" # Functions / Methods / Headings / Accent
base0e: "#${c.base0E}" # Keywords / Storage / Diff Changed
base0f: "#${c.base0F}" # Embedded / Misc
'';
}
+37
View File
@@ -0,0 +1,37 @@
{
config,
lib,
...
}: {
home.sessionVariables = {
EDITOR = "nvim";
};
programs.nvf = {
enable = true;
settings = {
vim.luaConfigRC = lib.mkIf (config ? stylix && config.stylix.enable) {
hl-overrides = let
c = config.lib.stylix.colors;
in ''
local function apply_hl()
vim.api.nvim_set_hl(0, "MiniStarterHeader", { fg = "#${c.base0D}", bold = true })
vim.api.nvim_set_hl(0, "SnacksPickerBorder", { fg = "#${c.base0D}" })
vim.api.nvim_set_hl(0, "SnacksPickerTitle", { fg = "#${c.base0D}", bold = true })
end
apply_hl()
vim.api.nvim_create_autocmd("ColorScheme", { pattern = "*", callback = apply_hl })
'';
};
imports = [
./options.nix
./languages.nix
./picker.nix
./snacks.nix
./keymaps.nix
./utils.nix
./mini.nix
];
};
};
}
+133
View File
@@ -0,0 +1,133 @@
{
"nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1777699697,
"narHash": "sha256-Eg9b/rq/ECYwNwEXs5i9wHyhxNI0JrYx2srdI2uZMaQ=",
"ref": "refs/heads/main",
"rev": "382052b74656a369c5408822af3f2501e9b1af81",
"revCount": 94,
"type": "git",
"url": "https://git.lix.systems/lix-project/flake-compat.git"
},
"original": {
"type": "git",
"url": "https://git.lix.systems/lix-project/flake-compat.git"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nvf",
"nixpkgs"
]
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"mnw": {
"locked": {
"lastModified": 1780772958,
"narHash": "sha256-VKKe8r4pwCGWZ3Yr9CPN129R4S3CKLSrlYqdYz3vKpM=",
"owner": "Gerg-L",
"repo": "mnw",
"rev": "0871dbf63a53610c95db04439ed8ea4d6ec9c160",
"type": "github"
},
"original": {
"owner": "Gerg-L",
"repo": "mnw",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1785133411,
"narHash": "sha256-Yjv0WEg39KRYS0rBdTbu6Fc/or/ihAKk13W9sQ6VWd0=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2f5a153c270b70cb0f8c11f46d96d6d3bc39f4e3",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1781216227,
"narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nvf": {
"inputs": {
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"mnw": "mnw",
"nixpkgs": "nixpkgs_2",
"systems": "systems"
},
"locked": {
"lastModified": 1781997110,
"narHash": "sha256-6D6xtYN5t1kZGNd69eMZsRBkgX5Df1roErn/kFR1C+A=",
"owner": "notashelf",
"repo": "nvf",
"rev": "320f60b97075a58d38b90fc5e39f478421dbd38a",
"type": "github"
},
"original": {
"owner": "notashelf",
"repo": "nvf",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"nvf": "nvf"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
+57
View File
@@ -0,0 +1,57 @@
{
description = "Hadi's NVF Neovim configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
nvf.url = "github:notashelf/nvf";
};
outputs = {
self,
nixpkgs,
nvf,
...
}: let
systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin"];
forAllSystems = f: nixpkgs.lib.genAttrs systems f;
modules = [
./options.nix
./languages.nix
./picker.nix
./snacks.nix
./keymaps.nix
./utils.nix
./mini.nix
];
in {
packages = forAllSystems (system: let
pkgs = nixpkgs.legacyPackages.${system};
nvim = (nvf.lib.neovimConfiguration {inherit pkgs modules;}).neovim;
in {
inherit nvim;
default = nvim;
});
apps = forAllSystems (system: let
nvim = {
type = "app";
program = "${self.packages.${system}.nvim}/bin/nvim";
};
in {
inherit nvim;
default = nvim;
});
homeManagerModules = rec {
nvim = {
imports = [
nvf.homeManagerModules.default
./default.nix
];
};
default = nvim;
};
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
};
}
@@ -1,4 +1,4 @@
{...}: {
{pkgs, ...}: {
vim = {
diagnostics = {
enable = true;
@@ -25,6 +25,7 @@
context.enable = true;
highlight.enable = true;
textobjects.enable = true;
grammars = [pkgs.vimPlugins.nvim-treesitter.grammarPlugins.http];
};
lsp = {
enable = true;
@@ -4,19 +4,6 @@
...
}: {
home.packages = with pkgs-stable; [
vlc # Video player
obsidian # Note taking app
textpieces # Manipulate texts
resources # Ressource monitor
gnome-clocks # Clocks app
gnome-text-editor # Basic graphic text editor
ticktick # Todo app
pinta # Image editor
switcheroo # Convert images between different formats
onlyoffice-desktopeditors # Office suite
blanket # Listen to different sounds
signal-desktop # Messaging app
# I love TUIs
caligula # User-friendly, lightweight TUI for disk imaging (ISO, USB BOOT)
dysk # A terminal-based disk usage analyzer
@@ -40,5 +27,14 @@
pastel # Command-line tool to generate, analyze, convert and manipulate colors
imagemagick # Image manipulation tool
chafa # Image to ANSI/Unicode converter and more.
# Just cool
tty-solitaire
bastet
peaclock
cbonsai
pipes
cmatrix
fastfetch
];
}
@@ -104,7 +104,7 @@
alias -s {csv,tsv,parquet,pqt,arrow,db,sqlite,xls,xlsx,xlsm,xlsb,fwf}=tw
alias -s {png,jpg,jpeg,gif,pdf}=xdg-open
# 3. Global Aliases (Remplacés n'importe où dans la commande, pas seulement au début)
# 3. Global Aliases (expanded anywhere in the command, not just at the start)
alias -g G="| grep"
alias -g L="| less"
alias -g V="| nvim"
@@ -114,7 +114,7 @@
alias -g C="| wl-copy"
alias -g NE="2>/dev/null"
alias -g ND=">/dev/null"
alias -g NUL=">/dev/null 2>1"
alias -g NUL=">/dev/null 2>&1"
# search history based on what's typed in the prompt
autoload -U history-search-end