formatted all files with nixfmt, added env variable to hold secrets

This commit is contained in:
pagedmov
2024-11-09 16:20:27 -05:00
parent d38da56ba2
commit 2a1ba18c09
93 changed files with 948 additions and 1254 deletions

View File

@@ -1,17 +1,3 @@
{
inputs,
nixpkgs,
config,
self,
username,
host,
lib,
...
}: {
imports = [
./programs
./environment
./scripts
./files.nix
];
{ env, inputs, nixpkgs, config, self, username, host, lib, ... }: {
imports = [ ./programs ./environment ./scripts ./files.nix ];
}

View File

@@ -1,14 +1,4 @@
{
host,
nur,
nixvim,
self,
inputs,
username,
config,
home-manager,
...
}: {
{ host, nur, nixvim, self, inputs, username, config, home-manager, ... }: {
imports = [
./gtk.nix
./spicetify.nix

View File

@@ -1,26 +1,22 @@
{lib, config, pkgs, ... }: {
{ lib, config, pkgs, ... }: {
options = {
movOpts.envConfig.gtkConfig.enable = lib.mkEnableOption "enable my gtk options";
movOpts.envConfig.gtkConfig.enable =
lib.mkEnableOption "enable my gtk options";
};
config = lib.mkIf config.movOpts.envConfig.gtkConfig.enable {
fonts.fontconfig.enable = true;
home.packages = with pkgs; [
(nerdfonts.override {
fonts = [
"JetBrainsMono"
"CascadiaCode"
"NerdFontsSymbolsOnly"
];
})
];
home.packages = with pkgs;
[
(nerdfonts.override {
fonts = [ "JetBrainsMono" "CascadiaCode" "NerdFontsSymbolsOnly" ];
})
];
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-nord.override {
accent = "frostblue4";
};
package = pkgs.papirus-nord.override { accent = "frostblue4"; };
};
#cursorTheme = {
# name = "Bibata-Modern-Ice";

View File

@@ -68,27 +68,30 @@ in {
"aplay ${self}/assets/sound/login.wav &"
];
workspace =
if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "dualmonitor") then [
workspace = if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
== "dualmonitor") then [
"1,persistent=true,monitor:${builtins.elemAt mons 0}"
"2,persistent=true,monitor:${builtins.elemAt mons 0}"
"3,persistent=true,monitor:${builtins.elemAt mons 0}"
"4,persistent=true,monitor:${builtins.elemAt mons 1}"
"5,persistent=true,monitor:${builtins.elemAt mons 1}"
"6,persistent=true,monitor:${builtins.elemAt mons 1}"
] else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "singlemonitor") then [
"1,persistent=true,monitor:${builtins.elemAt mons 0} "
"2,persistent=true,monitor:${builtins.elemAt mons 0}"
"3,persistent=true,monitor:${builtins.elemAt mons 0}"
"4,persistent=true,monitor:${builtins.elemAt mons 0}"
] else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "trimonitor") then [
"1,persistent=true,monitor:${builtins.elemAt mons 2}"
"2,persistent=true,monitor:${builtins.elemAt mons 2}"
"3,persistent=true,monitor:${builtins.elemAt mons 1}"
"4,persistent=true,monitor:${builtins.elemAt mons 1}"
"5,persistent=true,monitor:${builtins.elemAt mons 0}"
"6,persistent=true,monitor:${builtins.elemAt mons 0}"
] else [];
] else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
== "singlemonitor") then [
"1,persistent=true,monitor:${builtins.elemAt mons 0} "
"2,persistent=true,monitor:${builtins.elemAt mons 0}"
"3,persistent=true,monitor:${builtins.elemAt mons 0}"
"4,persistent=true,monitor:${builtins.elemAt mons 0}"
] else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
== "trimonitor") then [
"1,persistent=true,monitor:${builtins.elemAt mons 2}"
"2,persistent=true,monitor:${builtins.elemAt mons 2}"
"3,persistent=true,monitor:${builtins.elemAt mons 1}"
"4,persistent=true,monitor:${builtins.elemAt mons 1}"
"5,persistent=true,monitor:${builtins.elemAt mons 0}"
"6,persistent=true,monitor:${builtins.elemAt mons 0}"
] else
[ ];
env = [
"XDG_CONFIG_HOME,$HOME/.config"

View File

@@ -1,16 +1,16 @@
{lib, config, pkgs, inputs, ... }: let
{ lib, config, pkgs, inputs, ... }:
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
scheme = config.lib.stylix.colors;
in {
imports = [inputs.spicetify-nix.homeManagerModules.default];
imports = [ inputs.spicetify-nix.homeManagerModules.default ];
options = {
movOpts.envConfig.spicetifyConfig.enable = lib.mkEnableOption "enable my spicetify options";
movOpts.envConfig.spicetifyConfig.enable =
lib.mkEnableOption "enable my spicetify options";
};
config = lib.mkIf config.movOpts.envConfig.spicetifyConfig.enable {
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"spotify"
];
builtins.elem (lib.getName pkg) [ "spotify" ];
programs.spicetify = {
enable = true;

View File

@@ -1,6 +1,7 @@
{config, lib, inputs, ... }: {
{ config, lib, inputs, ... }: {
options = {
movOpts.envConfig.starshipConfig.enable = lib.mkEnableOption "enables my starship configuration";
movOpts.envConfig.starshipConfig.enable =
lib.mkEnableOption "enables my starship configuration";
};
config = lib.mkIf config.movOpts.envConfig.starshipConfig.enable {
programs.starship = {
@@ -23,7 +24,9 @@
format = "[$user]($style)";
};
directory = {
format = "\n[$path](bold cyan)[/](bold green) ";
format = ''
[$path](bold cyan)[/](bold green) '';
style = "bold #b4befe";
};
@@ -42,7 +45,9 @@
};
git_branch = {
format = "\non [$symbol$branch](bold purple)";
format = ''
on [$symbol$branch](bold purple)'';
symbol = " ";
truncation_length = 15;
style = "bold purple";

View File

@@ -1,12 +1,12 @@
{lib, self, config, pkgs, ... }:
{ lib, self, config, pkgs, ... }:
let
scheme = "tokyo-night-dark";
wallpaper = "${self}/assets/wallpapers/dark-waves.jpg";
in
{
in {
options = {
movOpts.envConfig.stylixHomeConfig.enable = lib.mkEnableOption "enables my stylix Home-Manager options";
movOpts.envConfig.stylixHomeConfig.enable =
lib.mkEnableOption "enables my stylix Home-Manager options";
};
config = lib.mkIf config.movOpts.envConfig.stylixHomeConfig.enable {
stylix = {
@@ -15,7 +15,7 @@ in
image = wallpaper;
polarity = "dark";
autoEnable = true;
opacity.terminal = 0.50;
opacity.terminal = 0.5;
targets = {
waybar.enable = false;
btop.enable = false;
@@ -26,15 +26,15 @@ in
};
fonts = {
monospace = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
name = "JetBrains Mono Nerd Font";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
name = "JetBrains Mono Nerd Font";
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
name = "JetBrains Mono Nerd Font";
};
sizes = {

View File

@@ -1,9 +1,10 @@
{lib, config, pkgs, ...}: {
{ lib, config, pkgs, ... }: {
options = {
movOpts.envConfig.swayncConfig.enable = lib.mkEnableOption "enables my swaync configuration";
movOpts.envConfig.swayncConfig.enable =
lib.mkEnableOption "enables my swaync configuration";
};
config = lib.mkIf config.movOpts.envConfig.swayncConfig.enable {
home.packages = with pkgs; [swaynotificationcenter];
home.packages = with pkgs; [ swaynotificationcenter ];
xdg.configFile."swaync/style.css".text = ''
@define-color shadow rgba(0, 0, 0, 0.25);
/*

View File

@@ -1,4 +1,4 @@
{lib, config, pkgs, self, ... }:
{ lib, config, pkgs, self, ... }:
let
extraFigletFonts = pkgs.fetchFromGitHub {
@@ -8,7 +8,7 @@ let
sha256 = "sha256-dAs7N66D2Fpy4/UB5Za1r2qb1iSAJR6TMmau1asxgtY=";
};
toilet-extrafonts = pkgs.toilet.overrideAttrs (oldAttrs: {
buildInputs = oldAttrs.buildInputs or [] ++ [extraFigletFonts];
buildInputs = oldAttrs.buildInputs or [ ] ++ [ extraFigletFonts ];
installPhase = ''
make install PREFIX=$out
@@ -16,36 +16,35 @@ let
cp -r ${extraFigletFonts}/* $out/share/figlet
'';
});
in
{
in {
options = {
movOpts.envConfig.userPkgs.enable = lib.mkEnableOption "enables my default user packages";
movOpts.envConfig.userPkgs.enable =
lib.mkEnableOption "enables my default user packages";
};
config = lib.mkIf config.movOpts.envConfig.userPkgs.enable {
home.packages = with pkgs;
[
nemo
gtk3
sqlite
gimp
imagemagick
vlc
lolcat
vesktop
qbittorrent
neovide
zsh
zsh-syntax-highlighting
zsh-history-substring-search
zsh-autosuggestions
audacity
rustup
libreoffice
gtrash
ripgrep
toilet-extrafonts
python3
chafa
];
};
home.packages = with pkgs; [
nemo
gtk3
sqlite
gimp
imagemagick
vlc
lolcat
vesktop
qbittorrent
neovide
zsh
zsh-syntax-highlighting
zsh-history-substring-search
zsh-autosuggestions
audacity
rustup
libreoffice
gtrash
ripgrep
toilet-extrafonts
python3
chafa
];
};
}

View File

@@ -1,4 +1,4 @@
{pkgs, host, lib, config, ...}:
{ pkgs, host, lib, config, ... }:
let
desktop = host == "oganesson";
@@ -13,16 +13,20 @@ let
"6" = "";
};
persistent-workspaces =
if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "singlemonitor") then {
"${builtins.elemAt monitors 0}" = [ 1 2 3 4 ];
} else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "dualmonitor") then {
"${builtins.elemAt monitors 0}" = [ 1 2 3 ];
"${builtins.elemAt monitors 1}" = [ 4 5 6 ];
} else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "trimonitor") then {
"${builtins.elemAt monitors 2}" = [ 1 2 ];
"${builtins.elemAt monitors 1}" = [ 3 4 ];
"${builtins.elemAt monitors 0}" = [ 5 6 ];
} else {};
if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
== "singlemonitor") then {
"${builtins.elemAt monitors 0}" = [ 1 2 3 4 ];
} else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
== "dualmonitor") then {
"${builtins.elemAt monitors 0}" = [ 1 2 3 ];
"${builtins.elemAt monitors 1}" = [ 4 5 6 ];
} else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
== "trimonitor") then {
"${builtins.elemAt monitors 2}" = [ 1 2 ];
"${builtins.elemAt monitors 1}" = [ 3 4 ];
"${builtins.elemAt monitors 0}" = [ 5 6 ];
} else
{ };
};
@@ -52,14 +56,15 @@ let
monitors = config.movOpts.envConfig.hyprlandConfig.monitorNames;
in {
options = {
movOpts.envConfig.waybarConfig.enable = lib.mkEnableOption "enables my waybar configuration";
movOpts.envConfig.waybarConfig.enable =
lib.mkEnableOption "enables my waybar configuration";
};
config = {
programs.waybar = {
enable = true;
package = pkgs.waybar.overrideAttrs (oa: {
mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];
});
mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ];
});
settings = {
mainBar = {
layer = "bottom";
@@ -68,25 +73,13 @@ in {
name = "mainBar";
margin-left = 8;
margin-top = 5;
margin-right =
if desktop
then 8
else 5;
margin-right = if desktop then 8 else 5;
mode = "dock";
"gtk-layer-shell" = true;
modules-left = [
"hyprland/workspaces"
"cava"
];
modules-center = [
"hyprland/window"
];
modules-right = [
"group/hardware"
"clock"
"group/powerbtns"
];
modules-left = [ "hyprland/workspaces" "cava" ];
modules-center = [ "hyprland/window" ];
modules-right = [ "group/hardware" "clock" "group/powerbtns" ];
"hyprland/workspaces" = workspaces;
@@ -107,16 +100,12 @@ in {
waves = false;
noise_reduction = 0.77;
input_delay = 1;
format-icons = ["" "" "" "" "" "" "" ""];
format-icons = [ "" "" "" "" "" "" "" "" ];
};
"group/hardware" = {
orientation = "inherit";
modules = [
"custom/disk-icon"
"memory"
"cpu"
];
modules = [ "custom/disk-icon" "memory" "cpu" ];
};
"custom/disk-icon" = {
@@ -146,34 +135,14 @@ in {
return-type = "json";
rotate = 270;
format = "{icon}";
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
format-icons = [ "󰝦" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ];
};
memory = {
interval = 1;
rotate = 270;
format = "{icon}";
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
format-icons = [ "󰝦" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ];
max-length = 10;
tooltip-format = "RAM: {used:0.1f} GB / {total:0.1f} GB";
};
@@ -182,17 +151,7 @@ in {
interval = 1;
rotate = 270;
format = "{icon}";
format-icons = [
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
format-icons = [ "󰝦" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ];
tooltip-format = "CPU: {usage:0.1f}%";
};
@@ -221,11 +180,7 @@ in {
children-class = "power-drawer";
transition-left-to-right = false;
};
modules = [
"custom/power"
"custom/logout"
"custom/reboot"
];
modules = [ "custom/power" "custom/logout" "custom/reboot" ];
};
clock = {
@@ -234,292 +189,268 @@ in {
};
};
sideBar = {
layer = "bottom";
output =
if desktop
then builtins.elemAt monitors 0
else builtins.elemAt monitors 1;
position = "right";
margin-top = 8;
margin-right = 5;
margin-bottom = 8;
name = "sideBar";
mode = "dock";
"gtk-layer-shell" = true;
layer = "bottom";
output = if desktop then
builtins.elemAt monitors 0
else
builtins.elemAt monitors 1;
position = "right";
margin-top = 8;
margin-right = 5;
margin-bottom = 8;
name = "sideBar";
mode = "dock";
"gtk-layer-shell" = true;
modules-left =
if desktop
then [
"hyprland/workspaces"
]
else [
"group/brightness"
"battery"
];
modules-center = [
];
modules-right = [
"network"
"group/audio"
];
modules-left = if desktop then
[ "hyprland/workspaces" ]
else [
"group/brightness"
"battery"
];
modules-center = [ ];
modules-right = [ "network" "group/audio" ];
"hyprland/workspaces" = workspaces;
"hyprland/workspaces" = workspaces;
"pulseaudio/slider" = {
orientation = "vertical";
};
"pulseaudio/slider" = { orientation = "vertical"; };
"group/audio" = {
orientation = "vertical";
modules = [
"pulseaudio/slider"
"pulseaudio"
];
};
"group/audio" = {
orientation = "vertical";
modules = [ "pulseaudio/slider" "pulseaudio" ];
};
pulseaudio = {
format = "{icon}";
format-muted = " ";
format-icons = {
default = [
" "
" "
];
};
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
on-click-right = "hyprctl dispatch exec '[float;size 40% 55%] pavucontrol'";
};
pulseaudio = {
format = "{icon}";
format-muted = " ";
format-icons = { default = [ " " " " ]; };
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
on-click-right =
"hyprctl dispatch exec '[float;size 40% 55%] pavucontrol'";
};
network = {
interval = 30;
format-wifi = "󰖩 ";
tooltip-format-wifi = "{essid} ({signalStrength}%)";
format-ethernet = " ";
tooltip-format-ethernet = "{ifname}";
format-disconnected = "󰖪 ";
tooltip-format-disconnected = "Disconnected";
on-click = "hyprctl dispatch exec '[float;size 40% 55%] kitty nmtui'";
};
network = {
interval = 30;
format-wifi = "󰖩 ";
tooltip-format-wifi = "{essid} ({signalStrength}%)";
format-ethernet = " ";
tooltip-format-ethernet = "{ifname}";
format-disconnected = "󰖪 ";
tooltip-format-disconnected = "Disconnected";
on-click =
"hyprctl dispatch exec '[float;size 40% 55%] kitty nmtui'";
};
battery = {
bat = "BAT1";
interval = 1;
tooltip-format = "{capacity}%\nTil empty: {time}";
tooltip-format-charging = "{capacity}%\nTil full: {time}";
format = "{icon}";
format-icons = [
"󰁺"
"󰁻"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
format-charging = "󰂄";
};
battery = {
bat = "BAT1";
interval = 1;
tooltip-format = ''
{capacity}%
Til empty: {time}'';
tooltip-format-charging = ''
{capacity}%
Til full: {time}'';
format = "{icon}";
format-icons = [ "󰁺" "󰁻" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
format-charging = "󰂄";
};
"group/brightness" = {
orientation = "vertical";
modules = [
"backlight"
"backlight/slider"
];
};
backlight = {
format = "󰃠";
tooltip = "{percentage}%";
};
"backlight/slider" = {
min = 10;
max = 100;
orientation = "vertical";
rotate = 180;
};
"group/brightness" = {
orientation = "vertical";
modules = [ "backlight" "backlight/slider" ];
};
backlight = {
format = "󰃠";
tooltip = "{percentage}%";
};
"backlight/slider" = {
min = 10;
max = 100;
orientation = "vertical";
rotate = 180;
};
};
};
style = ''
* {
border: none;
border-radius: 0;
font-size: 16px;
font-family: "JetBrains Mono Nerd Font";
}
* {
border: none;
border-radius: 0;
font-size: 16px;
font-family: "JetBrains Mono Nerd Font";
}
window#waybar {
border-radius: 10px;
border: 3px solid #${fg.light};
background: rgba(23,29,35,0.50);
margin: 20px;
}
window#waybar.empty #window {
background: none;
border: none;
}
window#waybar {
border-radius: 10px;
border: 3px solid #${fg.light};
background: rgba(23,29,35,0.50);
margin: 20px;
}
window#waybar.empty #window {
background: none;
border: none;
}
#workspaces {
margin: 3px;
background: #${bg.darker};
border: 3px solid #${bg.dark};
border-radius: 8px;
}
#workspaces {
margin: 3px;
background: #${bg.darker};
border: 3px solid #${bg.dark};
border-radius: 8px;
}
#workspaces button:hover {
border-radius: 8px;
}
#workspaces button:hover {
border-radius: 8px;
}
#workspaces button.active {
background: #${fg.lightester};
border-radius: 8px;
color: #${bg.darkest};
}
#workspaces button.active {
background: #${fg.lightester};
border-radius: 8px;
color: #${bg.darkest};
}
#cava {
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px 3px 3px 6px;
padding: 0px 15px 0px 15px;
color: #${colors.color6};
}
#cava {
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px 3px 3px 6px;
padding: 0px 15px 0px 15px;
color: #${colors.color6};
}
#window {
margin: 3px;
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
padding: 0 15px 0 15px;
font-weight: bold;
}
#window {
margin: 3px;
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
padding: 0 15px 0 15px;
font-weight: bold;
}
#hardware {
margin: 3px;
padding: 0 10px 0 10px;
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
}
#hardware {
margin: 3px;
padding: 0 10px 0 10px;
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
}
#custom-disk-icon, #cpu, #memory {
margin-bottom: 4px;
font-size: 20px;
font-weight: bold;
}
#custom-disk-icon, #cpu, #memory {
margin-bottom: 4px;
font-size: 20px;
font-weight: bold;
}
#custom-disk-icon {
color: #${colors.color4};
}
#custom-disk-icon {
color: #${colors.color4};
}
#memory {
color: #${colors.color1};
}
#memory {
color: #${colors.color1};
}
#cpu {
color: #${colors.color3};
}
#cpu {
color: #${colors.color3};
}
#clock {
font-weight: bold;
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 0 10px 0 10px;
font-size: 18px;
}
#clock {
font-weight: bold;
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 0 10px 0 10px;
font-size: 18px;
}
#powerbtns {
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 0 5px 0 10px;
}
#powerbtns {
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 0 5px 0 10px;
}
#custom-power {
color: #${colors.color2};
font-size: 18px;
}
#custom-power {
color: #${colors.color2};
font-size: 18px;
}
#custom-logout {
color: #${colors.color4};
font-size: 18px;
}
#custom-logout {
color: #${colors.color4};
font-size: 18px;
}
#custom-reboot {
color: #${colors.color0};
font-size: 18px;
}
#custom-reboot {
color: #${colors.color0};
font-size: 18px;
}
#audio {
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 5px 0 10px 0;
}
#audio {
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 5px 0 10px 0;
}
#pulseaudio {
color: #${colors.color1};
font-size: 18px;
}
#pulseaudio {
color: #${colors.color1};
font-size: 18px;
}
#backlight-slider slider,
#pulseaudio-slider slider {
background: #${colors.color4};
background-color: transparent;
box-shadow: none;
}
#backlight-slider slider,
#pulseaudio-slider slider {
background: #${colors.color4};
background-color: transparent;
box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
min-width: 9px;
min-height: 90px;
border-radius: 8px;
background: #121212;
}
#backlight-slider trough,
#pulseaudio-slider trough {
min-width: 9px;
min-height: 90px;
border-radius: 8px;
background: #121212;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
border-radius: 8px;
background-color: #${colors.color4};
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
border-radius: 8px;
background-color: #${colors.color4};
}
#network {
color: #${colors.color1};
font-size: 20px;
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 5px 0 5px 6px;
}
#network {
color: #${colors.color1};
font-size: 20px;
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 5px 0 5px 6px;
}
#brightness {
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 10px 0px 5px 0;
}
#brightness {
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 10px 0px 5px 0;
}
#backlight {
color: #${colors.color4};
font-size: 18px;
padding: 0 4px 0 0;
}
#backlight {
color: #${colors.color4};
font-size: 18px;
padding: 0 4px 0 0;
}
#battery {
color: #${colors.color4};
font-size: 20px;
background: #${bg.darker};
border: 3px solid #${bg.dark};
border-radius: 8px;
margin: 3px;
padding: 5px 0 5px 0px;
}
#battery {
color: #${colors.color4};
font-size: 20px;
background: #${bg.darker};
border: 3px solid #${bg.dark};
border-radius: 8px;
margin: 3px;
padding: 5px 0 5px 0px;
}
'';
};
};

View File

@@ -1,6 +1,7 @@
{lib, config, self, ...}: {
{ lib, config, self, ... }: {
options = {
movOpts.envConfig.zshConfig.enable = lib.mkEnableOption "enables my zsh configuration";
movOpts.envConfig.zshConfig.enable =
lib.mkEnableOption "enables my zsh configuration";
};
config = lib.mkIf config.movOpts.envConfig.zshConfig.enable {
programs.zoxide = {
@@ -28,7 +29,8 @@
svc = "sudo systemctl";
viflake = "nvim flake.nix";
iv = "invoke";
cfgfilecount = "find $FLAKEPATH -name \"*.nix\" | wc -l | toilet -f 3d | lolcat";
cfgfilecount =
''find $FLAKEPATH -name "*.nix" | wc -l | toilet -f 3d | lolcat'';
#git
"ga" = "playshellsound ${self}/assets/sound/gitadd.wav; git add";
@@ -52,7 +54,7 @@
oh-my-zsh = {
enable = true;
plugins = ["git" "fzf"];
plugins = [ "git" "fzf" ];
};
enableCompletion = true;

View File

@@ -1,4 +1,4 @@
{pkgs, lib, self, config, ... }:
{ pkgs, lib, self, config, ... }:
# This folder is for programs that do not have existing configuration modules in NixOS.
# Basically a to-do list for stuff I need to write my own modules for.
@@ -10,25 +10,25 @@ let
scheme_path = "${pkgs.base16-schemes}/share/themes/${ssh_base16}.yaml";
scheme_string = builtins.readFile scheme_path;
scheme_list = lib.splitString "\n" "${scheme_string}";
colors = lib.filter (line: builtins.match "^ *base[0-9A-F]{2}: .*" line != null) scheme_list;
ssh_scheme =
lib.lists.foldl' (
acc: line: let
splitLine = lib.splitString ": " line;
key = builtins.elemAt splitLine 0;
value = builtins.elemAt splitLine 1;
trimmedKey = lib.trim key;
cleanValue_step1 = lib.splitString " " value;
cleanValue_step2 = builtins.elemAt cleanValue_step1 0;
cleanValue_final = builtins.substring 1 (builtins.stringLength cleanValue_step2 - 2) cleanValue_step2;
in
acc // {"${trimmedKey}" = cleanValue_final;}
) {}
colors;
in
{
colors =
lib.filter (line: builtins.match "^ *base[0-9A-F]{2}: .*" line != null)
scheme_list;
ssh_scheme = lib.lists.foldl' (acc: line:
let
splitLine = lib.splitString ": " line;
key = builtins.elemAt splitLine 0;
value = builtins.elemAt splitLine 1;
trimmedKey = lib.trim key;
cleanValue_step1 = lib.splitString " " value;
cleanValue_step2 = builtins.elemAt cleanValue_step1 0;
cleanValue_final =
builtins.substring 1 (builtins.stringLength cleanValue_step2 - 2)
cleanValue_step2;
in acc // { "${trimmedKey}" = cleanValue_final; }) { } colors;
in {
options = {
movOpts.homeFiles.enable = lib.mkEnableOption "enables declared custom files";
movOpts.homeFiles.enable =
lib.mkEnableOption "enables declared custom files";
};
config = {
home.file = {

View File

@@ -1,6 +1,7 @@
{lib, config, ...}: {
{ lib, config, ... }: {
options = {
movOpts.programConfigs.autojumpConfig.enable = lib.mkEnableOption "enables my autojump options";
movOpts.programConfigs.autojumpConfig.enable =
lib.mkEnableOption "enables my autojump options";
};
config = lib.mkIf config.movOpts.programConfigs.autojumpConfig.enable {
programs.autojump = {

View File

@@ -1,13 +1,12 @@
{lib, config, inputs, ...}: {
{ lib, config, inputs, ... }: {
options = {
movOpts.programConfigs.batConfig.enable = lib.mkEnableOption "enables my bat options";
movOpts.programConfigs.batConfig.enable =
lib.mkEnableOption "enables my bat options";
};
config = lib.mkIf config.movOpts.programConfigs.batConfig.enable {
programs.bat = {
enable = true;
config = {
pager = "less -FR";
};
config = { pager = "less -FR"; };
};
};
}

View File

@@ -1,6 +1,7 @@
{lib, config, pkgs, ...}: {
{ lib, config, pkgs, ... }: {
options = {
movOpts.programConfigs.btopConfig.enable = lib.mkEnableOption "enables my btop config";
movOpts.programConfigs.btopConfig.enable =
lib.mkEnableOption "enables my btop config";
};
config = lib.mkIf config.movOpts.programConfigs.btopConfig.enable {
programs.btop = {
@@ -19,6 +20,6 @@
};
};
home.packages = with pkgs; [nvtopPackages.intel];
home.packages = with pkgs; [ nvtopPackages.intel ];
};
}

View File

@@ -1,10 +1,9 @@
{lib, config, inputs, pkgs, ... }: {
{ lib, config, inputs, pkgs, ... }: {
options = {
movOpts.programConfigs.cavaConfig.enable = lib.mkEnableOption "enables my cava settings";
movOpts.programConfigs.cavaConfig.enable =
lib.mkEnableOption "enables my cava settings";
};
config = lib.mkIf config.movOpts.programConfigs.cavaConfig.enable {
programs.cava = {
enable = true;
};
programs.cava = { enable = true; };
};
}

View File

@@ -1,27 +1,9 @@
{
host,
nur,
nixvim,
self,
inputs,
username,
config,
home-manager,
...
}:
{
imports =
[(import ./btop.nix)]
++ [(import ./yazi.nix)]
++ [(import ./kitty.nix)]
++ [(import ./fuzzel.nix)]
++ [(import ./eza.nix)]
++ [(import ./cava.nix)]
++ [(import ./bat.nix)]
++ [(import ./fzf.nix)]
++ [(import ./git.nix)]
++ [(import ./password-store.nix)]
++ [(import ./autojump.nix)]
++ [(import ./firefox.nix)]
++ [(import ./nixvim)];
{ env, host, nur, nixvim, self, inputs, username, config, home-manager, ... }: {
imports = [ (import ./btop.nix) ] ++ [ (import ./yazi.nix) ]
++ [ (import ./kitty.nix) ] ++ [ (import ./fuzzel.nix) ]
++ [ (import ./eza.nix) ] ++ [ (import ./cava.nix) ]
++ [ (import ./bat.nix) ] ++ [ (import ./fzf.nix) ]
++ [ (import ./git.nix) ] ++ [ (import ./password-store.nix) ]
++ [ (import ./autojump.nix) ] ++ [ (import ./firefox.nix) ]
++ [ (import ./nixvim) ];
}

View File

@@ -1,12 +1,13 @@
{lib, config, ...}: {
{ lib, config, ... }: {
options = {
movOpts.programConfigs.ezaConfig.enable = lib.mkEnableOption "enables my eza options";
movOpts.programConfigs.ezaConfig.enable =
lib.mkEnableOption "enables my eza options";
};
config = lib.mkIf config.movOpts.programConfigs.ezaConfig.enable {
programs.eza = {
enable = true;
enableZshIntegration = false;
extraOptions = ["-1" "-h" "--group-directories-first"];
extraOptions = [ "-1" "-h" "--group-directories-first" ];
icons = "auto";
git = true;
};

View File

@@ -1,6 +1,7 @@
{lib, config, nur, username, self, pkgs, ... }: {
{ lib, config, nur, username, self, pkgs, ... }: {
options = {
movOpts.programConfigs.firefoxConfig.enable = lib.mkEnableOption "enables my firefox configuration";
movOpts.programConfigs.firefoxConfig.enable =
lib.mkEnableOption "enables my firefox configuration";
};
config = lib.mkIf config.movOpts.programConfigs.firefoxConfig.enable {
programs.firefox = {
@@ -22,7 +23,8 @@
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
DisplayMenuBar =
"default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate" isDefault = true;
};
profiles.${username} = {

View File

@@ -1,6 +1,7 @@
{config, lib, ...}: {
{ config, lib, ... }: {
options = {
movOpts.programConfigs.fuzzelConfig.enable = lib.mkEnableOption "enables my fuzzel configuration";
movOpts.programConfigs.fuzzelConfig.enable =
lib.mkEnableOption "enables my fuzzel configuration";
};
config = lib.mkIf config.movOpts.programConfigs.fuzzelConfig.enable {
programs.fuzzel = {

View File

@@ -1,6 +1,7 @@
{lib, config, ...}: {
{ lib, config, ... }: {
options = {
movOpts.programConfigs.fzfConfig.enable = lib.mkEnableOption "enables my fzf options";
movOpts.programConfigs.fzfConfig.enable =
lib.mkEnableOption "enables my fzf options";
};
config = lib.mkIf config.movOpts.programConfigs.fzfConfig.enable {
programs.fzf = {

View File

@@ -1,6 +1,7 @@
{lib, config, username, ...}: {
{ lib, config, username, ... }: {
options = {
movOpts.programConfigs.gitConfig.enable = lib.mkEnableOption "enables my git configuration";
movOpts.programConfigs.gitConfig.enable =
lib.mkEnableOption "enables my git configuration";
};
config = lib.mkIf config.movOpts.programConfigs.gitConfig.enable {
programs.git = {

View File

@@ -1,6 +1,7 @@
{lib, config, pkgs, ... }: {
{ lib, config, pkgs, ... }: {
options = {
movOpts.programConfigs.kittyConfig.enable = lib.mkEnableOption "enables my kitty configuration";
movOpts.programConfigs.kittyConfig.enable =
lib.mkEnableOption "enables my kitty configuration";
};
config = lib.mkIf config.movOpts.programConfigs.kittyConfig.enable {
programs.kitty = {

View File

@@ -1,34 +1,37 @@
{...}: {
{ ... }: {
programs.nixvim = {
autoCmd = [
{
command = "FloatermNew --wintype=float --name=shadeterm --position=topright --autoclose=0 --silent --cwd=<buffer> --titleposition=left zsh";
event = ["VimEnter"];
pattern = ["*"];
command =
"FloatermNew --wintype=float --name=shadeterm --position=topright --autoclose=0 --silent --cwd=<buffer> --titleposition=left zsh";
event = [ "VimEnter" ];
pattern = [ "*" ];
desc = "Create a floating terminal, placed in the top right";
}
{
command = "silent! mkview";
event = ["BufWinLeave"];
pattern = ["*"];
desc = "Save session window settings to be loaded next time the file is opened";
event = [ "BufWinLeave" ];
pattern = [ "*" ];
desc =
"Save session window settings to be loaded next time the file is opened";
}
{
command = "silent! !aplay ~/sound/sys/cd.wav > /dev/null 2>&1 &";
event = ["BufWinLeave"];
pattern = ["*"];
event = [ "BufWinLeave" ];
pattern = [ "*" ];
desc = "Play a neat little sound effect when you close neovim";
}
{
command = "silent! loadview";
event = ["BufWinEnter"];
pattern = ["*"];
desc = "Load previous session window settings for the opened file (folds, cursor pos, etc)";
event = [ "BufWinEnter" ];
pattern = [ "*" ];
desc =
"Load previous session window settings for the opened file (folds, cursor pos, etc)";
}
{
command = "setlocal textwidth=135";
event = ["BufWinEnter" "BufEnter"];
pattern = ["*.md" "*.wiki" "*.txt"];
event = [ "BufWinEnter" "BufEnter" ];
pattern = [ "*.md" "*.wiki" "*.txt" ];
desc = "Set automatic linebreaks in plain text file formats";
}
];

View File

@@ -1,14 +1,3 @@
{
config,
pkgs,
host,
self,
...
}: {
imports = [
./plugins
./options.nix
./keymaps.nix
./autocmd.nix
];
{ env, config, pkgs, host, self, ... }: {
imports = [ ./plugins ./options.nix ./keymaps.nix ./autocmd.nix ];
}

View File

@@ -1,12 +1,7 @@
{
config,
...
}:
{ config, ... }:
let
scheme = config.lib.stylix.colors;
in
{
let scheme = config.lib.stylix.colors;
in {
programs.nixvim = {
colorschemes.base16 = {
enable = true;

View File

@@ -2,9 +2,7 @@
programs.nixvim = {
plugins.barbar = {
enable = false;
settings = {
auto_hide = 1;
};
settings = { auto_hide = 1; };
};
};
}

View File

@@ -2,11 +2,8 @@
programs.nixvim = {
plugins.cmp = {
autoEnableSources = true;
settings.sources = [
{name = "nvim_lsp";}
{name = "path";}
{name = "buffer";}
];
settings.sources =
[ { name = "nvim_lsp"; } { name = "path"; } { name = "buffer"; } ];
};
plugins.cmp-nvim-lsp.enable = true;
plugins.cmp-nvim-lsp-document-symbol.enable = true;

View File

@@ -2,9 +2,7 @@
programs.nixvim = {
plugins.coq-nvim = {
enable = true;
settings = {
auto_start = false;
};
settings = { auto_start = false; };
};
};
}

View File

@@ -1,4 +1,4 @@
{ host, self, pkgs, ... }:
{ host, self, pkgs, env, ... }:
{
imports = [

View File

@@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs.nixvim = {
extraPlugins = [
(pkgs.vimUtils.buildVimPlugin {

View File

@@ -3,9 +3,7 @@
enable = true;
notification = {
overrideVimNotify = true;
window = {
border = "rounded";
};
window = { border = "rounded"; };
};
};
}

View File

@@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs.nixvim = {
extraPlugins = [
(pkgs.vimUtils.buildVimPlugin {
@@ -11,8 +11,6 @@
};
})
];
plugins = {
haskell-scope-highlighting.enable = true;
};
plugins = { haskell-scope-highlighting.enable = true; };
};
}

View File

@@ -1,81 +1,81 @@
{
programs.nixvim = {
plugins = {
cmp-snippy.enable = true;
cmp = {
enable = true;
settings = {
mapping = {
__raw = ''
cmp.mapping.preset.insert({
['<C-o>'] = cmp.mapping.close_docs(),
['<C-i>'] = cmp.mapping.open_docs(),
['<C-j>'] = cmp.mapping.scroll_docs(-4),
['<C-k>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = function(fallback)
if cmp.visible() then
cmp.confirm()
else
fallback()
end
end, -- Added a comma here
['<Tab>'] = function(fallback)
if cmp.visible() then
cmp.select_next_item()
else
fallback()
end
end, -- Added a comma here
['<S-Tab>'] = function(fallback)
if cmp.visible() then
cmp.select_prev_item()
else
fallback()
end
end -- No comma needed for the last item
})
'';
};
window = {
completion.border = "rounded";
};
{
programs.nixvim = {
plugins = {
cmp-snippy.enable = true;
cmp = {
enable = true;
settings = {
mapping = {
__raw = ''
cmp.mapping.preset.insert({
['<C-o>'] = cmp.mapping.close_docs(),
['<C-i>'] = cmp.mapping.open_docs(),
['<C-j>'] = cmp.mapping.scroll_docs(-4),
['<C-k>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = function(fallback)
if cmp.visible() then
cmp.confirm()
else
fallback()
end
end, -- Added a comma here
['<Tab>'] = function(fallback)
if cmp.visible() then
cmp.select_next_item()
else
fallback()
end
end, -- Added a comma here
['<S-Tab>'] = function(fallback)
if cmp.visible() then
cmp.select_prev_item()
else
fallback()
end
end -- No comma needed for the last item
})
'';
};
window = { completion.border = "rounded"; };
};
lsp = {
enable = true;
servers = {
bashls.enable = true;
ccls.enable = true;
clangd.enable = true;
cmake.enable = true;
html.enable = true;
jsonls.enable = true;
lua_ls.enable = true;
marksman.enable = true;
nixd = {
enable = true;
settings = {
nixd = {
nixpkgs.expr = "import <nixpkgs> { }";
formatting.command = "nixfmt";
};
options = {
# uses Xenon config because it has every option exposed to it
nixos.expr = "(builtins.getFlake \"github:pagedMov/nixos-config\").nixosConfigurations.xenon.options";
home.expr = "(builtins.getFlake \"github:pagedMov/nixos-config\").homeConfigurations.xenonHome.options";
};
};
lsp = {
enable = true;
servers = {
bashls.enable = true;
ccls.enable = true;
clangd.enable = true;
cmake.enable = true;
html.enable = true;
jsonls.enable = true;
lua_ls.enable = true;
marksman.enable = true;
nixd = {
enable = true;
settings = {
nixd = {
nixpkgs.expr = "import <nixpkgs> { }";
formatting.command = "nixfmt";
};
options = {
# uses Xenon config because it has every option exposed to it
nixos.expr = ''
(builtins.getFlake "github:pagedMov/nixos-config").nixosConfigurations.xenon.options'';
home.expr = ''
(builtins.getFlake "github:pagedMov/nixos-config").homeConfigurations.xenonHome.options'';
};
};
pyright.enable = true;
sqls.enable = true;
hls = {
enable = true;
installGhc = true;
};
};
pyright.enable = true;
sqls.enable = true;
hls = {
enable = true;
installGhc = true;
};
};
};
};
}
};
}

View File

@@ -23,20 +23,20 @@
};
};
sections = {
lualine_a = ["mode"];
lualine_b = ["buffers"];
lualine_c = [];
lualine_x = ["searchcount" "fileformat" "filetype"];
lualine_y = ["branch" "diff" "diagnostics"];
lualine_z = ["location"];
lualine_a = [ "mode" ];
lualine_b = [ "buffers" ];
lualine_c = [ ];
lualine_x = [ "searchcount" "fileformat" "filetype" ];
lualine_y = [ "branch" "diff" "diagnostics" ];
lualine_z = [ "location" ];
};
inactive_sections = {
lualine_a = [];
lualine_b = [];
lualine_c = ["filename"];
lualine_x = ["location"];
lualine_y = [];
lualine_z = [];
lualine_a = [ ];
lualine_b = [ ];
lualine_c = [ "filename" ];
lualine_x = [ "location" ];
lualine_y = [ ];
lualine_z = [ ];
};
};
};

View File

@@ -2,7 +2,8 @@
programs.nixvim.plugins.neocord = {
enable = true;
settings = {
logo = "https://styles.redditmedia.com/t5_30kix/styles/communityIcon_n2hvyn96zwk81.png";
logo =
"https://styles.redditmedia.com/t5_30kix/styles/communityIcon_n2hvyn96zwk81.png";
logo_tooltip = "Neovim";
buttons = [
{

View File

@@ -2,9 +2,7 @@
programs.nixvim.plugins.nvim-lightbulb = {
enable = true;
settings = {
virtual_text = {
enable = true;
};
virtual_text = { enable = true; };
autocmd.enabled = true;
};
};

View File

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

View File

@@ -2,13 +2,7 @@
programs.nixvim = {
plugins.telescope = {
enable = true;
settings = {
pickers = {
find_files = {
hidden = true;
};
};
};
settings = { pickers = { find_files = { hidden = true; }; }; };
};
};
}

View File

@@ -10,9 +10,7 @@
};
matchParen = {
hiSurroundAlways = true;
offscreen = {
method = "popup";
};
offscreen = { method = "popup"; };
};
treesitterIntegration = {
enable = true;

View File

@@ -1,15 +1,14 @@
{lib, config, username, ...}: let
home = "/home/${username}";
{ lib, config, username, ... }:
let home = "/home/${username}";
in {
options = {
movOpts.programConfigs.passConfig.enable = lib.mkEnableOption "enables my pass config";
movOpts.programConfigs.passConfig.enable =
lib.mkEnableOption "enables my pass config";
};
config = lib.mkIf config.movOpts.programConfigs.passConfig.enable {
programs.password-store = {
enable = true;
settings = {
PASSWORD_STORE_DIR = "${home}/.password-store";
};
settings = { PASSWORD_STORE_DIR = "${home}/.password-store"; };
};
};
}

View File

@@ -1,6 +1,7 @@
{lib, config, ...}: {
{ lib, config, ... }: {
options = {
movOpts.programConfigs.yaziConfig.enable = lib.mkEnableOption "enables my yazi config";
movOpts.programConfigs.yaziConfig.enable =
lib.mkEnableOption "enables my yazi config";
};
config = lib.mkIf config.movOpts.programConfigs.yaziConfig.enable {
programs.yazi = {

View File

@@ -2,12 +2,7 @@
pkgs.writeShellApplication {
name = "icanhazip";
runtimeInputs = with pkgs; [
iproute2
curl
gawk
coreutils
];
runtimeInputs = with pkgs; [ iproute2 curl gawk coreutils ];
text = ''
if [ $# -eq 0 ]; then
echo "Public IP: $(curl -s icanhazip.com -4)"

View File

@@ -1,6 +1,4 @@
{
pkgs
}:
{ pkgs }:
pkgs.writeShellApplication {
name = "invoke";
text = ''

View File

@@ -1,12 +1,10 @@
{
pkgs,
}:
{ pkgs, }:
pkgs.writeShellApplication {
name = "runbg";
runtimeInputs = with pkgs; [
coreutils # Provides `basename`, `which`, etc.
bash # Provides the Bash shell
util-linux # Provides `tty`
coreutils # Provides `basename`, `which`, etc.
bash # Provides the Bash shell
util-linux # Provides `tty`
];
text = ''
#!/usr/bin/env bash

View File

@@ -1,13 +1,7 @@
{
pkgs
}:
{ pkgs }:
pkgs.writeShellApplication {
name = "splash";
runtimeInputs = with pkgs; [
lolcat
toilet
coreutils
];
runtimeInputs = with pkgs; [ lolcat toilet coreutils ];
text = ''
echo "NixOS kernel ver. $(uname -a | awk '{print $3}') x86_64 GNU/Linux"
date +"%A %B %-d %Y"

View File

@@ -1,4 +1,4 @@
{pkgs}:
{ pkgs }:
pkgs.writeShellApplication {
name = "toolbelt";
runtimeInputs = with pkgs; [

View File

@@ -1,12 +1,7 @@
{pkgs}:
{ pkgs }:
pkgs.writeShellApplication {
name = "viconf";
runtimeInputs = with pkgs; [
coreutils
fd
ripgrep
fzf
];
runtimeInputs = with pkgs; [ coreutils fd ripgrep fzf ];
text = ''
#!/usr/bin/env bash

View File

@@ -6,15 +6,9 @@ let
rev = "63dacb46bf939521bdc93981b4cbb7ecb58427a0";
hash = "sha256-vboIEwIQojofItm2xGCdZCzW96U85l9nDW3ifMuAIdM=";
};
in
pkgs.writeShellApplication {
in pkgs.writeShellApplication {
name = "vipkg";
runtimeInputs = with pkgs; [
coreutils
fd
ripgrep
fzf
];
runtimeInputs = with pkgs; [ coreutils fd ripgrep fzf ];
text = ''
[ ! $# -eq 1 ] && echo "Usage: vipkg <nixpkgs package name>" && exit 1

View File

@@ -1,40 +1,32 @@
{
host,
lib,
config,
self,
pkgs,
...
}: let
{ host, lib, config, self, pkgs, ... }:
let
fetchfromgh = import ./nix/fetchfromgh.nix { inherit pkgs; };
vipkg = import ./commands/vipkg.nix { inherit pkgs; };
keyring = import ./wm-controls/keyring.nix { inherit pkgs; };
invoke = import ./commands/invoke.nix { inherit pkgs; };
splash = import ./commands/splash.nix { inherit pkgs; };
runbg = import ./commands/runbg.nix { inherit pkgs; };
icanhazip = import ./commands/icanhazip.nix { inherit pkgs; };
keyring = import ./wm-controls/keyring.nix { inherit pkgs; };
invoke = import ./commands/invoke.nix { inherit pkgs; };
splash = import ./commands/splash.nix { inherit pkgs; };
runbg = import ./commands/runbg.nix { inherit pkgs; };
icanhazip = import ./commands/icanhazip.nix { inherit pkgs; };
garbage-collect = import ./nix/garbage-collect.nix { inherit pkgs; };
nsp = import ./nix/nsp.nix { inherit pkgs; };
scheck = import ./wm-controls/s_check.nix { inherit pkgs; };
switchmon = import ./wm-controls/switchmon.nix { inherit pkgs; };
rebuild = import ./nix/rebuild.nix { inherit host self pkgs; };
moveonscreen = import ./wm-controls/moveonscreen.nix { inherit pkgs; };
toolbelt = import ./commands/toolbelt.nix { inherit pkgs; };
viconf = import ./commands/viconf.nix { inherit pkgs; };
chscheme = import ./wm-controls/chscheme.nix { inherit pkgs; };
chpaper = import ./wm-controls/chpaper.nix { inherit pkgs; };
mkscreenshots = import ./wm-controls/mkscreenshots.nix { inherit pkgs; };
scriptOverride =
doc:
group:
name:
lib.mkEnableOption
"${doc}" // {
default = config.movOpts.movScripts.enable && config.movOpts.movScripts.${group}.enable;
nsp = import ./nix/nsp.nix { inherit pkgs; };
scheck = import ./wm-controls/s_check.nix { inherit pkgs; };
switchmon = import ./wm-controls/switchmon.nix { inherit pkgs; };
rebuild = import ./nix/rebuild.nix { inherit host self pkgs; };
moveonscreen = import ./wm-controls/moveonscreen.nix { inherit pkgs; };
toolbelt = import ./commands/toolbelt.nix { inherit pkgs; };
viconf = import ./commands/viconf.nix { inherit pkgs; };
chscheme = import ./wm-controls/chscheme.nix { inherit pkgs; };
chpaper = import ./wm-controls/chpaper.nix { inherit pkgs; };
mkscreenshots = import ./wm-controls/mkscreenshots.nix { inherit pkgs; };
scriptOverride = doc: group: name:
lib.mkEnableOption "${doc}" // {
default = config.movOpts.movScripts.enable
&& config.movOpts.movScripts.${group}.enable;
};
in {
options = {
movOpts.movScripts.enable = lib.mkEnableOption "Enables all pagedmov's scripts";
movOpts.movScripts.enable =
lib.mkEnableOption "Enables all pagedmov's scripts";
# Enable or disable by group
movOpts.movScripts.commandScripts.enable =
@@ -45,16 +37,20 @@ in {
lib.mkEnableOption "Enables all Nix shortcut scripts";
# Command Scripts
movOpts.movScripts.commandScripts.vipkg.enable =
scriptOverride "Search through the nixpkgs/pkgs directory for a package derivation. Useful for overrides." "commandScripts" "vipkg";
movOpts.movScripts.commandScripts.vipkg.enable = scriptOverride
"Search through the nixpkgs/pkgs directory for a package derivation. Useful for overrides."
"commandScripts" "vipkg";
movOpts.movScripts.commandScripts.icanhazip.enable =
scriptOverride "Enables the icanhazip command" "commandScripts" "icanhazip";
scriptOverride "Enables the icanhazip command" "commandScripts"
"icanhazip";
movOpts.movScripts.commandScripts.invoke.enable =
scriptOverride "Enables the invoke command" "commandScripts" "invoke";
movOpts.movScripts.commandScripts.runbg.enable =
scriptOverride "Enables the runbg command - written by FrostPhoenix" "commandScripts" "runbg";
scriptOverride "Enables the runbg command - written by FrostPhoenix"
"commandScripts" "runbg";
movOpts.movScripts.commandScripts.splash.enable =
scriptOverride "Enables the splash screen when opening a terminal" "commandScripts" "splash";
scriptOverride "Enables the splash screen when opening a terminal"
"commandScripts" "splash";
movOpts.movScripts.commandScripts.toolbelt.enable =
scriptOverride "Enables the toolbelt command" "commandScripts" "toolbelt";
movOpts.movScripts.commandScripts.viconf.enable =
@@ -66,52 +62,78 @@ in {
movOpts.movScripts.hyprlandControls.scheck.enable =
scriptOverride "Enables the scheck command" "hyprlandControls" "scheck";
movOpts.movScripts.hyprlandControls.chscheme.enable =
scriptOverride "Enables the chscheme command" "hyprlandControls" "chscheme";
scriptOverride "Enables the chscheme command" "hyprlandControls"
"chscheme";
movOpts.movScripts.hyprlandControls.keyring.enable =
scriptOverride "Enables the keyring command" "hyprlandControls" "keyring";
movOpts.movScripts.hyprlandControls.moveonscreen.enable =
scriptOverride "Ensures floating windows remain on screen" "hyprlandControls" "moveonscreen";
scriptOverride "Ensures floating windows remain on screen"
"hyprlandControls" "moveonscreen";
movOpts.movScripts.hyprlandControls.switchmon.enable =
scriptOverride "Moves cursor to the center of the second monitor" "hyprlandControls" "switchmon";
movOpts.movScripts.hyprlandControls.mkscreenshots.enable =
scriptOverride "Generates screenshots, and updates the README.md with the current rev hash" "hyprlandControls" "switchmon";
scriptOverride "Moves cursor to the center of the second monitor"
"hyprlandControls" "switchmon";
movOpts.movScripts.hyprlandControls.mkscreenshots.enable = scriptOverride
"Generates screenshots, and updates the README.md with the current rev hash"
"hyprlandControls" "switchmon";
# Nix Shortcuts
movOpts.movScripts.nixShortcuts.fetchfromgh.enable =
scriptOverride "Provides a full pkgs.fetchFromGitHub call from a repository url" "nixShortcuts" "fetchfromgh";
movOpts.movScripts.nixShortcuts.fetchfromgh.enable = scriptOverride
"Provides a full pkgs.fetchFromGitHub call from a repository url"
"nixShortcuts" "fetchfromgh";
movOpts.movScripts.nixShortcuts.garbage-collect.enable =
scriptOverride "Enables the garbage-collect script" "nixShortcuts" "garbage-collect";
scriptOverride "Enables the garbage-collect script" "nixShortcuts"
"garbage-collect";
movOpts.movScripts.nixShortcuts.nsp.enable =
scriptOverride "Enables nsp as an alias for 'nix-shell -p'" "nixShortcuts" "nsp";
movOpts.movScripts.nixShortcuts.rebuild.enable =
scriptOverride "Enables rebuild as an alias for 'sudo nixos-rebuild switch'" "nixShortcuts" "rebuild";
scriptOverride "Enables nsp as an alias for 'nix-shell -p'" "nixShortcuts"
"nsp";
movOpts.movScripts.nixShortcuts.rebuild.enable = scriptOverride
"Enables rebuild as an alias for 'sudo nixos-rebuild switch'"
"nixShortcuts" "rebuild";
};
config = lib.mkIf config.movOpts.movScripts.enable {
home.packages =
lib.optionals config.movOpts.movScripts.commandScripts.invoke.enable [ invoke ]
# Command Scripts Overrides
++ lib.optionals config.movOpts.movScripts.commandScripts.vipkg.enable [ vipkg ]
++ lib.optionals config.movOpts.movScripts.commandScripts.runbg.enable [ runbg ]
++ lib.optionals config.movOpts.movScripts.commandScripts.icanhazip.enable [ icanhazip ]
++ lib.optionals config.movOpts.movScripts.commandScripts.splash.enable [ splash ]
++ lib.optionals config.movOpts.movScripts.commandScripts.toolbelt.enable [ toolbelt ]
++ lib.optionals config.movOpts.movScripts.commandScripts.viconf.enable [ viconf ]
lib.optionals config.movOpts.movScripts.commandScripts.invoke.enable [
invoke
]
# Command Scripts Overrides
++ lib.optionals config.movOpts.movScripts.commandScripts.vipkg.enable
[ vipkg ]
++ lib.optionals config.movOpts.movScripts.commandScripts.runbg.enable
[ runbg ]
++ lib.optionals config.movOpts.movScripts.commandScripts.icanhazip.enable
[ icanhazip ]
++ lib.optionals config.movOpts.movScripts.commandScripts.splash.enable
[ splash ]
++ lib.optionals config.movOpts.movScripts.commandScripts.toolbelt.enable
[ toolbelt ]
++ lib.optionals config.movOpts.movScripts.commandScripts.viconf.enable [
viconf
]
# Hyprland Controls Overrides
++ lib.optionals config.movOpts.movScripts.hyprlandControls.chpaper.enable [ chpaper ]
++ lib.optionals config.movOpts.movScripts.hyprlandControls.scheck.enable [ scheck ]
++ lib.optionals config.movOpts.movScripts.hyprlandControls.chscheme.enable [ chscheme ]
++ lib.optionals config.movOpts.movScripts.hyprlandControls.keyring.enable [ keyring ]
++ lib.optionals config.movOpts.movScripts.hyprlandControls.moveonscreen.enable [ moveonscreen ]
++ lib.optionals config.movOpts.movScripts.hyprlandControls.switchmon.enable [ switchmon ]
++ lib.optionals config.movOpts.movScripts.hyprlandControls.mkscreenshots.enable [ mkscreenshots ]
# Hyprland Controls Overrides
++ lib.optionals config.movOpts.movScripts.hyprlandControls.chpaper.enable
[ chpaper ]
++ lib.optionals config.movOpts.movScripts.hyprlandControls.scheck.enable
[ scheck ] ++ lib.optionals
config.movOpts.movScripts.hyprlandControls.chscheme.enable [ chscheme ]
++ lib.optionals config.movOpts.movScripts.hyprlandControls.keyring.enable
[ keyring ] ++ lib.optionals
config.movOpts.movScripts.hyprlandControls.moveonscreen.enable
[ moveonscreen ] ++ lib.optionals
config.movOpts.movScripts.hyprlandControls.switchmon.enable [ switchmon ]
++ lib.optionals
config.movOpts.movScripts.hyprlandControls.mkscreenshots.enable [
mkscreenshots
]
# Nix Shortcuts Overrides
++ lib.optionals config.movOpts.movScripts.nixShortcuts.fetchfromgh.enable [ fetchfromgh ]
++ lib.optionals config.movOpts.movScripts.nixShortcuts.garbage-collect.enable [ garbage-collect ]
++ lib.optionals config.movOpts.movScripts.nixShortcuts.nsp.enable [ nsp ]
++ lib.optionals config.movOpts.movScripts.nixShortcuts.rebuild.enable [ rebuild ];
# Nix Shortcuts Overrides
++ lib.optionals config.movOpts.movScripts.nixShortcuts.fetchfromgh.enable
[ fetchfromgh ] ++ lib.optionals
config.movOpts.movScripts.nixShortcuts.garbage-collect.enable
[ garbage-collect ]
++ lib.optionals config.movOpts.movScripts.nixShortcuts.nsp.enable [ nsp ]
++ lib.optionals config.movOpts.movScripts.nixShortcuts.rebuild.enable
[ rebuild ];
};
}

View File

@@ -2,37 +2,35 @@
pkgs.writeShellApplication {
name = "fetchfromgh";
runtimeInputs = [
pkgs.nix-prefetch-scripts
];
runtimeInputs = [ pkgs.nix-prefetch-scripts ];
text = ''
if [ $# -ne 1 ] || ! echo "$1" | grep -qE "[A-Za-z0-9_-]+/[A-Za-z0-9_-]+"; then
echo "Usage: fetchfromgh someuser/somerepo"
echo " - i.e. fetchfromgh pagedMov/nixos-config"
if [ $# -ne 1 ] || ! echo "$1" | grep -qE "[A-Za-z0-9_-]+/[A-Za-z0-9_-]+"; then
echo "Usage: fetchfromgh someuser/somerepo"
echo " - i.e. fetchfromgh pagedMov/nixos-config"
exit 1
fi
if ! curl -s -o /dev/null -w "%{http_code}" "https://github.com/$1" | grep -q "200"; then
echo "Couldn't find that repository, curl returned 404."
exit 1
fi
if ! curl -s -o /dev/null -w "%{http_code}" "https://github.com/$1" | grep -q "200"; then
echo "Couldn't find that repository, curl returned 404."
exit 1
fi
json=$(nix-prefetch-git --quiet "https://github.com/$1")
json=$(nix-prefetch-git --quiet "https://github.com/$1")
url=$(echo "$json" | jq '.url' | tr -d '"')
owner=$(echo "$url" | awk -F'/' '{print $(NF-1)}')
repo=$(echo "$url" | awk -F'/' '{print $NF}')
rev=$(echo "$json" | jq '.rev' | tr -d '"')
hash=$(echo "$json" | jq '.hash' | tr -d '"')
url=$(echo "$json" | jq '.url' | tr -d '"')
owner=$(echo "$url" | awk -F'/' '{print $(NF-1)}')
repo=$(echo "$url" | awk -F'/' '{print $NF}')
rev=$(echo "$json" | jq '.rev' | tr -d '"')
hash=$(echo "$json" | jq '.hash' | tr -d '"')
output="\
src = pkgs.fetchFromGitHub {
owner = \"$owner\";
repo = \"$repo\";
rev = \"$rev\";
hash = \"$hash\";
};
"
echo "$output"
output="\
src = pkgs.fetchFromGitHub {
owner = \"$owner\";
repo = \"$repo\";
rev = \"$rev\";
hash = \"$hash\";
};
"
echo "$output"
'';
}

View File

@@ -1,6 +1,4 @@
{
pkgs
}:
{ pkgs }:
pkgs.writeShellApplication {
name = "garbage-collect";
runtimeInputs = with pkgs; [

View File

@@ -1,6 +1,4 @@
{
pkgs
}:
{ pkgs }:
pkgs.writeShellApplication {
name = "nsp";
text = ''

View File

@@ -1,8 +1,4 @@
{
host,
self,
pkgs,
}:
{ host, self, pkgs, }:
pkgs.writeShellApplication {
name = "rebuild";
text = ''

View File

@@ -1,13 +1,7 @@
{pkgs}:
{ pkgs }:
pkgs.writeShellApplication {
name = "chpaper";
runtimeInputs = with pkgs; [
chafa
fzf
ripgrep
findutils
coreutils
];
runtimeInputs = with pkgs; [ chafa fzf ripgrep findutils coreutils ];
text = ''
paper="$\{self}/assets/wallpapers/$(find "$FLAKEPATH"/assets/wallpapers -exec basename {} \; | rg "\.\w+$" | fzf --preview "chafa -s 30x40 $FLAKEPATH/assets/wallpapers/{}")"
[ "$paper" = "$\{self}/assets/wallpapers/" ] && echo "Cancelling wallpaper change" && exit 1

View File

@@ -1,10 +1,7 @@
{ pkgs }:
pkgs.writeShellApplication {
name = "chscheme";
runtimeInputs = with pkgs; [
fzf
coreutils
];
runtimeInputs = with pkgs; [ fzf coreutils ];
text = ''
selected_scheme=$(/usr/bin/env ls "$(nix-build '<nixpkgs>' -A base16-schemes)"/share/themes | \
sed 's/\.yaml//g' | \

View File

@@ -1,6 +1,4 @@
{
pkgs
}:
{ pkgs }:
pkgs.writeShellApplication {
name = "keyring";
runtimeInputs = with pkgs; [

View File

@@ -2,15 +2,7 @@
pkgs.writeShellApplication {
name = "mkscreenshots";
runtimeInputs = with pkgs; [
jq
neofetch
kitty
coreutils
nemo
grimblast
git
];
runtimeInputs = with pkgs; [ jq neofetch kitty coreutils nemo grimblast git ];
text = ''
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."

View File

@@ -1,12 +1,7 @@
{pkgs}:
{ pkgs }:
pkgs.writeShellApplication {
name = "moveonscreen";
runtimeInputs = with pkgs; [
hyprland
jq
coreutils
gawk
];
runtimeInputs = with pkgs; [ hyprland jq coreutils gawk ];
text = ''
center_window=false
if [[ ! $# -eq 0 ]] && [[ $1 == "--center" ]]; then

View File

@@ -1,6 +1,4 @@
{
pkgs,
}:
{ pkgs, }:
pkgs.writeShellApplication {
name = "scheck";
text = ''

View File

@@ -1,6 +1,4 @@
{
pkgs,
}:
{ pkgs, }:
pkgs.writeShellApplication {
name = "switchmon";
text = ''

View File

@@ -1,13 +1,4 @@
{
inputs,
nixpkgs,
config,
self,
username,
host,
lib,
...
}: {
{ inputs, nixpkgs, config, self, username, host, lib, ... }: {
imports = [
./environment/starship.nix
./environment/userpkgs.nix