more work on neovim config, added keyboard sound thing for kitty

This commit is contained in:
2026-03-08 03:57:31 -04:00
parent bf22e791d1
commit 4308b8eb16
55 changed files with 411 additions and 142 deletions

View File

@@ -7,7 +7,7 @@ config here](https://github.com/Frost-Phoenix/nixos-config/tree/catppuccin)
## Gallery ## Gallery
![desktop-neofetch](./assets/screens/desktop-neofetch.png) ![desktop-fastfetch](./assets/screens/desktop-neofetch.png)
![busy-desktop](./assets/screens/desktop-busy.png) ![busy-desktop](./assets/screens/desktop-busy.png)
Screenshots up to date as of [this commit](https://github.com/pagedMov/nixos-config/commit/501aedc11976afe8c5386364c7a6e4b5b73af044) Screenshots up to date as of [this commit](https://github.com/pagedMov/nixos-config/commit/501aedc11976afe8c5386364c7a6e4b5b73af044)

View File

@@ -0,0 +1,36 @@
import evdev, random, subprocess, os, threading, socket
active_class = ""
def watch_hyprland():
global active_class
sig = os.environ["HYPRLAND_INSTANCE_SIGNATURE"]
sock_path = f"{os.environ['XDG_RUNTIME_DIR']}/hypr/{sig}/.socket2.sock"
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.connect(sock_path)
for line in s.makefile():
if line.startswith("activewindow>>"):
active_class = line.split(">>")[1].split(",")[0]
threading.Thread(target=watch_hyprland, daemon=True).start()
for path in evdev.list_devices():
d = evdev.InputDevice(path)
if 'keyd virtual keyboard' in d.name:
dev = d
break
d.close()
print(dev)
for event in dev.read_loop():
if event.type == 1 and event.value == 1 and active_class == "kitty":
if event.code == 28:
subprocess.Popen(['pw-play', '/home/pagedmov/.sysflake/assets/sound/msg_finish.wav'])
elif event.code == 14:
subprocess.Popen(['pw-cat', '--playback', '--volume=0.5', '/home/pagedmov/.sysflake/assets/sound/low_hp.wav'])
elif event.code == 1:
subprocess.Popen(['pw-play', '/home/pagedmov/.sysflake/assets/sound/menu_close.wav'])
else:
pitch = random.randint(-50,50)
subprocess.Popen(['play', '-q', '/home/pagedmov/.sysflake/assets/sound/msg.wav', 'pitch', str(pitch)])

BIN
assets/sound/1_select.ogg Normal file

Binary file not shown.

BIN
assets/sound/2_accept.ogg Normal file

Binary file not shown.

BIN
assets/sound/3_delete.ogg Normal file

Binary file not shown.

BIN
assets/sound/4_select2.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/sound/7_equip.ogg Normal file

Binary file not shown.

BIN
assets/sound/button.wav Normal file

Binary file not shown.

BIN
assets/sound/crystal.wav Normal file

Binary file not shown.

BIN
assets/sound/cursor.wav Normal file

Binary file not shown.

BIN
assets/sound/low_hp.wav Normal file

Binary file not shown.

BIN
assets/sound/menu_close.wav Normal file

Binary file not shown.

BIN
assets/sound/menu_open.wav Normal file

Binary file not shown.

BIN
assets/sound/msg.wav Normal file

Binary file not shown.

BIN
assets/sound/msg_finish.wav Normal file

Binary file not shown.

View File

@@ -81,7 +81,7 @@ included in my nixpkgs overlay as custom packages, and these packages are declar
- *Usage*: - *Usage*:
- `vipkg <part of package name>` - `vipkg <part of package name>`
- **Example**: - **Example**:
- `vipkg neofetch` - Opens `nixpkgs/pkgs/tools/misc/neofetch/default.nix`. - `vipkg fastfetch` - Opens `nixpkgs/pkgs/tools/misc/neofetch/default.nix`.
- *Defined in*: `overlay/scripts/commands/vipkg.nix` - *Defined in*: `overlay/scripts/commands/vipkg.nix`
--- ---

38
flake.lock generated
View File

@@ -107,11 +107,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1772039265, "lastModified": 1772928715,
"narHash": "sha256-3TR+B2DmkkkIi/b0CE8PuKkmb2jgzdKrOPsIwdWhsM0=", "narHash": "sha256-Z7qGN/5v7oBc6wjNtSR7YI/JneEzPvCqd+P6RAxMltA=",
"owner": "9001", "owner": "9001",
"repo": "copyparty", "repo": "copyparty",
"rev": "7c60adc69c977fb4b75e31c576131b1379498c3f", "rev": "ffe6a9aa6fb7d49a4a1be3007c8d3297f88f4bc8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -125,11 +125,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1772420042, "lastModified": 1772867152,
"narHash": "sha256-naZz40TUFMa0E0CutvwWsSPhgD5JldyTUDEgP9ADpfU=", "narHash": "sha256-RIFgZ4O6Eg+5ysZ8Tqb3YvcqiRaNy440GEY22ltjRrs=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "5af7af10f14706e4095bd6bc0d9373eb097283c6", "rev": "eaafb89b56e948661d618eefd4757d9ea8d77514",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -309,11 +309,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1772569491, "lastModified": 1772845525,
"narHash": "sha256-bdr6ueeXO1Xg91sFkuvaysYF0mVdwHBpdyhTjBEWv+s=", "narHash": "sha256-Dp5Ir2u4jJDGCgeMRviHvEQDe+U37hMxp6RSNOoMMPc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "924e61f5c2aeab38504028078d7091077744ab17", "rev": "27b93804fbef1544cb07718d3f0a451f4c4cd6c0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -415,11 +415,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1772571633, "lastModified": 1772913214,
"narHash": "sha256-KjJ/Wttx+V9l2nx8Z+PNW0su6XuC0OyLL6dX70Rsx0c=", "narHash": "sha256-/tzDJr3CcM73Y4ZQmoFYSzNDs7RV7+enE72tvl+Fm0E=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "c11cadd8d6f7b8ea0dc3d49424dd7c4f7efa4bd7", "rev": "a4ecae91600d7e8ceb31610176d6b40cb816711b",
"revCount": 6979, "revCount": 7006,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@@ -813,11 +813,11 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1772554988, "lastModified": 1772736753,
"narHash": "sha256-8Kb+MSE6QYVX1S96aZOluOMVfvSEOs70vgX980qVUaY=", "narHash": "sha256-au/m3+EuBLoSzWUCb64a/MZq6QUtOV8oC0D9tY2scPQ=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "87f6b6e02cb3f87a1be4f939326c94c8af9d55d8", "rev": "917fec990948658ef1ccd07cef2a1ef060786846",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -964,11 +964,11 @@
"nixpkgs": "nixpkgs_8" "nixpkgs": "nixpkgs_8"
}, },
"locked": { "locked": {
"lastModified": 1772599456, "lastModified": 1772939073,
"narHash": "sha256-WOO10Cb0gcZJhf2ZLL6VC93Hfw55nguWdC8cmpLdLig=", "narHash": "sha256-Fl451e4T94L1dUPjs5HEAbh/gP3vXFQBk9b52tW486Y=",
"owner": "km-clay", "owner": "km-clay",
"repo": "shed", "repo": "shed",
"rev": "210b57b9924363852687e7aae3ec0f3864a4742a", "rev": "07d7015dd4950833671f2b795e2559295601e5af",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -39,6 +39,10 @@ in
programs.shed.enable = true; programs.shed.enable = true;
services.udev.extraRules = ''
KERNEL=="event*", SUBSYSTEM=="input", MODE="0664", GROUP="input"
'';
users = { users = {
groups.persist = { }; groups.persist = { };
groups.davfs2 = { }; groups.davfs2 = { };

View File

@@ -23,6 +23,11 @@ let
"border_size 0, match:float 0, match:workspace f[1]" "border_size 0, match:float 0, match:workspace f[1]"
"rounding 0, match:float 0, match:workspace f[1]" "rounding 0, match:float 0, match:workspace f[1]"
]; ];
hostWorkspaces = if (host == "phosphorous") then
[
"m[DP-3], layoutopt:orientation:top"
]
else [];
in { in {
options = { options = {
@@ -82,7 +87,7 @@ in {
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &" "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
]; ];
workspace = (if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "dualmonitor") then [ workspace = hostWorkspaces ++ (if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "dualmonitor") then [
"1,persistent=true,monitor:${builtins.elemAt mons 0}" "1,persistent=true,monitor:${builtins.elemAt mons 0}"
"2,persistent=true,monitor:${builtins.elemAt mons 0}" "2,persistent=true,monitor:${builtins.elemAt mons 0}"
"3,persistent=true,monitor:${builtins.elemAt mons 0}" "3,persistent=true,monitor:${builtins.elemAt mons 0}"
@@ -159,7 +164,7 @@ in {
border_size = 3; border_size = 3;
"col.active_border" = lib.mkForce "rgba(404042ff)"; "col.active_border" = lib.mkForce "rgba(404042ff)";
"col.inactive_border" = lib.mkForce "rgba(83858a00)"; "col.inactive_border" = lib.mkForce "rgba(83858a00)";
layout = "dwindle"; layout = "master";
resize_on_border = true; resize_on_border = true;
snap = { snap = {
@@ -191,6 +196,8 @@ in {
master = { master = {
new_status = "master"; new_status = "master";
special_scale_factor = 1; special_scale_factor = 1;
mfact = 0.65;
new_on_top = true;
}; };
decoration = { decoration = {
@@ -237,7 +244,10 @@ in {
"super shift, m, exit," "super shift, m, exit,"
"super, m, exec, fuzzel" "super, m, exec, fuzzel"
"super, r, exec, neovide" "super, r, exec, neovide"
"super, b, togglesplit, # dwindle" "super, b, layoutmsg, togglesplit, # dwindle"
"super, comma, layoutmsg, rollnext" # comma
"super, period, layoutmsg, rollprev"
"super, n, layoutmsg, swapwithmaster"
"super, f, togglefloating" "super, f, togglefloating"
"super, g, fullscreen" "super, g, fullscreen"
"super, h, movefocus, l" "super, h, movefocus, l"

View File

@@ -0,0 +1,24 @@
{ self, pkgs, ... }:
let
shellsound = "${pkgs.myScripts.playshellsound}/bin/playshellsound";
color-commit = "${pkgs.myScripts.color-commit}/bin/color-commit";
sndpath = "${self}/assets/sound";
in
{
programs.shed = {
autocmds = [
{
hooks = [ "post-cmd" ];
command = "export PROMPT_GIT_LINE=\"$(prompt_git_line)\"";
}
{
hooks = [ "on-history-open" ];
command = ''[ -n "$_NUM_MATCHES" ] && [ "$_NUM_MATCHES" -gt 0 ] && ${shellsound} "${sndpath}/nvim.wav"; fi'';
}
{
hooks = [ "on-completion-start" ];
command = ''[ -n "$_NUM_MATCHES" ] && [ "$_NUM_MATCHES" -gt 1 ] && ${shellsound} "${sndpath}/nvim.wav"; fi'';
}
];
};
}

View File

@@ -9,5 +9,6 @@
./options.nix ./options.nix
./keymaps.nix ./keymaps.nix
./functions.nix ./functions.nix
./autocmd.nix
]; ];
} }

View File

@@ -7,8 +7,11 @@ in
{ {
programs.shed = { programs.shed = {
settings.extraPostConfig = /* bash */ '' settings.extraPostConfig = /* bash */ ''
export PS1="\!prompt " export PS1="\@prompt "
export PSR='\e[36;1m$\!shed_ver\e[0m' export PSR='\e[36;1m$\@shed_ver\e[0m'
export PROMPT_GIT_LINE="$(prompt_git_line)"
if [ "$0" = "-shed" ]; then if [ "$0" = "-shed" ]; then
${shellsound} $FLAKEPATH/assets/sound/login.wav ${shellsound} $FLAKEPATH/assets/sound/login.wav
fi fi

View File

@@ -9,7 +9,59 @@ in
functions = { functions = {
prompt_topline = /* bash */ '' prompt_topline = /* bash */ ''
local user_and_host="\e[0m\e[1m$USER\e[1;36m@\e[1;31m$HOST\e[0m" local user_and_host="\e[0m\e[1m$USER\e[1;36m@\e[1;31m$HOST\e[0m"
echo -n "\e[1;34m $user_and_host\n" local mode_text="$(prompt_mode)"
echo -n "\e[1;34m $user_and_host $mode_text\n"
'';
prompt_mode = /* bash */ ''
local mode=""
local normal_fg='\e[0m\e[30m\e[1;43m'
local normal_bg='\e[0m\e[33m'
local insert_fg='\e[0m\e[30m\e[1;46m'
local insert_bg='\e[0m\e[36m'
local command_fg='\e[0m\e[30m\e[1;42m'
local command_bg='\e[0m\e[32m'
local visual_fg='\e[0m\e[30m\e[1;45m'
local visual_bg='\e[0m\e[35m'
local replace_fg='\e[0m\e[30m\e[1;41m'
local replace_bg='\e[0m\e[31m'
local search_fg='\e[0m\e[30m\e[1;47m'
local search_bg='\e[0m\e[39m'
local complete_fg='\e[0m\e[30m\e[1;47m'
local complete_bg='\e[0m\e[39m'
case "$SHED_VI_MODE" in
"NORMAL")
mode="$normal_bg''${normal_fg}NORMAL$normal_bg\e[0m"
;;
"INSERT")
mode="$insert_bg''${insert_fg}INSERT$insert_bg\e[0m"
;;
"COMMAND")
mode="$command_bg''${command_fg}COMMAND$command_bg\e[0m"
;;
"VISUAL")
mode="$visual_bg''${visual_fg}VISUAL$visual_bg\e[0m"
;;
"REPLACE")
mode="$replace_bg''${replace_fg}REPLACE$replace_bg\e[0m"
;;
"VERBATIM")
mode="$replace_bg''${replace_fg}VERBATIM$replace_bg\e[0m"
;;
"COMPLETE")
mode="$complete_bg''${complete_fg}COMPLETE$complete_bg\e[0m"
;;
"SEARCH")
mode="$search_bg''${search_fg}SEARCH$search_bg\e[0m"
;;
*)
mode=""
;;
esac
echo -en "$mode\n"
''; '';
prompt_stat_line = /* bash */ '' prompt_stat_line = /* bash */ ''
@@ -17,71 +69,68 @@ in
local last_cmd_status local last_cmd_status
local last_cmd_runtime local last_cmd_runtime
if [ "$last_exit_code" -eq "0" ]; then if [ "$last_exit_code" -eq "0" ]; then
last_cmd_status="\e[1;32m\e[0m" last_cmd_status="\e[1;32m"
else else
last_cmd_status="\e[1;31m\e[0m" last_cmd_status="\e[1;31m"
fi fi
local last_runtime_raw="$(echo -p "\t")" local last_runtime_raw="$(echo -p "\t")"
if [ -z "$last_runtime_raw" ]; then if [ -z "$last_runtime_raw" ]; then
return 0 return 0
else else
last_cmd_runtime="\e[1;38;2;249;226;175m󰔛 $(echo -p "\T")\e[0m" last_cmd_runtime="\e[1;38;2;249;226;175m󰔛 ''${last_cmd_status}$(echo -p "\T")\e[0m"
fi fi
echo -n "\e[1;34m $last_cmd_runtime ($last_cmd_status)\n" echo -n "\e[1;34m $last_cmd_runtime\e[0m\n"
''; '';
prompt_git_line = /* bash */ '' prompt_git_line = /* bash */ ''
git rev-parse --is-inside-work-tree > /dev/null 2>&1 || return local status="$(git status --porcelain -b 2>/dev/null)" || return
local gitsigns local branch="" gitsigns="" ahead=0 behind=0
local status="$(git status --porcelain 2>/dev/null)" local header="''${status%%$'\n'*}"
local branch="$(git branch --show-current 2>/dev/null)"
[ -n "$status" ] && echo "$status" | command grep -q '^ [MADR]' && gitsigns="$gitsigns!" branch="''${header#\#\# }"
[ -n "$status" ] && echo "$status" | command grep -q '^??' && gitsigns="$gitsigns?" branch="''${branch%%...*}"
[ -n "$status" ] && echo "$status" | command grep -q '^[MADR]' && gitsigns="$gitsigns+" case "$header" in
*ahead*) ahead="''${header#*ahead }"; ahead="''${ahead%%[],]*}"; gitsigns="''${gitsigns}" ;;
esac
case "$header" in
*behind*) behind="''${header#*behind }"; behind="''${behind%%[],]*}"; gitsigns="''${gitsigns}" ;;
esac
local ahead="$(git rev-list --count @{upstream}..HEAD 2>/dev/null)" case "$status" in
local behind="$(git rev-list --count HEAD..@{upstream} 2>/dev/null)" *$'\n'" "[MAR]*) gitsigns="''${gitsigns}!" ;;
[ $ahead -gt 0 ] && gitsigns="$gitsigns" esac
[ $behind -gt 0 ] && gitsigns="$gitsigns" case "$status" in
*$'\n'"??"*) gitsigns="''${gitsigns}?" ;;
esac
case "$status" in
*$'\n'" "[D]*) gitsigns="''${gitsigns}" ;;
esac
case "$status" in
*$'\n'[MADR]*) gitsigns="''${gitsigns}+" ;;
esac
local diff="$(git diff --shortstat)" local diff="$(git diff --shortstat 2>/dev/null)"
local add=""
local del="" local diff="$(git diff --shortstat 2>/dev/null)"
local changed="" local changed="" add="" del=""
i=0 if [ -n "$diff" ]; then
while read -d "," part; do changed="''${diff%% file*}"; changed="''${changed##* }"
if [ $i -ge 3 ]; then break; fi case "$diff" in
case $i in *insertion*) add="''${diff#*, }"; add="''${add%% *}" ;;
0) esac
changed="$(echo $part | cut -d' ' -f1)" case "$diff" in
;; *deletion*) del="''${diff% deletion*}"; del="''${del##* }" ;;
1) esac
add="$(echo $part | cut -d' ' -f1)" fi
;;
2)
del="$(echo $part | cut -d' ' -f1)"
;;
esac
i=$(($i + 1))
done < <(echo "$diff,")
if [ -n "$gitsigns" ] || [ -n "$branch" ]; then if [ -n "$gitsigns" ] || [ -n "$branch" ]; then
if [ -n "$gitsigns" ]; then [ -n "$gitsigns" ] && gitsigns="\e[1;31m[$gitsigns]"
gitsigns="\e[1;31m[$gitsigns]" [ -n "$changed" ] && [ "$changed" -gt 0 ] && changed="\e[1;34m~$changed \e[0m"
fi [ -n "$add" ] && [ "$add" -gt 0 ] && add="\e[1;32m+$add \e[0m"
if [ -n "$changed" ] && [ "$changed" -gt 0 ]; then [ -n "$del" ] && [ "$del" -gt 0 ] && del="\e[1;31m-$del\e[0m"
changed="\e[1;34m~$changed \e[0m" echo -n "\e[1;34m \e[1;35m $branch$gitsigns\e[0m $changed$add$del\n"
fi
if [ -n "$add" ] && [ "$add" -gt 0 ]; then
add="\e[1;32m+$add \e[0m"
fi
if [ -n "$del" ] && [ "$del" -gt 0 ]; then
del="\e[1;31m-$del\e[0m"
fi
echo -n "\e[1;34m \e[1;35m $branch$gitsigns\e[0m $changed$add$del\n"
fi fi
''; '';
@@ -110,12 +159,11 @@ in
prompt = /* bash */ '' prompt = /* bash */ ''
local statline="$(prompt_stat_line)" local statline="$(prompt_stat_line)"
local topline="$(prompt_topline)" local topline="$(prompt_topline)"
local gitline="$(prompt_git_line)"
local jobsline="$(prompt_jobs_line)" local jobsline="$(prompt_jobs_line)"
local sshline="$(prompt_ssh_line)" local sshline="$(prompt_ssh_line)"
local pwdline="$(prompt_pwd_line)" local pwdline="$(prompt_pwd_line)"
local dollarline="$(prompt_dollar_line)" local dollarline="$(prompt_dollar_line)"
local prompt="$topline$statline$gitline$jobsline$sshline$pwdline\n$dollarline" local prompt="$topline$statline$PROMPT_GIT_LINE$jobsline$sshline$pwdline\n$dollarline"
echo -en "$prompt" echo -en "$prompt"
''; '';

View File

@@ -42,12 +42,6 @@
_surround_2 = /* bash */ '' _surround_2 = /* bash */ ''
local start local start
local end local end
if [ -z "$_ANCHOR" ]; then
echo "No anchor" 1>&2
fi
if [ -z "$_CURSOR" ]; then
echo "No cursor"
fi
if [ "$_ANCHOR" -lt "$_CURSOR" ]; then if [ "$_ANCHOR" -lt "$_CURSOR" ]; then
start=$_ANCHOR start=$_ANCHOR
end=$_CURSOR end=$_CURSOR
@@ -62,7 +56,6 @@
left="''${_BUFFER:0:$start}" left="''${_BUFFER:0:$start}"
mid="''${_BUFFER:$start:$delta}" mid="''${_BUFFER:$start:$delta}"
right="''${_BUFFER:$end}" right="''${_BUFFER:$end}"
echo "sl = $_sl sr = $_sr start = $start end = $end delta = $delta left = $left mid = $mid right = $right" 1>&2
_BUFFER="$left$_sl$mid$_sr$right" _BUFFER="$left$_sl$mid$_sr$right"
_CURSOR=$start _CURSOR=$start
''; '';

View File

@@ -7,6 +7,7 @@
settings = { settings = {
autocd = true; autocd = true;
autoHistory = true; autoHistory = true;
maxHistoryEntries = -1;
}; };
}; };
} }

View File

@@ -69,6 +69,7 @@ in {
dust dust
porsmo porsmo
w3m w3m
sox
neovide neovide
claude-code claude-code
pythonWithStuff pythonWithStuff

View File

@@ -1,5 +1,9 @@
{ pkgs, self, ... }: { pkgs, self, ... }:
let
pythonWithPkgs = pkgs.python3.withPackages (p: [ p.evdev ]);
keyboardSfxScript = "${self}/assets/scripts/keyboard_sound_thing.py";
in
{ {
systemd.user = { systemd.user = {
timers = { timers = {
@@ -13,26 +17,11 @@
}; };
}; };
services = { services = {
loginSound = { kitty-keyboard-sounds = {
Unit= { description = "Keyboard sound effects for kitty";
Description = "Plays a sound on login"; wantedBy = [ "hyprland-session.target" ];
After = [ "graphical-session.target" ]; serviceConfig = {
WantedBy = [ "graphical-session.target" ]; ExecStart = "${pythonWithPkgs}/bin/python3 ${keyboardSfxScript}";
};
Service = {
ExecStart = "${pkgs.alsa-utils}/bin/aplay -qN ${self}/assets/sound/login.wav";
Type = "simple";
};
};
maintenanceCheck = {
Unit = {
Description = "Check for updates in my maintained packages";
};
Service = {
ExecStart = "${pkgs.nix}/bin/nix-shell -p python3Packages.requests --run '${pkgs.python311}/bin/python ${pkgs.myScripts.check_updates}/bin/checkupdates.py'";
Type = "simple";
}; };
}; };
}; };

View File

@@ -38,7 +38,7 @@ in {
}; };
config = { config = {
home.file = { home.file = {
".config/neofetch/config.conf".text = '' ".config/fastfetch/config.conf".text = ''
username=$(whoami) username=$(whoami)
name_length=''${#username} name_length=''${#username}
total_width=40 total_width=40

View File

@@ -52,9 +52,94 @@
mode = [ "n" "t" ]; mode = [ "n" "t" ];
} }
{ {
action = "<cmd>COQnow<CR>"; action = "<cmd>lua require('treesj').toggle()<CR>";
key = "!cq"; key = "<space>j";
mode = "n"; mode = [ "n" ];
}
{
action = "<C-\\><C-n>";
key = "<C-e>";
mode = [ "t" ];
}
{
action = ''"+y'';
key = "<space>y";
mode = [ "n" "x" ];
}
{
action = ''"+p'';
key = "<space>p";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() require('opencode').prompt('test', {submit=true}) end'';
key = "<space>at";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() require('opencode').select() end'';
key = "<space>as";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() require('opencode').prompt('document', {submit=true}) end'';
key = "<space>ad";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() require('opencode').prompt('review', {submit=true}) end'';
key = "<space>ar";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() require('opencode').prompt('fix', {submit=true}) end'';
key = "<space>af";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() require('opencode').ask("@this ", {submit=true}) end'';
key = "<space>aa";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() require('opencode').explain("@this ") end'';
key = "<space>ae";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() require('opencode').command("session.half.page.up") end'';
key = "<C-S-u>";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() require('opencode').command("session.half.page.down") end'';
key = "<C-S-d>";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() require('opencode').command("prompt.clear") end'';
key = "<C-c>";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() require('opencode').operator("@this ") end'';
key = "go";
mode = [ "n" "x" ];
}
{
action.__raw = /*lua*/''function() return require('opencode').operator("@this ") .. "_" end'';
key = "goo";
mode = [ "n" ];
}
{
action = "<cmd>lua require('opencode').toggle()<CR>";
key = "<C-.>";
mode = [ "n" "t" ];
}
{
action = "<cmd>lua require('opencode').select()<CR>";
key = "<C-n>";
mode = [ "n" "x" ];
} }
]; ];
}; };

View File

@@ -1,7 +1,7 @@
{ {
programs.nixvim = { programs.nixvim = {
plugins.airline = { plugins.airline = {
enable = true; enable = false;
settings = { settings = {
left_sep = ""; left_sep = "";
right_sep = ""; right_sep = "";

0
modules/home/programs/nixvim/plugins/alpha.nix Executable file → Normal file
View File

0
modules/home/programs/nixvim/plugins/barbar.nix Executable file → Normal file
View File

View File

@@ -0,0 +1,12 @@
{
programs.nixvim = {
plugins.bufferline = {
enable = true;
settings = {
options = {
separator_style = "slant";
};
};
};
};
}

0
modules/home/programs/nixvim/plugins/cmp.nix Executable file → Normal file
View File

View File

@@ -1,9 +1,17 @@
{ {
programs.nixvim.plugins.copilot-lua = { programs.nixvim = {
enable = true; plugins = {
settings = { copilot-lua = {
suggestion = { enable = true;
auto_trigger = false; settings = {
suggestion = {
auto_trigger = false;
};
};
};
opencode = {
enable = true;
}; };
}; };
}; };

0
modules/home/programs/nixvim/plugins/coq.nix Executable file → Normal file
View File

7
modules/home/programs/nixvim/plugins/default.nix Executable file → Normal file
View File

@@ -4,7 +4,12 @@
imports = [ imports = [
./otter.nix ./otter.nix
./treesitter.nix ./treesitter.nix
./bufferline.nix
./alpha.nix ./alpha.nix
./mini.nix
./wtf.nix
./snacks.nix
./noice.nix
./haskell.nix ./haskell.nix
./vim-matchup.nix ./vim-matchup.nix
# ./coq.nix # ./coq.nix
@@ -14,7 +19,7 @@
./lsp.nix ./lsp.nix
./rustaceanvim.nix ./rustaceanvim.nix
./fidget.nix ./fidget.nix
# ./lualine.nix ./lualine.nix
./airline.nix ./airline.nix
./nvim-lightbulb.nix ./nvim-lightbulb.nix
./neocord.nix ./neocord.nix

9
modules/home/programs/nixvim/plugins/extra_plugins.nix Executable file → Normal file
View File

@@ -11,15 +11,6 @@
hash = "sha256-Upx29rIPwW/e7Lkmf0PNOpIACnAXIzlkfa6V1p2nYHM="; hash = "sha256-Upx29rIPwW/e7Lkmf0PNOpIACnAXIzlkfa6V1p2nYHM=";
}; };
}) })
(pkgs.vimUtils.buildVimPlugin {
name = "vim-sneak";
src = pkgs.fetchFromGitHub {
owner = "justinmk";
repo = "vim-sneak";
rev = "c13d0497139b8796ff9c44ddb9bc0dc9770ad2dd";
hash = "sha256-ndWhnV0fgCcqCGwVyM07GfmUB3CitBZbOWvZtsB1tBk=";
};
})
(pkgs.vimUtils.buildVimPlugin { (pkgs.vimUtils.buildVimPlugin {
name = "vim-slash"; name = "vim-slash";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {

View File

@@ -1,6 +1,6 @@
{ {
programs.nixvim.plugins.fidget = { programs.nixvim.plugins.fidget = {
enable = true; enable = false;
settings = { settings = {
notification = { notification = {
overrideVimNotify = true; overrideVimNotify = true;

0
modules/home/programs/nixvim/plugins/haskell.nix Executable file → Normal file
View File

6
modules/home/programs/nixvim/plugins/lsp.nix Executable file → Normal file
View File

@@ -84,7 +84,7 @@
installRustc = false; installRustc = false;
settings = { settings = {
check = { check = {
allTargets = false; allTargets = true;
command = "clippy"; command = "clippy";
}; };
}; };
@@ -99,9 +99,9 @@
options = { options = {
# uses Xenon config because it has every option exposed to it # uses Xenon config because it has every option exposed to it
nixos.expr = '' nixos.expr = ''
(builtins.getFlake "github:pagedMov/nixos-config").nixosConfigurations.xenon.options''; (builtins.getFlake "github:pagedMov/nixos-config").nixosConfigurations.phosphorous.options'';
home.expr = '' home.expr = ''
(builtins.getFlake "github:pagedMov/nixos-config").homeConfigurations.xenonHome.options''; (builtins.getFlake "github:pagedMov/nixos-config").homeConfigurations.phospohorousHome.options'';
}; };
}; };
}; };

4
modules/home/programs/nixvim/plugins/lualine.nix Executable file → Normal file
View File

@@ -1,7 +1,7 @@
{ {
programs.nixvim = { programs.nixvim = {
plugins.lualine = { plugins.lualine = {
enable = false; enable = true;
settings = { settings = {
options = { options = {
icons_enabled = true; icons_enabled = true;
@@ -15,7 +15,7 @@
right = ""; right = "";
}; };
always_divide_middle = true; always_divide_middle = true;
globalstatus = false; globalstatus = true;
refresh = { refresh = {
statusline = 1000; statusline = 1000;
tabline = 1000; tabline = 1000;

View File

@@ -0,0 +1,8 @@
{
programs.nixvim = {
plugins = {
mini-align = { enable = true; };
mini-clue = { enable = true; };
};
};
}

View File

@@ -0,0 +1,33 @@
{
programs.nixvim = {
plugins.noice = {
enable = true;
settings = {
views = {
popupmenu = {
relative = "cursor";
position = {
row = -2;
col = -2;
};
size = {
width = 60;
height = "auto";
};
};
cmdline_popup = {
relative = "cursor";
position = {
row = 0;
col = -2;
};
size = {
width = 60;
height = "auto";
};
};
};
};
};
};
}

0
modules/home/programs/nixvim/plugins/nvim-tree.nix Executable file → Normal file
View File

2
modules/home/programs/nixvim/plugins/plugins.nix Executable file → Normal file
View File

@@ -8,6 +8,8 @@
helpview.enable = true; helpview.enable = true;
floaterm.enable = true; floaterm.enable = true;
fugitive.enable = true; fugitive.enable = true;
hop.enable = true;
wilder.enable = true;
indent-blankline.enable = true; indent-blankline.enable = true;
lastplace.enable = true; lastplace.enable = true;
markdown-preview.enable = true; markdown-preview.enable = true;

View File

@@ -7,6 +7,7 @@
server = { server = {
auto_attach = true; auto_attach = true;
default_settings = { default_settings = {
cfgOverride.test = true;
checkOnSave.command = "clippy"; checkOnSave.command = "clippy";
}; };
}; };

View File

@@ -0,0 +1,7 @@
{
programs.nixvim = {
plugins.snacks = {
enable = true;
};
};
}

0
modules/home/programs/nixvim/plugins/telescope.nix Executable file → Normal file
View File

View File

@@ -2,14 +2,11 @@
programs.nixvim = { programs.nixvim = {
plugins.treesitter = { plugins.treesitter = {
enable = true; enable = true;
folding = { };
enable = true; plugins.treesj = {
}; enable = true;
indent = { settings = {
enable = true; use_default_keymaps = false;
};
highlight = {
enable = true;
}; };
}; };
}; };

0
modules/home/programs/nixvim/plugins/vim-matchup.nix Executable file → Normal file
View File

View File

@@ -0,0 +1,10 @@
{
programs.nixvim = {
plugins.wtf = {
enable = true;
options = {
context = true;
};
};
};
}

View File

@@ -30,7 +30,7 @@
kitty kitty
lolcat lolcat
lsof lsof
neofetch fastfetch
nh nh
nix-index nix-index
nix-output-monitor nix-output-monitor

View File

@@ -2,7 +2,7 @@
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "mkscreenshots"; name = "mkscreenshots";
runtimeInputs = with pkgs; [ jq neofetch kitty coreutils nemo grimblast git ]; runtimeInputs = with pkgs; [ jq fastfetch kitty coreutils nemo grimblast git ];
text = '' text = ''
if [ -n "$(hyprctl clients -j | jq -r '.[] | select(.workspace.name == "4")')" ]; then if [ -n "$(hyprctl clients -j | jq -r '.[] | select(.workspace.name == "4")')" ]; then
echo "There are windows in workspace 4. This script uses workspace 4, so move those windows and run it again." echo "There are windows in workspace 4. This script uses workspace 4, so move those windows and run it again."
@@ -14,7 +14,7 @@ pkgs.writeShellApplication {
hyprctl dispatch focusmonitor 0 hyprctl dispatch focusmonitor 0
screenshotfetch() { screenshotfetch() {
neofetch fastfetch
kitty @ scroll-window 20- kitty @ scroll-window 20-
@@ -38,7 +38,7 @@ pkgs.writeShellApplication {
hyprctl dispatch exec "[float;size 40% 50%;move 57% 8%] nemo" hyprctl dispatch exec "[float;size 40% 50%;move 57% 8%] nemo"
sleep 1 sleep 1
grimblast save output "$FLAKEPATH"/assets/screens/desktop-neofetch.png grimblast save output "$FLAKEPATH"/assets/screens/desktop-fastfetch.png
closewindows closewindows