hopefully the last complete restructure of this repo

This commit is contained in:
2024-10-24 15:34:23 -05:00
parent 8316336e0d
commit 77b7c16edc
123 changed files with 994 additions and 1313 deletions

View File

@@ -0,0 +1,52 @@
{
description = "ags config";
inputs = {
ags.url = "github:Aylur/ags";
};
outputs = { self, ... }@inputs: {
hmModule = { config, lib, pkgs, ... }: {
imports = [ inputs.ags.homeManagerModules.default ];
options.homeconfig.ags.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.ags.enable {
programs.ags = {
enable = true;
extraPackages = with pkgs; [
gtksourceview
webkitgtk
accountsservice
];
};
home.file.".config/ags/launcher.js".text = /*javascript*/ ''
function Launcher() {
return Widget.EventBox({
class_name: "launcher",
hpack: "center",
child: Widget.Icon({
icon: '${pkgs.nixos-icons}/share/icons/hicolor/48x48/apps/nix-snowflake.png',
css: 'font-size: 24px;'
}),
on_primary_click: () => {Utils.execAsync('rofi -show drun')},
margin_left: 10,
})
}
export default Launcher
'';
};
};
};
}

View File

@@ -0,0 +1,14 @@
{ config, lib, pkgs, ... }: {
options.homeconfig.calcurse.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.calcurse.enable {
home.packages = with pkgs; [
calcurse
libnotify
];
};
}

View File

@@ -0,0 +1,41 @@
{
description = "Nathan user program config";
inputs = {
ags.url = "./ags";
nixvim.url = "/ssd1/Projects/Nixvim";
rofi.url = "./rofi";
pywal.url = "./pywal";
hyprland.url = "./hyprland";
};
outputs = { self, ... }@inputs: {
hmModule = { config, lib, pkgs, ... }: {
imports = [
inputs.ags.hmModule
inputs.hyprland.hmModule
./terminal
inputs.rofi.hmModule
inputs.pywal.hmModule
./swaylock
./calcurse
./wayvnc
];
home.packages = [
inputs.nixvim.packages.${pkgs.system}.default
];
home.sessionVariables.EDITOR = "nvim";
};
};
}

View File

@@ -0,0 +1,43 @@
{
description = "Hyprland Config";
inputs = {
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
};
outputs = { self, ... }@inputs: {
hmModule = { config, lib, pkgs, ... }: {
options.homeconfig.hyprland.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.hyprland.enable {
home.sessionVariables.NIX_OZONE_WL = "1";
programs.kitty.enable = lib.mkDefault true;
home.packages = with pkgs; [
pyprland
];
wayland.windowManager.hyprland = {
enable = true;
systemd.variables = [ "--all" ];
extraConfig = ''
source = /home/nathan/.config/hypr/main.conf
'';
};
};
};
};
}

View File

@@ -0,0 +1,90 @@
{
description = "Pywal Config";
inputs = {
themecord = {
url = "github:danihek/themecord";
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
};
spicetify-nix = {
url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
};
spicetify-ext = {
url = "github:rxri/spicetify-extensions";
flake = false;
};
nixpkgs-us.url = "github:nixos/nixpkgs/nixos-unstable";
};
outputs = { self, ... }@inputs: let
system = "x86_64-linux";
pkgs-us = import inputs.nixpkgs-us {
inherit system;
config.allowUnfree = true;
};
in {
hmModule = { config, lib, pkgs, ... }:{
imports = [
inputs.spicetify-nix.homeManagerModules.default
];
options.homeconfig.wal.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = let
pywalfox-wrapper = pkgs.writeShellScriptBin "pywalfox-wrapper" ''
${pkgs.pywalfox-native}/bin/pywalfox start
'';
in lib.mkIf config.homeconfig.wal.enable {
programs.spicetify = let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in {
enable = true;
spotifyPackage = pkgs-us.spotify;
theme = spicePkgs.themes.default;
enabledExtensions = with spicePkgs.extensions; [
({
src = "${inputs.spicetify-ext}/adblock";
name = "adblock.js";
})
copyToClipboard
oneko
#randomBadToTheBoneRiff #this could be hilarious
];
enabledCustomApps = with spicePkgs.apps; [
ncsVisualizer
];
};
home.packages = with pkgs; [
inputs.themecord.packages.${pkgs.system}.default
vesktop
pkgs-us.pywal16
imagemagick
pywalfox-native
];
home.file.".mozilla/native-messaging-hosts/pywalfox.json".text = lib.replaceStrings [ "<path>" ] [
"${pywalfox-wrapper}/bin/pywalfox-wrapper"
]
(lib.readFile "${pkgs.pywalfox-native}/lib/python3.11/site-packages/pywalfox/assets/manifest.json");
};
};
};
}

View File

@@ -0,0 +1,20 @@
{ config, lib, pkgs, ... }: {
options.homeconfig.rofi.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.rofi.enable {
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
cycle = true;
theme = "/home/nathan/.cache/wal/colors-rofi-dark.rasi";
};
};
}

View File

@@ -0,0 +1,10 @@
{
description = "Rofi Config";
outputs = { self, ... }: {
hmModule = import ./.;
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }: {
options.homeconfig.swaylock.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.swaylock.enable {
home.packages = with pkgs; [ swaylock-effects ];
};
}

View File

@@ -0,0 +1,18 @@
{ config, lib, pkgs, ... }: {
programs.bat = {
enable = true;
extraPackages = with pkgs.bat-extras; [
batman
batpipe
batgrep
batdiff
batwatch
prettybat
];
};
}

View File

@@ -0,0 +1,12 @@
{ ... }: {
imports = [
./bat
./eza
./fzf
./tmux
./kitty
./zoxide
./zsh
];
}

View File

@@ -0,0 +1,17 @@
{ config, lib, pkgs, ... }: {
programs.eza = {
enable = true;
enableZshIntegration = true;
extraOptions = [
"--color=auto"
];
git = true;
icons = true;
};
}

View File

@@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }: {
programs.fzf = {
enable = true;
enableZshIntegration = true;
tmux = {
#enableShellIntegration = true;
#shellIntegrationOptions = [];
};
};
}

View File

@@ -0,0 +1,33 @@
{ config, lib, pkgs, ... }: {
programs.kitty = {
enable = true;
font = {
name = "FiraCode Nerd Font";
size = 12;
};
extraConfig = ''
confirm_os_window_close 0
include ${config.home.homeDirectory}/.cache/wal/colors-kitty.conf
disable_ligatures never
dynamic_background_opacity yes
tab_bar_edge top
map ctrl+shift+t new_tab
map ctrl+shift+w close_tab
map ctrl+tab next_tab
map ctrl+shift+tab previous_tab
'';
};
}

View File

@@ -0,0 +1,23 @@
{ config, lib, pkgs, ... }: {
programs.tmux = {
enable = true;
clock24 = true;
mouse = true;
baseIndex = 1;
keyMode = "vi";
prefix = "C-b";
shell = "${pkgs.zsh}/bin/zsh";
};
}

View File

@@ -0,0 +1,13 @@
{ config, lib, pkgs, ... }: {
programs.zoxide = {
enable = true;
enableZshIntegration = true;
options = [
"--cmd cd"
];
};
}

View File

@@ -0,0 +1,156 @@
{ config, lib, pkgs, ... }: {
home.packages = with pkgs; [
oh-my-posh
];
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
ls = "eza";
ll = "ls -l";
ksh = "kitten ssh";
vi = "nvim";
vim = "nvim";
};
history = {
size = 5000;
ignoreAllDups = true;
ignoreSpace = true;
share = true;
};
initExtraFirst = ''
cat ${config.home.homeDirectory}/.cache/wal/sequences
eval "$(oh-my-posh init zsh --config ${config.home.homeDirectory}/.cache/wal/ohmyposh.toml)"
'';
};
home.file.".config/wal/templates/ohmyposh.toml".text = ''
#:schema https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
version = 2
final_space = true
console_title_template = '{{{{ .Shell }}}} in {{{{ .Folder }}}}'
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
type = 'os'
style = 'diamond'
trailing_diamond = ''
background = 'p:c1'
foreground = 'p:c12'
template = ' {{{{ .Icon }}}} '
[[blocks.segments]]
type = 'session'
style = 'diamond'
trailing_diamond = ''
background = 'p:c2'
foreground = 'p:c14'
template = '{{{{ .UserName }}}}@{{{{ .HostName }}}}'
[[blocks.segments]]
type = 'path'
style = 'diamond'
trailing_diamond = ''
background = 'p:c4'
foreground = 'p:c13'
template = '{{{{ .Path }}}}'
[blocks.segments.properties]
style = 'full'
[[blocks]]
type = 'prompt'
overflow = 'hidden'
alignment = 'right'
[[blocks.segments]]
type = 'executiontime'
style = 'diamond'
leading_diamond = ''
background = 'p:c4'
foreground = 'p:c13'
template = '{{{{ .FormattedMs }}}}'
[[blocks.segments]]
type = 'time'
style = 'diamond'
leading_diamond = ''
background = 'p:c2'
foreground = 'p:c14'
[[blocks.segments]]
type = 'shell'
style = 'diamond'
leading_diamond = ''
background = 'p:c1'
foreground = 'p:c12'
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
type = 'text'
style = 'plain'
background = 'transparent'
foreground_templates = [
"{{{{ if gt .Code 0 }}}}p:c13{{{{end}}}}",
"{{{{ if eq .Code 0 }}}}p:c14{{{{end}}}}",
]
template = "{{{{ if gt .Code 0 }}}}! {{{{else}}}} {{{{end}}}}"
[transient_prompt]
foreground_templates = [
"{{{{ if gt .Code 0 }}}}p:c13{{{{end}}}}",
"{{{{ if eq .Code 0 }}}}p:c14{{{{end}}}}",
]
background = 'transparent'
template = "{{{{ if gt .Code 0 }}}}! {{{{else}}}} {{{{end}}}}"
[secondary_prompt]
background = 'transparent'
forground = 'p:c14'
template = " "
[palette]
c0 = "{color0}"
c1 = "{color1}"
c2 = "{color2}"
c3 = "{color3}"
c4 = "{color4}"
c5 = "{color5}"
c6 = "{color6}"
c7 = "{color7}"
c8 = "{color8}"
c9 = "{color9}"
c10 = "{color10}"
c11 = "{color11}"
c12 = "{color12}"
c13 = "{color13}"
c14 = "{color14}"
c15 = "{color15}"
'';
}

View File

@@ -0,0 +1,13 @@
{ config, lib, pkgs, ... }: {
options.homeconfig.wayvnc.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.wayvnc.enable {
home.packages = with pkgs; [
wayvnc
];
};
}