changed login shell to fern, added fern configuration

This commit is contained in:
2026-02-20 01:31:04 -05:00
parent b188e29dfd
commit 2a0116c336
19 changed files with 463 additions and 118 deletions

253
flake.lock generated
View File

@@ -107,11 +107,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1771354440, "lastModified": 1771523612,
"narHash": "sha256-WuwTJAZh1Sot89h63kKWIMhy8ComS+sv1BsijvYhX5E=", "narHash": "sha256-ScRqXJaqDTonQ1cs7VKxPw5pO0TQ/OnErfjOKCHX4Ps=",
"owner": "9001", "owner": "9001",
"repo": "copyparty", "repo": "copyparty",
"rev": "f1a433a61718947853162043d3dd66905adc2657", "rev": "6f1d6647546832c6640cbad88817e28fb63ea3ec",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -125,11 +125,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1771355198, "lastModified": 1771469470,
"narHash": "sha256-89m5VKxIs8QNiIvLsxHu5NpyhDsoXTtoN801IAurnW4=", "narHash": "sha256-GnqdqhrguKNN3HtVfl6z+zbV9R9jhHFm3Z8nu7R6ml0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "92fceb111901a6f13e81199be4fab95fce86a5c9", "rev": "4707eec8d1d2db5182ea06ed48c820a86a42dc13",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -138,6 +138,25 @@
"type": "github" "type": "github"
} }
}, },
"fern": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1771568980,
"narHash": "sha256-/qbVs2dZVibeg9mDfeKIapmJ3glHgCOYxUuOf8pRKcQ=",
"owner": "km-clay",
"repo": "fern",
"rev": "9b8c8d704b5e1485e15e29d7340cf8a62aa8fb52",
"type": "github"
},
"original": {
"owner": "km-clay",
"repo": "fern",
"type": "github"
}
},
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -227,6 +246,24 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_2": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"fromYaml": { "fromYaml": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -291,11 +328,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1771422582, "lastModified": 1771531206,
"narHash": "sha256-xK5kl3OBZaF1VwziVMX+SZ2LT9Fbu5o8vRDt78uR7no=", "narHash": "sha256-1R3Wx6KUkMb4x4E5UOhW9p6rqiexzSGGWxZqSHqW5n0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "b3ccd4bb262f4e6d3248b46cede92b90c4a42094", "rev": "91be7cce763fa4022c7cf025a71b0c366d1b6e77",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -306,14 +343,14 @@
}, },
"hypr-contrib": { "hypr-contrib": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1771266242, "lastModified": 1771502235,
"narHash": "sha256-ubwGVNkVs/AqOypM+aOSVNBcJqu6p11H/M0cO03mc64=", "narHash": "sha256-aH8h5ZOiyEGtHmEyuE/eFxx8TN7a+NGDnl4V+dbzJ6E=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "contrib", "repo": "contrib",
"rev": "36b79e54887b9a8a1211a327f1653c6308a52a16", "rev": "918f266dddae39fa4184a1b8bf51ec5381cf29f7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -391,17 +428,17 @@
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire", "hyprwire": "hyprwire",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_5",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems", "systems": "systems_2",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1771426136, "lastModified": 1771522877,
"narHash": "sha256-wx/Ev7U6MlDzd2HyGlSjoXcTlkaO7s8fk1g5BSlov54=", "narHash": "sha256-dqnkEwXPWuI8MW38kKjs880qaVA+WEWziz5liznzLYA=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "184af52f24c3267a4210239aba45a998404bb073", "rev": "9ea6d0e15fddccf321c035e83b007a55d6829dd9",
"revCount": 6898, "revCount": 6902,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@@ -516,8 +553,8 @@
"inputs": { "inputs": {
"hyprutils": "hyprutils_2", "hyprutils": "hyprutils_2",
"hyprwayland-scanner": "hyprwayland-scanner_2", "hyprwayland-scanner": "hyprwayland-scanner_2",
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_6",
"systems": "systems_2" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1770751064, "lastModified": 1770751064,
@@ -731,11 +768,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1771177547, "lastModified": 1771207753,
"narHash": "sha256-trTtk3WTOHz7hSw89xIIvahkgoFJYQ0G43IlqprFoMA=", "narHash": "sha256-b9uG8yN50DRQ6A7JdZBfzq718ryYrlmGgqkRm9OOwCE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ac055f38c798b0d87695240c7b761b82fc7e5bc2", "rev": "d1c15b7d5806069da59e819999d70e1cec0760bf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -746,54 +783,6 @@
} }
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": {
"lastModified": 1712163089,
"narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fd281bd6b7d3e32ddfa399853946f782553163b5",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1770841267,
"narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1748929857,
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1771369470, "lastModified": 1771369470,
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
@@ -809,7 +798,71 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": {
"locked": {
"lastModified": 1712163089,
"narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fd281bd6b7d3e32ddfa399853946f782553163b5",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1770841267,
"narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1748929857,
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": { "nixpkgs_7": {
"locked": {
"lastModified": 1771369470,
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "0182a361324364ae3f436a63005877674cf45efb",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_8": {
"locked": { "locked": {
"lastModified": 1770380644, "lastModified": 1770380644,
"narHash": "sha256-P7dWMHRUWG5m4G+06jDyThXO7kwSk46C1kgjEWcybkE=", "narHash": "sha256-P7dWMHRUWG5m4G+06jDyThXO7kwSk46C1kgjEWcybkE=",
@@ -825,7 +878,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_8": { "nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1767767207, "lastModified": 1767767207,
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=", "narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
@@ -844,8 +897,8 @@
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_8",
"systems": "systems_3" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1771135771, "lastModified": 1771135771,
@@ -913,11 +966,12 @@
"inputs": { "inputs": {
"copyparty": "copyparty", "copyparty": "copyparty",
"disko": "disko", "disko": "disko",
"fern": "fern",
"home-manager": "home-manager", "home-manager": "home-manager",
"hypr-contrib": "hypr-contrib", "hypr-contrib": "hypr-contrib",
"hyprland": "hyprland", "hyprland": "hyprland",
"hyprpicker": "hyprpicker", "hyprpicker": "hyprpicker",
"nixpkgs": "nixpkgs_6", "nixpkgs": "nixpkgs_7",
"nixvim": "nixvim", "nixvim": "nixvim",
"spicetify-nix": "spicetify-nix", "spicetify-nix": "spicetify-nix",
"stylix": "stylix" "stylix": "stylix"
@@ -928,7 +982,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_4" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1771268051, "lastModified": 1771268051,
@@ -953,9 +1007,9 @@
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_8", "nixpkgs": "nixpkgs_9",
"nur": "nur", "nur": "nur",
"systems": "systems_5", "systems": "systems_6",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
@@ -963,11 +1017,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1771428844, "lastModified": 1771541829,
"narHash": "sha256-rTzo6bZEsdT7yHUZ0B4BYe32XQZzm8SiWKvWLJnxerE=", "narHash": "sha256-jtrIUcFoZuS6R4P18907H0pPyHaGoF5Tomez7j3KIHs=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "801843d10e9e22d7a00f660d069e2de70aa2980a", "rev": "cb73f89d3ecef7e790c42f828e2228ff82975de5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -978,16 +1032,16 @@
}, },
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1681028828,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default-linux", "repo": "default",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default-linux", "repo": "default",
"type": "github" "type": "github"
} }
}, },
@@ -1008,16 +1062,16 @@
}, },
"systems_3": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1689347949,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"type": "github" "type": "github"
} }
}, },
@@ -1051,6 +1105,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_6": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": { "tinted-foot": {
"flake": false, "flake": false,
"locked": { "locked": {

View File

@@ -8,6 +8,7 @@
hyprpicker.url = "github:hyprwm/hyprpicker"; hyprpicker.url = "github:hyprwm/hyprpicker";
stylix.url = "github:danth/stylix"; stylix.url = "github:danth/stylix";
disko.url = "github:nix-community/disko"; disko.url = "github:nix-community/disko";
fern.url = "github:km-clay/fern";
nixvim.url = "github:nix-community/nixvim"; nixvim.url = "github:nix-community/nixvim";
@@ -41,17 +42,6 @@
hostDir = "desktop"; hostDir = "desktop";
kind = "both"; kind = "both";
} }
{
host = "phosphorous";
hostDir = "work";
kind = "both";
extraNixosModules = [
inputs.copyparty.nixosModules.default
];
extraOverlays = [
inputs.copyparty.overlays.default
];
}
{ {
host = "mercury"; host = "mercury";
hostDir = "laptop"; hostDir = "laptop";
@@ -65,6 +55,22 @@
./modules/server ./modules/server
]; ];
} }
{
host = "phosphorous";
hostDir = "work";
kind = "both";
extraNixosModules = [
inputs.fern.nixosModules.fern
inputs.copyparty.nixosModules.default
];
extraHomeModules = [
inputs.fern.homeModules.fern
];
extraOverlays = [
inputs.fern.overlays.default
inputs.copyparty.overlays.default
];
}
]; ];
in { in {
inherit (hosts) nixosConfigurations homeConfigurations; inherit (hosts) nixosConfigurations homeConfigurations;

View File

@@ -1,5 +1,8 @@
{ slash, pkgs, username, ... }: { inputs, pkgs, username, ... }:
let
fern = inputs.fern.packages.${pkgs.stdenv.hostPlatform.system}.default;
in
{ {
imports = [ ./hardware.nix ]; imports = [ ./hardware.nix ];
@@ -39,7 +42,7 @@
${username} = { ${username} = {
isNormalUser = true; isNormalUser = true;
initialPassword = "1234"; initialPassword = "1234";
shell = pkgs.zsh; shell = fern;
extraGroups = [ "input" "wheel" "persist" "libvirtd" ]; extraGroups = [ "input" "wheel" "persist" "libvirtd" ];
}; };
}; };

View File

@@ -1,4 +1,8 @@
{ slash, pkgs, username, ... }: { inputs, pkgs, username, ... }:
let
fern = inputs.fern.packages.${pkgs.stdenv.hostPlatform.system}.default;
in
{ {
imports = [ imports = [
./hardware.nix ./hardware.nix
@@ -33,6 +37,8 @@
shells = [ pkgs.myPkgs.slash pkgs.zsh pkgs.bash ]; shells = [ pkgs.myPkgs.slash pkgs.zsh pkgs.bash ];
}; };
programs.fern.enable = true;
users = { users = {
groups.persist = { }; groups.persist = { };
groups.davfs2 = { }; groups.davfs2 = { };
@@ -41,7 +47,7 @@
${username} = { ${username} = {
isNormalUser = true; isNormalUser = true;
initialPassword = "1234"; initialPassword = "1234";
shell = pkgs.zsh; shell = pkgs.fern;
extraGroups = [ "davfs2" "input" "wheel" "persist" "libvirtd" ]; extraGroups = [ "davfs2" "input" "wheel" "persist" "libvirtd" ];
}; };
}; };

View File

@@ -7,6 +7,7 @@
./starship.nix ./starship.nix
./userpkgs.nix ./userpkgs.nix
./zsh ./zsh
./fern
./swaync.nix ./swaync.nix
./hyprland.nix ./hyprland.nix
./waybar.nix ./waybar.nix

View File

@@ -0,0 +1,32 @@
{ lib, config, self, ... }:
{
programs.fern = {
aliases = {
mv = "mv -v";
cp = "cp -vr";
gt = "gtrash";
gtp = "playshellsound ${self}/assets/sound/rm.wav";
sr = "source ~/.fernrc";
psg = "ps aux | grep -v grep | grep -i -e VSZ -e";
mkdir = "mkdir -p";
pk = "pkill -9 -f";
svc = "sudo systemctl";
svcu = "systemctl --user";
iv = "invoke";
cfgfilecount = ''find ".\.nix" $FLAKEPATH | wc -l | toilet -f 3d | lolcat'';
vide = "neovide";
vi = "nvim";
mkexe = "chmod +x";
shortdate = "date +%m-%d-%y";
suvi = "sudoedit";
suvide = "EDITOR=neovide; suvi";
rustdev = "nix develop github:km-clay/devshells#rust";
ga = "playshellsound ${self}/assets/sound/gitadd.wav; git add";
gcomm = "gitcommit_sfx";
gpush = "gitpush_sfx";
gpull = "gitpull_sfx";
grebase = "gitrebase_sfx";
};
};
}

View File

@@ -0,0 +1,10 @@
{ ... }:
{
imports = [
./env.nix
./aliases.nix
./extraconfig.nix
./options.nix
];
}

View File

@@ -0,0 +1,18 @@
{ lib, config, ... }:
{
programs.fern = {
environmentVars = {
SOUNDS_ENABLED = "true";
EDITOR = "nvim";
SUDO_EDITOR = "nvim";
VISUAL = "nvim";
LANG = "en_US.UTF-8";
BROWSER = "firefox";
FLAKEPATH = "$HOME/.sysflake";
STEAMPATH = "$HOME/.local/share/Steam";
FZF_DEFAULT_COMMAND = "fd";
FZF_DEFAULT_OPTS = "--height 40% --layout=reverse --border";
};
};
}

View File

@@ -0,0 +1,174 @@
{ lib, config, self, pkgs, ... }:
let
shellsound = "${pkgs.myScripts.playshellsound}/bin/playshellsound";
color-commit = "${pkgs.myScripts.color-commit}/bin/color-commit";
sndpath = "${self}/assets/sound";
in
{
programs.fern = {
settings.extraPreConfig = ''
prompt_topline() {
if [ "$?" -eq "0" ]; then
last_cmd_status="\e[1;32m\e[0m"
else
last_cmd_status="\e[1;31m\e[0m"
fi
user_and_host="\e[1m$USER\e[1;36m@\e[1;31m$HOST\e[0m"
last_runtime_raw="$(echo -p "\t")"
if [ -z "$last_runtime_raw" ]; then
last_cmd_runtime=""
last_cmd_status=""
else
last_cmd_runtime="\e[1;38;2;249;226;175m󰔛 $(echo -p "\T")\e[0m"
fi
echo -n "$user_and_host $last_cmd_runtime $last_cmd_status\n"
}
prompt_midline() {
git rev-parse --is-inside-work-tree > /dev/null 2>&1 || return
status="$(git status --porcelain 2>/dev/null)"
gitsigns=""
[ -n "$status" ] && echo "$status" | command grep -q '^ [MADR]' && gitsigns="$gitsigns!"
[ -n "$status" ] && echo "$status" | command grep -q '^??' && gitsigns="$gitsigns?"
[ -n "$status" ] && echo "$status" | command grep -q '^[MADR]' && gitsigns="$gitsigns+"
ahead="$(git rev-list --count @{upstream}..HEAD 2>/dev/null)"
behind="$(git rev-list --count HEAD..@{upstream} 2>/dev/null)"
[ $ahead -gt 0 ] && gitsigns="$gitsigns"
[ $behind -gt 0 ] && gitsigns="$gitsigns"
branch="$(git branch --show-current 2>/dev/null)"
if [ -n "$gitsigns" ] || [ -n "$branch" ]; then
if [ -n "$gitsigns" ]; then
gitsigns="\e[1;31m[$gitsigns]"
fi
echo -n "\e[0mon \e[1;35m ''${branch}$gitsigns\e[0m\n"
fi
}
prompt_botline() {
echo -p "\e[1;36m\W\e[1;32m/"
}
prompt() {
top="$(prompt_topline)"
mid="$(prompt_midline)"
bot="$(prompt_botline)"
dollar="$(echo -p "\$ ")"
dollar="$(echo -e "\e[1;32m$dollar\e[0m")"
echo -en "$top$mid$bot\n$dollar"
}
export PS1="\n\!prompt "
'';
settings.extraPostConfig = ''
encrypt() {
if [ -z "$1" ]; then
echo "Usage: encrypt <text> [recipient]"
return 1
fi
if [ -z "$2" ]; then
gpg --encrypt --armor -r "$1"
else
echo "$1" | gpg --encrypt --armor -r "$2"
fi
}
decrypt() {
if [ -z "$1" ]; then
gpg --decrypt --quiet 2>/dev/null
else
echo "$1" | gpg --decrypt --quiet
fi
}
viflake() {
(
while ! [ -f ./flake.nix ]; do
builtin cd ..
if [ "$PWD" = "/" ]; then
echo "No flake.nix found in this directory or any parent directories."
return 1
fi
done
nvim ./flake.nix
)
}
nvim() {
${shellsound} ${sndpath}/nvim.wav
command nvim "$@"
}
neovide() {
${shellsound} ${sndpath}/nvim.wav
command neovide "$@"
}
grimblast() {
if command grimblast "$@"; then
${shellsound} ${sndpath}/screenshot.wav
fi
}
gitcheckout_sfx() {
if git checkout "$@"; then
${shellsound} ${sndpath}/gitcheckout.wav
else
${shellsound} ${sndpath}/error.wav
fi
}
gitrebase_sfx() {
if git rebase "$@"; then
${shellsound} ${sndpath}/gitrebase.wav
else
${shellsound} ${sndpath}/error.wav
fi
}
gitcommit_sfx() {
output="$(git commit "$@")"
if [ "$?" -eq "0" ]; then
${shellsound} ${sndpath}/gitcommit.wav
echo "$output" | ${color-commit}
return 0
else
${shellsound} ${sndpath}/error.wav
echo "$output"
return 1
fi
}
gitpush_sfx() {
if git push "$@"; then
${shellsound} ${sndpath}/gitpush.wav
else
${shellsound} ${sndpath}/error.wav
fi
}
gitpull_sfx() {
if git pull "$@"; then
${shellsound} ${sndpath}/gitpull.wav
else
${shellsound} ${sndpath}/error.wav
fi
}
ls() {
eza -1 --group-directories-first --icons "$@"
${shellsound} ${sndpath}/ls.wav
}
mkcd() {
command mkdir -p "$1" && builtin cd "$1"
}
cd() {
eza -1 --group-directories-first --icons "$@" 2> /dev/null
builtin cd "$@"
${shellsound} ${sndpath}/cd.wav
}
if [ "$0" = "-fern" ]; then
${shellsound} $FLAKEPATH/assets/sound/login.wav
fi
'';
};
}

View File

@@ -0,0 +1,12 @@
{ lib, config, ... }:
{
programs.fern = {
enable = true;
settings = {
autocd = true;
autoHistory = true;
};
};
}

View File

@@ -43,7 +43,7 @@ in {
config = lib.mkIf config.movOpts.envConfig.hyprlandConfig.enable { config = lib.mkIf config.movOpts.envConfig.hyprlandConfig.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
swaybg swaybg
inputs.hypr-contrib.packages.${pkgs.system}.grimblast inputs.hypr-contrib.packages.${pkgs.stdenv.hostPlatform.system}.grimblast
hyprpicker hyprpicker
grim grim
slurp slurp

View File

@@ -1,6 +1,6 @@
{ lib, config, pkgs, inputs, ... }: { lib, config, pkgs, inputs, ... }:
let let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
scheme = config.lib.stylix.colors; scheme = config.lib.stylix.colors;
in { in {
imports = [ inputs.spicetify-nix.homeManagerModules.default ]; imports = [ inputs.spicetify-nix.homeManagerModules.default ];

View File

@@ -1,4 +1,4 @@
{ lib, config, pkgs, self, ... }: { inputs, lib, config, pkgs, self, ... }:
let let
scripts = with pkgs; [ scripts = with pkgs; [

View File

@@ -1,4 +1,4 @@
{ lib, config, pkgs, ... }: { { self, lib, config, pkgs, ... }: {
options = { options = {
movOpts.programConfigs.kittyConfig.enable = movOpts.programConfigs.kittyConfig.enable =
lib.mkEnableOption "enables my kitty configuration"; lib.mkEnableOption "enables my kitty configuration";
@@ -16,9 +16,10 @@
confirm_os_window_close = 0; confirm_os_window_close = 0;
window_padding_width = 4; window_padding_width = 4;
scrollback_lines = 10000; scrollback_lines = 10000;
enable_audio_bell = false; enable_audio_bell = true;
allow_remote_control = true; allow_remote_control = true;
mouse_hide_wait = 60; mouse_hide_wait = 60;
command_on_bell = "${pkgs.myScripts.playshellsound}/bin/playshellsound ${self}/assets/sound/bell.wav";
## Tabs ## Tabs
tab_title_template = "{index}"; tab_title_template = "{index}";

View File

@@ -41,6 +41,12 @@ in {
vim.g.vimwiki_list = {{path = '~/vimwiki/', syntax = 'markdown', ext = '.md'}} vim.g.vimwiki_list = {{path = '~/vimwiki/', syntax = 'markdown', ext = '.md'}}
vim.filetype.add({
filename = {
[".fernrc"] = "sh",
}
})
vim.opt.number = true vim.opt.number = true
vim.opt.autochdir = false vim.opt.autochdir = false
vim.opt.relativenumber = true vim.opt.relativenumber = true

View File

@@ -7,6 +7,7 @@
programs.yazi = { programs.yazi = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
shellWrapperName = "y";
}; };
}; };
} }

View File

@@ -3,11 +3,16 @@
movOpts.softwareCfg.sysPkgs.enable = movOpts.softwareCfg.sysPkgs.enable =
lib.mkEnableOption "enables default system packages"; lib.mkEnableOption "enables default system packages";
}; };
config = lib.mkIf config.movOpts.softwareCfg.sysPkgs.enable { config =
let
fern = inputs.fern.packages.${pkgs.stdenv.hostPlatform.system}.default;
in
lib.mkIf config.movOpts.softwareCfg.sysPkgs.enable {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
dotnetCorePackages.sdk_8_0_4xx dotnetCorePackages.sdk_8_0_4xx
alsa-lib alsa-lib
xwayland xwayland
fern
wayland wayland
alsa-utils alsa-utils
bc bc
@@ -33,7 +38,7 @@
nixos-option nixos-option
nix-search-cli nix-search-cli
nix-template nix-template
nixfmt-classic nixfmt
sshfs sshfs
nvd nvd
pamixer pamixer

View File

@@ -29,6 +29,7 @@ pkgs.writeShellApplication {
hooray() { playshellsound "${self}/assets/sound/update.wav"; } hooray() { playshellsound "${self}/assets/sound/update.wav"; }
damn() { playshellsound "${self}/assets/sound/error.wav"; } damn() { playshellsound "${self}/assets/sound/error.wav"; }
start() { playshellsound "${self}/assets/sound/nixswitch-start.wav"; }
usage="\033[1;4;38;2;243;139;168mUsage\033[0m: rebuild -h for home config, rebuild -s for sys config, rebuild -a for both. Including 'n' with the flag does a dry run, i.e. rebuild -nh" usage="\033[1;4;38;2;243;139;168mUsage\033[0m: rebuild -h for home config, rebuild -s for sys config, rebuild -a for both. Including 'n' with the flag does a dry run, i.e. rebuild -nh"
@@ -42,8 +43,8 @@ pkgs.writeShellApplication {
dry_flag="" dry_flag=""
[ "$dry" = true ] && dry_flag="-n" [ "$dry" = true ] && dry_flag="-n"
[ "$all" = true ] && if sudo sleep 0.1 && nh os switch $dry_flag -H "${host}" "$FLAKEPATH" && nh home switch $dry_flag -c "${host}Home" "$FLAKEPATH"; then hooray; else damn; fi [ "$all" = true ] && if sudo sleep 0.1 && start && nh os switch $dry_flag -H "${host}" "$FLAKEPATH" && nh home switch $dry_flag -c "${host}Home" "$FLAKEPATH"; then hooray; else damn; fi
[ "$system" = true ] && if nh os switch $dry_flag -H "${host}" "$FLAKEPATH"; then hooray; else damn; fi [ "$system" = true ] && start && if nh os switch $dry_flag -H "${host}" "$FLAKEPATH"; then hooray; else damn; fi
[ "$home" = true ] && if nh home switch $dry_flag -c "${host}Home" "$FLAKEPATH"; then hooray; else damn; fi [ "$home" = true ] && start && if nh home switch $dry_flag -c "${host}Home" "$FLAKEPATH"; then hooray; else damn; fi
''; '';
} }

View File

@@ -12,7 +12,7 @@ pkgs.writeShellApplication {
exit 1 exit 1
fi fi
if scheck; then if scheck; then
runbg aplay "$1" runbg aplay "$1" > /dev/null 2>&1
else else
exit 1 exit 1
fi fi