Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
Hadi
2026-05-04 20:40:09 +02:00
parent e805c868a7
commit d71c9d8169
61 changed files with 672 additions and 343 deletions
+12 -3
View File
@@ -63,8 +63,14 @@
exec = "brave --incognito";
icon = "brave-browser";
terminal = false;
categories = ["Network" "WebBrowser"];
mimeType = ["text/html" "text/xml"];
categories = [
"Network"
"WebBrowser"
];
mimeType = [
"text/html"
"text/xml"
];
};
brave-tor = {
name = "Brave (Private window w/Tor)";
@@ -72,7 +78,10 @@
exec = "brave --tor";
icon = "brave-browser";
terminal = false;
categories = ["Network" "WebBrowser"];
categories = [
"Network"
"WebBrowser"
];
};
};
}
+2 -4
View File
@@ -44,10 +44,8 @@ in {
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'';
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`";
};
};
+5 -2
View File
@@ -16,12 +16,15 @@ in {
update.method = "never";
git = {
commit.signOff = true;
overrideGpg = true;
overrideGpg = true;
parseEmoji = true;
};
gui = {
theme = {
activeBorderColor = [accent "bold"];
activeBorderColor = [
accent
"bold"
];
inactiveBorderColor = [muted];
};
showListFooter = false;
+2 -2
View File
@@ -10,12 +10,12 @@
go
bun
nodejs
air
duckdb
claude-code
inputs.bun2nix.packages.${stdenv.hostPlatform.system}.default
])
++ (with pkgs-stable; [
air
duckdb
docker
python3
jq
+3 -1
View File
@@ -8,5 +8,7 @@
configDirectory = "$HOME/.config/nixos";
};
homeManagerModules.nixy = {imports = [./default.nix];};
homeManagerModules.nixy = {
imports = [./default.nix];
};
}
+5 -1
View File
@@ -1,4 +1,8 @@
{inputs, pkgs, ...}: {
{
inputs,
pkgs,
...
}: {
imports = [inputs.nvf.homeManagerModules.default];
# Packages needed by snacks image preview
home.packages = with pkgs; [
+25 -5
View File
@@ -62,19 +62,31 @@
}
{
key = "<MiddleMouse>";
mode = ["n" "i" "v"];
mode = [
"n"
"i"
"v"
];
action = "<nop>";
silent = true;
}
{
key = "<2-MiddleMouse>";
mode = ["n" "i" "v"];
mode = [
"n"
"i"
"v"
];
action = "<nop>";
silent = true;
}
{
key = "<3-MiddleMouse>";
mode = ["n" "i" "v"];
mode = [
"n"
"i"
"v"
];
action = "<nop>";
silent = true;
}
@@ -218,7 +230,11 @@
# Save
{
key = "<C-s>";
mode = ["n" "i" "v"];
mode = [
"n"
"i"
"v"
];
silent = true;
action = "<cmd>w<cr>";
desc = "Save file";
@@ -227,7 +243,11 @@
# Deactivate "esc"
{
key = "<Esc>";
mode = ["n" "i" "v"];
mode = [
"n"
"i"
"v"
];
silent = true;
action = "<Nop>";
desc = "Disable Escape";
+1 -2
View File
@@ -66,8 +66,7 @@
key = "<leader>fc";
mode = "n";
silent = true;
action = ''
<cmd>lua Snacks.picker.files({ cwd = vim.fn.stdpath("config") })<cr>'';
action = ''<cmd>lua Snacks.picker.files({ cwd = vim.fn.stdpath("config") })<cr>'';
desc = "Find Config File";
}
{
+12 -16
View File
@@ -14,13 +14,9 @@
c = config.lib.stylix.colors;
stripProtocol = url:
lib.removePrefix "https://" (lib.removePrefix "http://" url);
stripProtocol = url: lib.removePrefix "https://" (lib.removePrefix "http://" url);
stripDomain = url:
builtins.head (
lib.splitString "/" (stripProtocol url)
);
stripDomain = url: builtins.head (lib.splitString "/" (stripProtocol url));
mkCard = item: let
domain = stripDomain item.url;
@@ -69,13 +65,15 @@
items = result.pending;
};
in
lib.concatMapStrings (chunk:
if chunk.isCards
then ''
<div class="cards">
${lib.concatMapStrings mkCard chunk.items}
</div>''
else mkFolder chunk.folder)
lib.concatMapStrings (
chunk:
if chunk.isCards
then ''
<div class="cards">
${lib.concatMapStrings mkCard chunk.items}
</div>''
else mkFolder chunk.folder
)
chunks;
mkFolder = folder: let
@@ -145,9 +143,7 @@
)
items;
publicBookmarks =
pkgs.writeText "qutebrowser-public-bookmarks"
(collectBookmarks "" bookmarkList);
publicBookmarks = pkgs.writeText "qutebrowser-public-bookmarks" (collectBookmarks "" bookmarkList);
in {
config = {
xdg.dataFile."qutebrowser/bookmarks.html".text = ''
+4 -1
View File
@@ -27,7 +27,10 @@
genericName = "Web Browser";
exec = "qutebrowser --temp-basedir %U";
icon = "qutebrowser";
categories = ["Network" "WebBrowser"];
categories = [
"Network"
"WebBrowser"
];
};
programs.qutebrowser = {
+11 -2
View File
@@ -7,7 +7,11 @@
};
new_instance_open_target = "window";
"tabs.last_close" = "close";
"statusbar.widgets" = ["keypress" "url" "progress"];
"statusbar.widgets" = [
"keypress"
"url"
"progress"
];
# Adblock
"content.blocking.enabled" = true;
@@ -26,7 +30,12 @@
"downloads.location.prompt" = false;
# Editor (Ctrl+e in text fields)
"editor.command" = ["ghostty" "-e" "nvim" "{}"];
"editor.command" = [
"ghostty"
"-e"
"nvim"
"{}"
];
# Tabs
# "tabs.show" = "switching";
+4 -2
View File
@@ -29,8 +29,10 @@
"qutebrowser/greasemonkey/return-youtube-dislike.user.js".source = inputs.qs-return-youtube-dislike;
"qutebrowser/greasemonkey/sponsorblock-lite.user.js".source = inputs.qs-sponsorblock-lite;
"qutebrowser/greasemonkey/dont-track-me-google.user.js".source = inputs.qs-dont-track-me-google;
"qutebrowser/greasemonkey/i-dont-care-about-cookies.user.js".source = inputs.qs-i-dont-care-about-cookies;
"qutebrowser/greasemonkey/tracking-token-stripper.user.js".source = inputs.qs-tracking-token-stripper;
"qutebrowser/greasemonkey/i-dont-care-about-cookies.user.js".source =
inputs.qs-i-dont-care-about-cookies;
"qutebrowser/greasemonkey/tracking-token-stripper.user.js".source =
inputs.qs-tracking-token-stripper;
"qutebrowser/greasemonkey/bypass-paywalls-clean.user.js".source = inputs.qs-bypass-paywalls-clean;
"qutebrowser/greasemonkey/anti-adblock-fuckoff.user.js".source = inputs.qs-anti-adblock-fuckoff;
};
+7 -1
View File
@@ -1,4 +1,10 @@
# Import all shell configurations
{
imports = [./fzf.nix ./zsh.nix ./starship.nix ./zoxide.nix ./eza.nix];
imports = [
./fzf.nix
./zsh.nix
./starship.nix
./zoxide.nix
./eza.nix
];
}
+3 -1
View File
@@ -20,7 +20,9 @@ in {
"$git_status"
"$character"
];
directory = {style = accent;};
directory = {
style = accent;
};
character = {
success_symbol = "[](${accent})";
+15 -5
View File
@@ -7,7 +7,12 @@
}: let
fetch = config.theme.fetch; # neofetch, nerdfetch, pfetch
in {
home.packages = with pkgs; [bat ripgrep tldr witr];
home.packages = with pkgs; [
bat
ripgrep
tldr
witr
];
# Add go binaries to the PATH
home.sessionPath = ["$HOME/go/bin"];
@@ -22,7 +27,14 @@ in {
autosuggestion.enable = true;
syntaxHighlighting = {
enable = true;
highlighters = ["main" "brackets" "pattern" "regexp" "root" "line"];
highlighters = [
"main"
"brackets"
"pattern"
"regexp"
"root"
"line"
];
};
historySubstringSearch.enable = true;
@@ -33,9 +45,7 @@ in {
};
profileExtra = lib.optionalString (config.home.sessionPath != []) ''
export PATH="$PATH''${PATH:+:}${
lib.concatStringsSep ":" config.home.sessionPath
}"
export PATH="$PATH''${PATH:+:}${lib.concatStringsSep ":" config.home.sessionPath}"
'';
shellAliases = {
+64 -15
View File
@@ -1,10 +1,22 @@
{
programs.caelestia.settings = {
session.commands = {
shutdown = ["systemctl" "poweroff"];
logout = ["loginctl" "lock-session"];
hibernate = ["systemctl" "hibernate"];
reboot = ["systemctl" "reboot"];
shutdown = [
"systemctl"
"poweroff"
];
logout = [
"loginctl"
"lock-session"
];
hibernate = [
"systemctl"
"hibernate"
];
reboot = [
"systemctl"
"reboot"
];
};
launcher = {
actionPrefix = "/";
@@ -13,7 +25,10 @@
name = "Calculator";
icon = "calculate";
description = "Do simple math equations (powered by Qalc)";
command = ["autocomplete" "calc"];
command = [
"autocomplete"
"calc"
];
enabled = true;
dangerous = false;
}
@@ -21,7 +36,10 @@
name = "Shutdown";
icon = "power_settings_new";
description = "Shutdown the system";
command = ["systemctl" "poweroff"];
command = [
"systemctl"
"poweroff"
];
enabled = true;
dangerous = true;
}
@@ -29,7 +47,10 @@
name = "Reboot";
icon = "cached";
description = "Reboot the system";
command = ["systemctl" "reboot"];
command = [
"systemctl"
"reboot"
];
enabled = true;
dangerous = true;
}
@@ -37,7 +58,11 @@
name = "Logout";
icon = "exit_to_app";
description = "Log out of the current session";
command = ["loginctl" "terminate-user" ""];
command = [
"loginctl"
"terminate-user"
""
];
enabled = true;
dangerous = true;
}
@@ -45,7 +70,10 @@
name = "Lock";
icon = "lock";
description = "Lock the current session";
command = ["loginctl" "lock-session"];
command = [
"loginctl"
"lock-session"
];
enabled = true;
dangerous = false;
}
@@ -53,7 +81,10 @@
name = "Sleep";
icon = "bedtime";
description = "Suspend then hibernate";
command = ["systemctl" "suspend-then-hibernate"];
command = [
"systemctl"
"suspend-then-hibernate"
];
enabled = true;
dangerous = false;
}
@@ -61,7 +92,12 @@
name = "Restart caelestia";
icon = "cached";
description = "Restart caelestia";
command = ["hyprctl" "dispatch" "exec" "caelestia-shell kill | sleep 1 | caelestia-shell"];
command = [
"hyprctl"
"dispatch"
"exec"
"caelestia-shell kill | sleep 1 | caelestia-shell"
];
enabled = true;
dangerous = false;
}
@@ -69,7 +105,11 @@
name = "Emoji Picker";
icon = "mood";
description = "Toggle the emoji picker";
command = ["caelestia" "emoji" "-p"];
command = [
"caelestia"
"emoji"
"-p"
];
enabled = true;
dangerous = false;
}
@@ -77,7 +117,10 @@
name = "Clipboard History";
icon = "content_paste";
description = "Toggle the clipboard history";
command = ["caelestia" "clipboard"];
command = [
"caelestia"
"clipboard"
];
enabled = true;
dangerous = false;
}
@@ -85,7 +128,10 @@
name = "Delete from Clipboard History";
icon = "content_paste_off";
description = "Delete a line from the clipboard history";
command = ["caelestia" "clipboard"];
command = [
"caelestia"
"clipboard"
];
enabled = true;
dangerous = false;
}
@@ -101,7 +147,10 @@
name = "Hyprpicker";
icon = "colorize";
description = "Pick an hex color";
command = ["hyprpicker" "-a"];
command = [
"hyprpicker"
"-a"
];
enabled = true;
dangerous = false;
}
+10 -8
View File
@@ -122,14 +122,16 @@
colorsHash = builtins.hashString "sha256" (builtins.toJSON colors);
customCli = inputs.caelestia-cli.packages.${pkgs.stdenv.hostPlatform.system}.default.overrideAttrs (oldAttrs: {
name = "${oldAttrs.name or "caelestia-cli"}-themed-${colorsHash}";
postUnpack = ''
mkdir -p $sourceRoot/src/caelestia/data/schemes/custom/main
cp ${customSchemeFile} $sourceRoot/src/caelestia/data/schemes/custom/main/dark.txt
echo "Custom scheme added to source"
'';
});
customCli =
inputs.caelestia-cli.packages.${pkgs.stdenv.hostPlatform.system}.default.overrideAttrs
(oldAttrs: {
name = "${oldAttrs.name or "caelestia-cli"}-themed-${colorsHash}";
postUnpack = ''
mkdir -p $sourceRoot/src/caelestia/data/schemes/custom/main
cp ${customSchemeFile} $sourceRoot/src/caelestia/data/schemes/custom/main/dark.txt
echo "Custom scheme added to source"
'';
});
in {
programs.caelestia.cli.package = customCli;
}
+23 -15
View File
@@ -7,9 +7,8 @@
colors = config.lib.stylix.colors;
mkMenu = menu: let
configFile =
pkgs.writeText "config.yaml"
(lib.generators.toYAML {} {
configFile = pkgs.writeText "config.yaml" (
lib.generators.toYAML {} {
anchor = "bottom-right";
border = "#${colors.base0D}80";
background = "#${colors.base01}EE";
@@ -19,7 +18,8 @@
rows_per_column = 5;
inherit menu;
});
}
);
in
pkgs.writeShellScriptBin "menu" ''
exec ${lib.getExe pkgs.wlr-which-key} ${configFile}
@@ -32,7 +32,8 @@ in {
bind =
[
# Applications
("$shiftMod, A, exec, "
(
"$shiftMod, A, exec, "
+ lib.getExe (mkMenu [
{
key = "a";
@@ -84,14 +85,16 @@ in {
desc = "Qutebrowser (Temp session)";
cmd = "${pkgs.qutebrowser}/bin/qutebrowser --temp-basedir";
}
]))
])
)
# Web links
"$mod,B, exec, uwsm app -- ${pkgs.qutebrowser}/bin/qutebrowser" # Browser (Qutebrowser)
# Power
"$mod, X, global, caelestia:session" # Powermenu
("$shiftMod, X, exec, "
(
"$shiftMod, X, exec, "
+ lib.getExe (mkMenu [
{
key = "l";
@@ -123,7 +126,8 @@ in {
desc = "Restart caelestia";
cmd = "hyprctl dispatch exec 'caelestia-shell kill | sleep 1 | caelestia-shell'";
}
]))
])
)
# Quick launch
"$mod,RETURN, exec, uwsm app -- ${pkgs.ghostty}/bin/ghostty" # Ghostty (terminal)
@@ -154,13 +158,17 @@ in {
", Print, global, caelestia:screenshotFreeze" # Capture region (freeze)
"$shiftMod+Alt, S, global, caelestia:screenshot" # Capture region
]
++ (builtins.concatLists (builtins.genList (i: let
ws = i + 1;
in [
"$mod,code:1${toString i}, workspace, ${toString ws}"
"$mod SHIFT,code:1${toString i}, movetoworkspace, ${toString ws}"
])
9));
++ (builtins.concatLists (
builtins.genList (
i: let
ws = i + 1;
in [
"$mod,code:1${toString i}, workspace, ${toString ws}"
"$mod SHIFT,code:1${toString i}, movetoworkspace, ${toString ws}"
]
)
9
));
bindm = [
"$mod,mouse:272, movewindow" # Move Window (mouse)
+3 -1
View File
@@ -39,4 +39,6 @@
'';
command = "bash ${keyboard-backlight}/bin/keyboard-backlight &";
in {wayland.windowManager.hyprland.settings.exec-once = [command];}
in {
wayland.windowManager.hyprland.settings.exec-once = [command];
}
+1 -2
View File
@@ -8,8 +8,7 @@
splash = false;
};
};
systemd.user.services.hyprpaper.Unit.After =
lib.mkForce "graphical-session.target";
systemd.user.services.hyprpaper.Unit.After = lib.mkForce "graphical-session.target";
wayland.windowManager.hyprland.settings.exec-once = [
"systemctl --user enable --now hyprpaper.service"
+7 -4
View File
@@ -117,14 +117,17 @@ with lib; let
desktopName = "Neovim (Ghostty)";
exec = ''ghostty --title="Neovim Editor" -e nvim %F'';
terminal = false;
categories = ["Development" "TextEditor"];
categories = [
"Development"
"TextEditor"
];
mimeTypes = mimeMap.code ++ mimeMap.text;
};
associations = with lists;
listToAttrs (flatten (mapAttrsToList
(key: map (type: attrsets.nameValuePair type defaultApps."${key}"))
mimeMap));
listToAttrs (
flatten (mapAttrsToList (key: map (type: attrsets.nameValuePair type defaultApps."${key}")) mimeMap)
);
in {
home.packages = [nvim-ghostty];