Add more dotfiles

This commit is contained in:
2026-07-07 15:48:39 +01:00
parent 6b8c8e86f4
commit 9a94ed7331
16 changed files with 729 additions and 17 deletions
+6
View File
@@ -2,8 +2,14 @@
{
imports = [
./dunst
./eza
./fastfetch
./fish
./kitty
./nvim
./picom
./rofi
];
home.username = "me";
+72
View File
@@ -0,0 +1,72 @@
{ pkgs, ... }:
let
menuify = pkgs.substituteAll {
src = ./menuify.sh;
isExecutable = true;
dir = "bin";
name = "menuify";
bash = pkgs.bash;
dmenu = pkgs.dmenu;
gawk = pkgs.gawk;
coreutils = pkgs.coreutils;
};
in
{
services.dunst = {
enable = true;
settings = {
global = {
monitor = 0;
follow = "none";
enable_posix_regex = true;
width = "(0, 300)";
height = "(0, 200)";
notification_limit = 5;
origin = "bottom-right";
offset = "20x20";
icon_corner_radius = 18;
frame_width = 3;
gap_size = 5;
padding = 12;
horizontal_padding = 12;
idle_threshold = 60;
font = "Agave Nerd Font 12";
format = "<span font='10.5' font_weight='bold' size='x-large'>%s</span>\\n%b";
show_age_threshold = 0;
dmenu = "${menuify}/bin/menuify";
browser = "xdg-open";
corner_radius = 18;
mouse_left_click = "do_action, close_current";
mouse_middle_click = "close_current";
mouse_right_click = "context";
};
urgency_low = {
frame_color = "#877d91";
highlight = "#877d91";
foreground = "#fff";
background = "#2f2f4a";
fullscreen = "pushback";
history_ignore = true;
};
urgency_normal = {
frame_color = "#CF9FFF";
highlight = "#CF9FFF";
foreground = "#fff";
background = "#2f2f4a";
fullscreen = "delay";
};
urgency_critical = {
frame_color = "#fa8290";
highlight = "#fa8290";
foreground = "#fff";
background = "#2f2f4a";
fullscreen = "show";
};
};
};
}
+21
View File
@@ -0,0 +1,21 @@
#!@bash@/bin/bash
list=""
declare -A commands_map
mapfile -t lines
for line in "${lines[@]}"; do
id=$(@coreutils@/bin/echo "$line" | @gawk@/bin/awk -F '[ #()]' '{print $2}')
list+="$id"$'\n'
commands_map["$id"]="$line"
done
selected=$(@coreutils@/bin/printf "$list" | @dmenu@/bin/dmenu -i -p "Select what to do:" -nf '#e0af68' -nb '#1f2335' -sb '#414868' -sf '#ffffff' -fn 'HurmitNerdFont-16')
if [ -n "$selected" ]; then
command_to_run=${commands_map["$selected"]}
@coreutils@/bin/printf "$command_to_run"
fi
+121
View File
@@ -0,0 +1,121 @@
{ pkgs, ... }:
{
programs.eza = {
enable = true;
theme = {
colourful = true;
filekinds = {
normal = { foreground = "#c0caf5"; };
directory = { foreground = "#7aa2f7"; };
symlink = { foreground = "#2ac3de"; };
pipe = { foreground = "#414868"; };
block_device = { foreground = "#e0af68"; };
char_device = { foreground = "#e0af68"; };
socket = { foreground = "#414868"; };
special = { foreground = "#9d7cd8"; };
executable = { foreground = "#9ece6a"; };
mount_point = { foreground = "#b4f9f8"; };
};
perms = {
user_read = { foreground = "#2ac3de"; };
user_write = { foreground = "#bb9af7"; };
user_execute_file = { foreground = "#9ece6a"; };
user_execute_other = { foreground = "#9ece6a"; };
group_read = { foreground = "#2ac3de"; };
group_write = { foreground = "#ff9e64"; };
group_execute = { foreground = "#9ece6a"; };
other_read = { foreground = "#2ac3de"; };
other_write = { foreground = "#ff007c"; };
other_execute = { foreground = "#9ece6a"; };
special_user_file = { foreground = "#ff007c"; };
special_other = { foreground = "#db4b4b"; };
attribute = { foreground = "#737aa2"; };
};
size = {
major = { foreground = "#2ac3de"; };
minor = { foreground = "#9d7cd8"; };
number_byte = { foreground = "#a9b1d6"; };
number_kilo = { foreground = "#89ddff"; };
number_mega = { foreground = "#2ac3de"; };
number_giga = { foreground = "#ff9e64"; };
number_huge = { foreground = "#ff007c"; };
unit_byte = { foreground = "#a9b1d6"; };
unit_kilo = { foreground = "#89ddff"; };
unit_mega = { foreground = "#2ac3de"; };
unit_giga = { foreground = "#ff9e64"; };
unit_huge = { foreground = "#ff007c"; };
};
users = {
user_you = { foreground = "#3d59a1"; };
user_root = { foreground = "#bb9af7"; };
user_other = { foreground = "#2ac3de"; };
group_yours = { foreground = "#89ddff"; };
group_root = { foreground = "#bb9af7"; };
group_other = { foreground = "#c0caf5"; };
};
links = {
normal = { foreground = "#89ddff"; };
multi_link_file = { foreground = "#2ac3de"; };
};
git = {
new = { foreground = "#9ece6a"; };
modified = { foreground = "#bb9af7"; };
deleted = { foreground = "#db4b4b"; };
renamed = { foreground = "#2ac3de"; };
typechange = { foreground = "#2ac3de"; };
ignored = { foreground = "#545c7e"; };
conflicted = { foreground = "#ff9e64"; };
};
git_repo = {
branch_main = { foreground = "#737aa2"; };
branch_other = { foreground = "#b4f9f8"; };
git_clean = { foreground = "#292e42"; };
git_dirty = { foreground = "#bb9af7"; };
};
security_context = {
colon = { foreground = "#545c7e"; };
user = { foreground = "#737aa2"; };
role = { foreground = "#2ac3de"; };
typ = { foreground = "#3d59a1"; };
range = { foreground = "#9d7cd8"; };
};
file_type = {
image = { foreground = "#89ddff"; };
video = { foreground = "#b4f9f8"; };
music = { foreground = "#73daca"; };
lossless = { foreground = "#41a6b5"; };
crypto = { foreground = "#db4b4b"; };
document = { foreground = "#a9b1d6"; };
compressed = { foreground = "#ff9e64"; };
temp = { foreground = "#737aa2"; };
compiled = { foreground = "#737aa2"; };
build = { foreground = "#1abc9c"; };
source = { foreground = "#bb9af7"; };
};
punctuation = { foreground = "#292e42"; };
date = { foreground = "#e0af68"; };
inode = { foreground = "#737aa2"; };
blocks = { foreground = "#737aa2"; };
header = { foreground = "#a9b1d6"; };
octal = { foreground = "#ff9e64"; };
flags = { foreground = "#9d7cd8"; };
symlink_path = { foreground = "#89ddff"; };
control_char = { foreground = "#ff9e64"; };
broken_symlink = { foreground = "#ff007c"; };
broken_path_overlay = { foreground = "#ff007c"; };
};
};
}
+102
View File
@@ -0,0 +1,102 @@
colourful: true
filekinds:
normal: { foreground: "#c0caf5" }
directory: { foreground: "#7aa2f7" }
symlink: { foreground: "#2ac3de" }
pipe: { foreground: "#414868" }
block_device: { foreground: "#e0af68" }
char_device: { foreground: "#e0af68" }
socket: { foreground: "#414868" }
special: { foreground: "#9d7cd8" }
executable: { foreground: "#9ece6a" }
mount_point: { foreground: "#b4f9f8" }
perms:
user_read: { foreground: "#2ac3de" }
user_write: { foreground: "#bb9af7" }
user_execute_file: { foreground: "#9ece6a" }
user_execute_other: { foreground: "#9ece6a" }
group_read: { foreground: "#2ac3de" }
group_write: { foreground: "#ff9e64" }
group_execute: { foreground: "#9ece6a" }
other_read: { foreground: "#2ac3de" }
other_write: { foreground: "#ff007c" }
other_execute: { foreground: "#9ece6a" }
special_user_file: { foreground: "#ff007c" }
special_other: { foreground: "#db4b4b" }
attribute: { foreground: "#737aa2" }
size:
major: { foreground: "#2ac3de" }
minor: { foreground: "#9d7cd8" }
number_byte: { foreground: "#a9b1d6" }
number_kilo: { foreground: "#89ddff" }
number_mega: { foreground: "#2ac3de" }
number_giga: { foreground: "#ff9e64" }
number_huge: { foreground: "#ff007c" }
unit_byte: { foreground: "#a9b1d6" }
unit_kilo: { foreground: "#89ddff" }
unit_mega: { foreground: "#2ac3de" }
unit_giga: { foreground: "#ff9e64" }
unit_huge: { foreground: "#ff007c" }
users:
user_you: { foreground: "#3d59a1" }
user_root: { foreground: "#bb9af7" }
user_other: { foreground: "#2ac3de" }
group_yours: { foreground: "#89ddff" }
group_root: { foreground: "#bb9af7" }
group_other: { foreground: "#c0caf5" }
links:
normal: { foreground: "#89ddff" }
multi_link_file: { foreground: "#2ac3de" }
git:
new: { foreground: "#9ece6a" }
modified: { foreground: "#bb9af7" }
deleted: { foreground: "#db4b4b" }
renamed: { foreground: "#2ac3de" }
typechange: { foreground: "#2ac3de" }
ignored: { foreground: "#545c7e" }
conflicted: { foreground: "#ff9e64" }
git_repo:
branch_main: { foreground: "#737aa2" }
branch_other: { foreground: "#b4f9f8" }
git_clean: { foreground: "#292e42" }
git_dirty: { foreground: "#bb9af7" }
security_context:
colon: { foreground: "#545c7e" }
user: { foreground: "#737aa2" }
role: { foreground: "#2ac3de" }
typ: { foreground: "#3d59a1" }
range: { foreground: "#9d7cd8" }
file_type:
image: { foreground: "#89ddff" }
video: { foreground: "#b4f9f8" }
music: { foreground: "#73daca" }
lossless: { foreground: "#41a6b5" }
crypto: { foreground: "#db4b4b" }
document: { foreground: "#a9b1d6" }
compressed: { foreground: "#ff9e64" }
temp: { foreground: "#737aa2" }
compiled: { foreground: "#737aa2" }
build: { foreground: "#1abc9c" }
source: { foreground: "#bb9af7" }
punctuation: { foreground: "#292e42" }
date: { foreground: "#e0af68" }
inode: { foreground: "#737aa2" }
blocks: { foreground: "#737aa2" }
header: { foreground: "#a9b1d6" }
octal: { foreground: "#ff9e64" }
flags: { foreground: "#9d7cd8" }
symlink_path: { foreground: "#89ddff" }
control_char: { foreground: "#ff9e64" }
broken_symlink: { foreground: "#ff007c" }
broken_path_overlay: { foreground: "#ff007c" }
+75
View File
@@ -0,0 +1,75 @@
{ pkgs, ... }:
{
programs.fastfetch = {
enable = true;
settings = {
logo = {
type = "kitty-direct";
source = ./logo.png;
width = 23;
height = 10;
padding = {
top = 0;
left = 3;
};
};
display = {
separator = " ";
};
modules = [
{
type = "title";
key = " ->";
keyColor = "36";
}
{
type = "os";
key = " 󱄅 ->";
keyColor = "36";
}
{
type = "kernel";
key = " ->";
keyColor = "36";
}
{
type = "shell";
key = " ->";
keyColor = "33";
}
{
type = "terminal";
key = " ->";
keyColor = "33";
}
{
type = "custom";
format = "\\u001b[33m  ->\\u001b[39m kutu.rb";
}
{
type = "host";
key = " 󰌢 ->";
keyColor = "32";
}
{
type = "memory";
key = " 󰍛 ->";
keyColor = "32";
}
{
type = "packages";
key = " ->";
keyColor = "32";
}
{
type = "custom";
format = " \\u001b[90m \\u001b[31m \\u001b[32m \\u001b[33m \\u001b[34m \\u001b[35m \\u001b[36m \\u001b[37m \\u001b[38m \\u001b[39m";
}
];
};
};
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

+12 -9
View File
@@ -1,18 +1,21 @@
{ ... }:
{ pkgs, ... }:
{
programs.fish = {
enable = true;
shellAliases = {
ls = "eza -TlL 2 --git --no-permissions --no-user --no-time --icons=always --group-directories-first";
lss = "eza -TlL 1 --git --no-permissions --no-user --no-time --icons=always --group-directories-first";
lsa = "eza -TlaL 1 --git --no-permissions --no-user --no-time --icons=always --group-directories-first";
sls = "sudo eza -TlL 2 --git --no-permissions --no-user --no-time --icons=always --group-directories-first";
s = "python3 -m http.server 8080";
vi = "nvim";
vim = "nvim";
g = "gitui";
ls = "${pkgs.eza}/bin/eza -TlL 2 --git --no-permissions --no-user --no-time --icons=always --group-directories-first";
lss = "${pkgs.eza}/bin/eza -TlL 1 --git --no-permissions --no-user --no-time --icons=always --group-directories-first";
lsa = "${pkgs.eza}/bin/eza -TlaL 1 --git --no-permissions --no-user --no-time --icons=always --group-directories-first";
sls = "sudo ${pkgs.eza}/bin/eza -TlL 2 --git --no-permissions --no-user --no-time --icons=always --group-directories-first";
s = "${pkgs.python3}/bin/python3 -m http.server 8080";
vi = "${pkgs.neovim}/bin/nvim";
vim = "${pkgs.neovim}/bin/nvim";
g = "${pkgs.gitui}/bin/gitui";
};
shellInit = builtins.readFile ./config.fish;
+89
View File
@@ -0,0 +1,89 @@
{ pkgs, ... }:
{
programs.kitty = {
enable = true;
shellIntegration.enableFishIntegration = true;
font = {
name = "Agave Nerd Font";
size = 13;
};
settings = {
bold_font = "Agave Nerd Font Bold";
# italic_font = "Operator Mono Lig";
bold_italic_font = "Hurmit Nerd Font Bold";
emoji_font_family = "UnifontExMono Regular";
cursor_shape = "block";
cursor_blink_interval = 0;
shell_integration = "no-cursor";
underline_position = "+3";
underline_thickness = "150%";
allow_remote_control = "yes";
listen_on = "unix:/tmp/mykitty";
startup_session = ./startup;
foreground = "#CDD6F4";
background = "#080014";
selection_foreground = "#080014";
selection_background = "#F5E0DC";
cursor = "#F5E0DC";
cursor_text_color = "#080014";
url_color = "#F5E0DC";
active_border_color = "#B4BEFE";
inactive_border_color = "#6C7086";
bell_border_color = "#F9E2AF";
mark1_foreground = "#080014";
mark1_background = "#B4BEFE";
mark2_foreground = "#080014";
mark2_background = "#CBA6F7";
mark3_foreground = "#080014";
mark3_background = "#74C7EC";
color0 = "#1d2434";
color1 = "#c22a2a";
color2 = "#96c93c";
color3 = "#f1b950";
color4 = "#547eaa";
color5 = "#674099";
color6 = "#94E2D5";
color7 = "#BAC2DE";
color8 = "#44496f";
color9 = "#c22a2a";
color10 = "#96c93c";
color11 = "#f1b950";
color12 = "#547eaa";
color13 = "#674099";
color14 = "#94E2D5";
color15 = "#A6ADC8";
background_opacity = "0.8";
confirm_os_window_close = 0;
clipboard_control = "write-clipboard write-primary read-clipboard read-primary";
shell = "${pkgs.fish}/bin/fish";
};
keybindings = {
"ctrl+click" = "open_link";
"ctrl+shift+click" = "open_link";
"ctrl+backspace" = "send_text all \\x17";
"ctrl+delete" = "send_text all \\x1b[1;53";
"ctrl+]" = "send_text all \\x10";
"ctrl+[" = "send_text all \\x0f";
};
};
}
+3
View File
@@ -0,0 +1,3 @@
# Run the command on new Kitty window creation
launch env KITTY_STR=1 fish
+47
View File
@@ -0,0 +1,47 @@
{ ... }:
{
services.picom = {
enable = true;
settings = {
fading = true;
vsync = true;
backend = "glx";
fade-delta = 4;
inactive-opacity = 0.9;
corner-radius = 7.0;
round-borders = 1;
blur-method = "gaussian";
blur-size = 7;
blur-deviation = 3;
opacity-rule = [
"100:class_g = 'Polybar'"
];
corner-radius-exclude = [
"class_g = 'Dunst'"
"class_i = 'Dunst'"
"name = 'Dunst'"
"class_i = 'dmenu'"
"class_g = 'dmenu'"
"name - 'dmenu'"
];
blur-background-exclude = [
"class_g ~= 'slop'"
"class_i ~= 'slop'"
"name ~= 'slop'"
"window_type = 'menu'"
"window_type = 'tooltip'"
"role = 'xborder'"
"window_type = 'popup_menu'"
"window_type = 'dropdown_menu'"
];
};
};
}
+42
View File
@@ -0,0 +1,42 @@
# General settings
fading = true;
vsync = true;
backend = "glx";
fade-delta = 4;
inactive-opacity = 0.9;
# Window corner radius
corner-radius = 7.0;
round-borders = 1;
# Blur settings
blur-method = "gaussian";
blur-size = 7;
blur-deviation = 3;
# Opacity rules
opacity-rule = [
"100:class_g = 'Polybar'"
];
# Exclusions for corner radius
corner-radius-exclude = [
"class_g = 'Dunst'",
"class_i = 'Dunst'",
"name = 'Dunst'",
"class_i = 'dmenu'",
"class_g = 'dmenu'",
"name - 'dmenu'"
];
# Exclusions for background blur
blur-background-exclude = [
"class_g ~= 'slop'",
"class_i ~= 'slop'",
"name ~= 'slop'",
"window_type = 'menu'",
"window_type = 'tooltip'",
"role = 'xborder'",
"window_type = 'popup_menu'",
"window_type = 'dropdown_menu'"
];
+9
View File
@@ -0,0 +1,9 @@
{ ... }:
{
programs.rofi = {
enable = true;
theme = ./theme.rasi;
};
}
+119
View File
@@ -0,0 +1,119 @@
* {
font: "Agave Nerd Font 14";
bg0 : #1a1b26;
bg1 : #414868A0;
bg2 : #1f2335A0;
bg3 : #1a1b26A0;
fg0 : #ffffff;
fg1 : #a9b1d6;
fg2 : #737aa2;
red : #f7768e;
green : #9ece6a;
yellow : #e0af68;
blue : #7aa2f7;
magenta : #9a7ecc;
cyan : #4abaaf;
accent: @blue;
urgent: @yellow;
background-color : transparent;
text-color : @fg0;
margin : 0;
padding : 0;
spacing : 0;
}
element-icon, element-text, scrollbar {
cursor: pointer;
}
window {
transparency: "real";
location : center;
width : 750px;
height : 320px;
background-color: @bg2;
border: 1px;
border-color: @cyan;
border-radius: 16px;
}
inputbar {
spacing : 8px;
padding : 4px 8px;
background-color : @bg3;
children : [ textbox-prompt, entry ];
}
entry {
placeholder : "Search...";
placeholder-color : @fg2;
color : @red;
}
textbox-prompt, entry, element-icon, element-text {
vertical-align: 0.5;
}
textbox-prompt {
expand : false;
str : "  ";
text-color : @green;
}
textbox {
padding : 4px 8px;
background-color : @bg0;
}
listview {
padding : 4px 0px;
lines : 12;
columns : 1;
scrollbar : true;
fixed-height : false;
dynamic : true;
}
element {
padding : 4px 8px;
spacing : 8px;
}
element normal urgent {
text-color: @urgent;
}
element normal active {
text-color: @accent;
}
element alternate active {
text-color: @accent;
}
element selected {
text-color : @bg0;
background-color : @accent;
}
element selected urgent {
background-color: @urgent;
}
element-icon {
size: 0.8em;
}
element-text {
text-color: inherit;
}
scrollbar {
handle-width : 4px;
handle-color : @fg2;
padding : 0 4px;
}