Gen 402: created system config for my laptop

This commit is contained in:
pagedMov
2024-10-12 02:34:23 -04:00
parent 4cdda63bcd
commit 5eb832fcf7
92 changed files with 4609 additions and 130 deletions

144
flake.lock generated
View File

@@ -1,26 +1,5 @@
{
"nodes": {
"agenix": {
"inputs": {
"darwin": "darwin",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"systems": "systems"
},
"locked": {
"lastModified": 1723293904,
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
"owner": "ryantm",
"repo": "agenix",
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
"type": "github"
},
"original": {
"owner": "ryantm",
"repo": "agenix",
"type": "github"
}
},
"aquamarine": {
"inputs": {
"hyprutils": [
@@ -118,28 +97,6 @@
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1700795494,
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"devshell": {
"inputs": {
"nixpkgs": [
@@ -266,7 +223,7 @@
},
"flake-utils": {
"inputs": {
"systems": "systems_4"
"systems": "systems_3"
},
"locked": {
"lastModified": 1726560853,
@@ -383,27 +340,6 @@
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1703113217,
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
@@ -423,7 +359,7 @@
"type": "github"
}
},
"home-manager_3": {
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nvim",
@@ -447,7 +383,7 @@
},
"hypr-contrib": {
"inputs": {
"nixpkgs": "nixpkgs_2"
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1725551787,
@@ -500,9 +436,9 @@
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_2",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
@@ -579,8 +515,8 @@
"inputs": {
"hyprutils": "hyprutils_2",
"hyprwayland-scanner": "hyprwayland-scanner_2",
"nixpkgs": "nixpkgs_4",
"systems": "systems_3"
"nixpkgs": "nixpkgs_3",
"systems": "systems_2"
},
"locked": {
"lastModified": 1727732210,
@@ -720,11 +656,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1703013332,
"narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=",
"lastModified": 1712163089,
"narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6",
"rev": "fd281bd6b7d3e32ddfa399853946f782553163b5",
"type": "github"
},
"original": {
@@ -779,22 +715,6 @@
}
},
"nixpkgs_2": {
"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_3": {
"locked": {
"lastModified": 1728018373,
"narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=",
@@ -810,7 +730,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_3": {
"locked": {
"lastModified": 1727122398,
"narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=",
@@ -826,7 +746,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_4": {
"locked": {
"lastModified": 1728492678,
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
@@ -842,7 +762,7 @@
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_5": {
"locked": {
"lastModified": 1727348695,
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
@@ -858,7 +778,7 @@
"type": "github"
}
},
"nixpkgs_7": {
"nixpkgs_6": {
"locked": {
"lastModified": 1726937504,
"narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=",
@@ -880,7 +800,7 @@
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts_2",
"git-hooks": "git-hooks",
"home-manager": "home-manager_3",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": [
"nvim",
@@ -929,7 +849,7 @@
"nvim": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_6",
"nixpkgs": "nixpkgs_5",
"nixvim": "nixvim",
"pre-commit-hooks": "pre-commit-hooks_2"
},
@@ -994,16 +914,15 @@
},
"root": {
"inputs": {
"agenix": "agenix",
"catppuccin-bat": "catppuccin-bat",
"catppuccin-cava": "catppuccin-cava",
"catppuccin-starship": "catppuccin-starship",
"catppuccin-yazi": "catppuccin-yazi",
"home-manager": "home-manager_2",
"home-manager": "home-manager",
"hypr-contrib": "hypr-contrib",
"hyprland": "hyprland",
"hyprpicker": "hyprpicker",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_4",
"nvim": "nvim",
"spicetify-nix": "spicetify-nix",
"toilet": "toilet"
@@ -1032,16 +951,16 @@
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"repo": "default-linux",
"type": "github"
}
},
@@ -1061,21 +980,6 @@
}
},
"systems_3": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -1092,7 +996,7 @@
},
"toilet": {
"inputs": {
"nixpkgs": "nixpkgs_7"
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1728587838,

View File

@@ -38,31 +38,34 @@
inputs.nixpkgs.follows = "nixpkgs";
};
agenix.url = "github:ryantm/agenix";
#glasshouse-desktop dots
nvim.url = "path:/home/pagedmov/sysflakes/glasshouse-desktop/home/nixvim";
toilet.url = "path:/home/pagedmov/sysflakes/glasshouse-desktop/home/toilet";
};
outputs = { nixpkgs, home-manager, self, agenix, nvim, toilet, ... }@inputs:
outputs = { nixpkgs, home-manager, self, nvim, toilet, ... }@inputs:
let
system = "x86_64-linux";
username = "pagedmov";
allowed-unfree-packages = [
"foundryvtt"
];
in
{
nixosConfigurations = {
glasshouse = nixpkgs.lib.nixosSystem {
glasshouse-desktop = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit self inputs allowed-unfree-packages username;
inherit self inputs username;
};
inherit system;
modules = [
./glasshouse-desktop/sys
agenix.nixosModules.default
];
};
glasshouse-laptop = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit self inputs username;
};
modules = [
./glasshouse-laptop/sys
];
};
};

View File

@@ -134,11 +134,13 @@
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"super, print, exec, grimblast copy area"
"super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
"super, q, exec, kitty --title Kitty"
"super, d, exec, switchmon"
"super, c, killactive,"
"super, e, exec, [float;size 45% 70%;move 10 50] kitty btop"
"super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol"
"super shift, q, exit,"
"super, m, exec, fuzzel"
"super, r, exec, neovide"

View File

@@ -4,7 +4,7 @@ scheck && runbg aplay ~/media/sound/sys/nixswitch-start.wav
builtin cd "$HOME/sysflakes" || exit
nix flake update
sudo nixos-rebuild switch --flake "$HOME/sysflakes#glasshouse"
sudo nixos-rebuild switch --flake "$HOME/sysflakes#glasshouse-desktop"
if [ $? -eq 0 ]; then
scheck && runbg aplay ~/media/sound/sys/update.wav
else

View File

@@ -0,0 +1,11 @@
{ inputs, ... }:
{
programs.bat = {
enable = true;
config = {
pager = "less -FR";
theme = "Dracula";
};
};
}

View File

@@ -0,0 +1,21 @@
{ pkgs, ... }:
{
programs.btop = {
enable = true;
settings = {
color_theme = "tokyo-night";
theme_background = false;
update_ms = 500;
vim_keys = true;
proc_tree = true;
temp_scale = "fahrenheit";
disks_filter = "exclude=/boot";
show_swap = false;
swap_disk = false;
};
};
home.packages = (with pkgs; [ nvtopPackages.intel ]);
}

View File

@@ -0,0 +1,12 @@
{ inputs, pkgs, ... }:
{
programs.cava = {
enable = true;
};
# https://github.com/catppuccin/cava
home.file.".config/cava/config".text = ''
# custom cava config
'' + builtins.readFile "${inputs.catppuccin-cava}/themes/mocha.cava";
}

View File

@@ -0,0 +1,21 @@
{ inputs, username, system, ... }:
{
imports =
[ (import ./btop.nix) ]
++ [ (import ./bat.nix) ]
++ [ (import ./cava.nix) ]
++ [ (import ./fuzzel.nix) ]
++ [ (import ./gtk.nix) ]
++ [ (import ./hyprland) ]
++ [ (import ./kitty.nix) ]
++ [ (import ./spicetify.nix) ]
++ [ (import ./starship.nix) ]
++ [ (import ./scripts) ]
++ [ (import ./yazi.nix) ]
++ [ (import ./swaync/swaync.nix)]
++ [ (import ./userpkgs.nix) ]
++ [ (import ./waybar) ]
++ [ (import ./eza.nix) ]
++ [ (import ./zshell.nix) ];
}

View File

@@ -0,0 +1,11 @@
{ ... }:
{
programs.eza = {
enable = true;
enableZshIntegration = false;
extraOptions = [ "-1" "-h" "--group-directories-first" ];
icons = true;
git = true;
};
}

View File

@@ -0,0 +1,35 @@
{ ... }:
{
programs.fuzzel = {
enable = true;
settings = {
main = {
font = "JetBrainsMono Nerd Font:weight=bold:size=14";
line-height = 25;
fields = "name,generic,comment,categories,filename,keywords";
terminal = "kitty";
prompt = "' '" ;
icon-theme = "Papirus-Dark";
layer = "top";
lines = 10;
width = 35;
horizontal-pad = 25;
inner-pad = 5;
};
colors = {
background = "1e1e2ecc";
text = "cdd6f4ff";
match = "f38ba8ff";
selection = "b4befeaa";
selection-match = "f38ba8ff";
selection-text = "cdd6f4ff";
border = "b4befeff";
};
border = {
radius = 15;
width = 3;
};
};
};
}

View File

@@ -0,0 +1,30 @@
{ pkgs, config, ... }:
{
fonts.fontconfig.enable = true;
home.packages = [
pkgs.nerdfonts
(pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" "Noto" ]; })
pkgs.twemoji-color-font
pkgs.noto-fonts-emoji
];
gtk = {
enable = true;
font = {
name = "JetBrainsMono Nerd Font";
size = 11;
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders.override {
flavor = "mocha";
accent = "lavender";
};
};
theme = {
name = "Dracula";
package = pkgs.dracula-theme;
};
};
}

View File

@@ -0,0 +1,196 @@
{ username, ... }:
{
wayland.windowManager.hyprland = {
settings = {
monitor = [
"DP-1, 1920x1080@144, 1920x0, 1"
"HDMI-A-1, 1920x1080, 0x0, 1"
];
exec-once = [
"waybar &"
"swaync &"
"wl-paste --watch cliphist store &"
"wl-clip-persist --clipboard both"
"systemctl --user import-environment &"
"hash dbus-update-activation-environment 2>/dev/null &"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"aplay /home/${username}/sound/sys/login.wav &"
];
workspace = [
"1,persistent=true,monitor:HDMI-A-1"
"2,persistent=true,monitor:HDMI-A-1"
"3,persistent=true,monitor:HDMI-A-1"
"4,persistent=true,monitor:DP-1"
"5,persistent=true,monitor:DP-1"
"6,persistent=true,monitor:DP-1"
];
input = {
kb_layout = "us";
follow_mouse = 1;
accel_profile = "flat";
force_no_accel = 1;
sensitivity = 0;
};
general = {
"$mainMod" = "super";
layout = "dwindle";
gaps_in = 4;
gaps_out = 8;
border_size = 2;
"col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
"col.inactive_border" = "0x00000000";
border_part_of_window = false;
no_border_on_floating = false;
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
};
dwindle = {
no_gaps_when_only = false;
force_split = 0;
special_scale_factor = 1.0;
split_width_multiplier = 1.0;
use_active_for_splits = true;
pseudotile = "yes";
preserve_split = "yes";
};
master = {
new_status = "master";
special_scale_factor = 1;
no_gaps_when_only = false;
};
decoration = {
rounding = 7;
# active_opacity = 0.90;
# inactive_opacity = 0.90;
# fullscreen_opacity = 1.0;
blur = {
enabled = true;
size = 1;
passes = 1;
# size = 4;
# passes = 2;
brightness = 1;
contrast = 1.400;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
};
drop_shadow = true;
shadow_ignore_window = true;
shadow_offset = "0 2";
shadow_range = 20;
shadow_render_power = 3;
"col.shadow" = "rgba(00000055)";
};
animations = {
enabled = true;
bezier = [
"fluent_decel, 0, 0.2, 0.4, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutCubic, 0.33, 1, 0.68, 1"
"easeinoutsine, 0.37, 0, 0.63, 1"
];
animation = [
# Windows
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
# Fade
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
];
bind = [
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"super, print, exec, grimblast copy area"
"super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
"super, q, exec, kitty --title Kitty"
"super, d, exec, switchmon"
"super, c, killactive,"
"super, e, exec, [float;size 45% 70%;move 10 50] kitty btop"
"super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol"
"super shift, q, exit,"
"super, m, exec, fuzzel"
"super, r, exec, neovide"
"super, p, pseudo, # dwindle"
"super, b, togglesplit, # dwindle"
"super, f, togglefloating"
"super, g, fullscreen"
"super, home, exec, /home/${username}/scripts/home.sh"
"super, h, movefocus, l"
"super, l, movefocus, r"
"super, k, movefocus, u"
"super, j, movefocus, d"
"super, 1, exec, hyprctl 'dispatch workspace 1'"
"super, 2, exec, hyprctl 'dispatch workspace 2'"
"super, 3, exec, hyprctl 'dispatch workspace 3'"
"super, 4, exec, hyprctl 'dispatch workspace 4'"
"super, 5, exec, hyprctl 'dispatch workspace 5'"
"super, 6, exec, hyprctl 'dispatch workspace 6'"
"super, 7, exec, hyprctl 'dispatch workspace 7'"
"super, 8, exec, hyprctl 'dispatch workspace 8'"
"super, 9, exec, hyprctl 'dispatch workspace 9'"
"super, 0, exec, hyprctl 'dispatch workspace 10'"
"super alt, g, togglegroup"
"super alt, h, changegroupactive, b"
"super alt, l, changegroupactive, f"
"super shift, h, movewindoworgroup, l"
"super shift, l, movewindoworgroup, r"
"super shift, k, movewindoworgroup, u"
"super shift, j, movewindoworgroup, d"
"super shift, 1, movetoworkspace, 1"
"super shift, 2, movetoworkspace, 2"
"super shift, 3, movetoworkspace, 3"
"super shift, 4, movetoworkspace, 4"
"super shift, 5, movetoworkspace, 5"
"super shift, 6, movetoworkspace, 6"
"super shift, 7, movetoworkspace, 7"
"super shift, 8, movetoworkspace, 8"
"super shift, 9, movetoworkspace, 9"
"super shift, 0, movetoworkspace, 10"
"super, s, togglespecialworkspace, magic"
"super shift, s, movetoworkspace, special:magic"
"alt, grave, togglespecialworkspace, console"
"super, mouse_down, workspace, e+1"
"super, mouse_up, workspace, e-1"
];
bindm = [
"super, mouse:272, movewindow"
"super, mouse:273, resizewindow"
];
};
};
};
}

View File

@@ -0,0 +1,8 @@
{ inputs, ... }:
{
imports =
[ (import ./hyprland.nix) ]
++ [ (import ./config.nix) ]
++ [ (import ./hyprpaper.nix) ];
}

View File

@@ -0,0 +1,24 @@
{ inputs, pkgs, ... }:
{
home.packages = with pkgs; [
swaybg
inputs.hypr-contrib.packages.${pkgs.system}.grimblast
hyprpicker
grim
slurp
wl-clip-persist
wf-recorder
glib
wayland
direnv
];
systemd.user.targets.hyprland-session.Unit.Wants = [ "xdg-desktop-autostart.target" ];
wayland.windowManager.hyprland = {
enable = true;
xwayland = {
enable = true;
};
systemd.enable = true;
};
}

View File

@@ -0,0 +1,18 @@
{ username, ... }:
{
services.hyprpaper = {
enable = true;
settings = {
ipc = "on";
splash = false;
splash_offset = 2.0;
preload = [ "/home/${username}/Pictures/Wallpapers/cat-leaves.png" ];
wallpaper = [
"DP-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png"
"HDMI-A-1,/home/${username}/Pictures/Wallpapers/cat-leaves.png"
];
};
};
}

View File

@@ -0,0 +1,47 @@
{ pkgs, ... }:
{
programs.kitty = {
enable = true;
themeFile = "Catppuccin-Mocha";
font = {
name = "JetBrainsMono Nerd Font";
size = 13;
};
settings = {
confirm_os_window_close = 0;
background_opacity = "0.60";
window_padding_width = 10;
scrollback_lines = 10000;
enable_audio_bell = false;
allow_remote_control = true;
mouse_hide_wait = 60;
## Tabs
tab_title_template = "{index}";
active_tab_font_style = "normal";
inactive_tab_font_style = "normal";
tab_bar_style = "powerline";
tab_powerline_style = "round";
active_tab_foreground = "#1e1e2e";
active_tab_background = "#cba6f7";
inactive_tab_foreground = "#bac2de";
inactive_tab_background = "#313244";
};
keybindings = {
## Tabs
"alt+1" = "goto_tab 1";
"alt+2" = "goto_tab 2";
"alt+3" = "goto_tab 3";
"alt+4" = "goto_tab 4";
## Unbind
"ctrl+shift+left" = "no_op";
"ctrl+shift+right" = "no_op";
};
};
}

View File

@@ -0,0 +1,24 @@
{
autoCmd = [
{
command = "FloatermNew --wintype=float --name=shadeterm --position=topright --autoclose=0 --silent --cwd=<buffer> --titleposition=left zsh";
event = [ "VimEnter" ];
pattern = [ "*" ];
}
{
command = "silent! mkview";
event = [ "BufWinLeave" ];
pattern = [ "*" ];
}
{
command = "silent! !aplay ~/sound/sys/cd.wav > /dev/null 2>&1 &";
event = [ "BufWinLeave" ];
pattern = [ "*" ];
}
{
command = "silent! loadview";
event = [ "BufWinEnter" ];
pattern = [ "*" ];
}
];
}

View File

@@ -0,0 +1,18 @@
{
imports = [
./plugins/alpha.nix
./plugins/coq.nix
./plugins/barbar.nix
./plugins/cmp.nix
./plugins/lsp.nix
./plugins/lualine.nix
./plugins/plugins.nix
./plugins/nvim-tree.nix
./plugins/telescope.nix
./plugins/extra_plugins.nix
./options.nix
./keymaps.nix
./autocmd.nix
];
}

View File

@@ -0,0 +1,29 @@
{
keymaps = [
{
action = "<C-W>W";
key = "<S-Tab>";
mode = "n";
}
{
action = "<C-w>w";
key = "<Tab>";
mode = "n";
}
{
action = "<cmd>FloatermToggle shadeterm<CR>";
key = "<F2>";
mode = "n";
}
{
action = "<cmd>NvimTreeToggle<CR>";
key = "<F3>";
mode = "n";
}
{
action = "<cmd>FloatermToggle shadeterm<CR>";
key = "<F2>";
mode = "t";
}
];
}

View File

@@ -0,0 +1,41 @@
{
colorschemes = {
catppuccin = {
enable = true;
settings.flavour = "mocha";
};
kanagawa = {
enable = false;
};
};
diagnostics.signs = false;
extraConfigLua = ''
if vim.g.started_by_firenvim == true then
vim.o.laststatus = 0
end
if vim.g.neovide then
vim.g.neovide_refresh_rate = 144
vim.g.neovide_cursor_vfx_mode = "sonicboom"
vim.g.neovide_cursor_animate_in_insert_mode = false
end
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.hlsearch = true
vim.opt.incsearch = true
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
vim.opt.termguicolors = true
vim.opt.ruler = true
vim.opt.scrolloff = 6
vim.opt.undofile = true
vim.opt.foldmethod = "manual"
vim.opt.wrap = true
vim.opt.linebreak = true
vim.opt.textwidth = 135
vim.opt.breakat = " \t!@*-+;:,./?"
vim.g.mapleader = "!"
'';
}

View File

@@ -0,0 +1,6 @@
{
plugins.alpha = {
enable = true;
theme = "dashboard";
};
}

View File

@@ -0,0 +1,8 @@
{
plugins.barbar = {
enable = true;
settings = {
auto_hide = 1;
};
};
}

View File

@@ -0,0 +1,10 @@
{
plugins.cmp = {
autoEnableSources = true;
settings.sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
{ name = "buffer"; }
];
};
}

View File

@@ -0,0 +1,8 @@
{
plugins.coq-nvim = {
enable = true;
settings = {
auto_start = true;
};
};
}

View File

@@ -0,0 +1,51 @@
{ pkgs, ... }:
{
extraPlugins = [
(pkgs.vimUtils.buildVimPlugin { # vimwiki
name = "vimwiki";
src = pkgs.fetchFromGitHub {
owner = "vimwiki";
repo = "vimwiki";
rev = "705ad1e0dded0e3b7ff5fac78547ab67c9d39bdf";
hash = "sha256-Upx29rIPwW/e7Lkmf0PNOpIACnAXIzlkfa6V1p2nYHM=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "vim-markdown";
src = pkgs.fetchFromGitHub {
owner = "preservim";
repo = "vim-markdown";
rev = "8f6cb3a6ca4e3b6bcda0730145a0b700f3481b51";
hash = "sha256-ZCCSjZ5Xok4rnIwfa4VUEaz6d3oW9066l0EkoqiTppM=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "vim-sneak";
src = pkgs.fetchFromGitHub {
owner = "justinmk";
repo = "vim-sneak";
rev = "c13d0497139b8796ff9c44ddb9bc0dc9770ad2dd";
hash = "sha256-ndWhnV0fgCcqCGwVyM07GfmUB3CitBZbOWvZtsB1tBk=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "vim-slash";
src = pkgs.fetchFromGitHub {
owner = "junegunn";
repo = "vim-slash";
rev = "31aee09b7ea8893a18fa34f65e63e364fc998444";
hash = "sha256-hC590lmKBssLCSKPF9O2cnt6TCJkklzbbhDNhf1ozUU=";
};
})
(pkgs.vimUtils.buildVimPlugin {
name = "automkdir.nvim";
src = pkgs.fetchFromGitHub {
owner = "mateuszwieloch";
repo = "automkdir.nvim";
rev = "beeb2dd76f1c3ac776d901c43217a774f1f045de";
hash = "sha256-lKSCZ80b/+OV56858FDK7x/zhcuU/AWuCDe+8NdhziU=";
};
})
];
}

View File

@@ -0,0 +1,17 @@
{
plugins.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;
nil-ls.enable = true;
pyright.enable = true;
sqls.enable = true;
};
};
}

View File

@@ -0,0 +1,36 @@
{
plugins.lualine = {
enable = true;
settings = {
options = {
icons_enabled = true;
theme = "auto";
component_separators = {left = ""; right = "";};
section_separators = {left = ""; right = "";};
always_divide_middle = true;
globalstatus = false;
refresh = {
statusline = 1000;
tabline = 1000;
winbar = 1000;
};
};
sections = {
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 = [];
};
};
};
}

View File

@@ -0,0 +1,84 @@
{
plugins.nvim-tree = {
enable = true;
hijackUnnamedBufferWhenOpening = false;
openOnSetup = false;
onAttach = { __raw = ''
function(bufnr)
local api = require('nvim-tree.api')
local function opts(desc)
return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end
-- BEGIN_DEFAULT_ON_ATTACH
vim.keymap.set('n', '<C-]>', api.tree.change_root_to_node, opts('CD'))
vim.keymap.set('n', '<C-e>', api.node.open.replace_tree_buffer, opts('Open: In Place'))
vim.keymap.set('n', '<C-k>', api.node.show_info_popup, opts('Info'))
vim.keymap.set('n', '<C-r>', api.fs.rename_sub, opts('Rename: Omit Filename'))
vim.keymap.set('n', '<C-t>', api.node.open.tab, opts('Open: New Tab'))
vim.keymap.set('n', '<C-v>', api.node.open.vertical, opts('Open: Vertical Split'))
vim.keymap.set('n', '<C-x>', api.node.open.horizontal, opts('Open: Horizontal Split'))
vim.keymap.set('n', '<BS>', api.node.navigate.parent_close, opts('Close Directory'))
vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'b', api.node.open.preview, opts('Open Preview'))
vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling'))
vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling'))
vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command'))
vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up'))
vim.keymap.set('n', 'a', api.fs.create, opts('Create File Or Directory'))
vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked'))
vim.keymap.set('n', 'bt', api.marks.bulk.trash, opts('Trash Bookmarked'))
vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked'))
vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle Filter: No Buffer'))
vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy'))
vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Filter: Git Clean'))
vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git'))
vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git'))
vim.keymap.set('n', 'd', api.fs.remove, opts('Delete'))
vim.keymap.set('n', 'D', api.fs.trash, opts('Trash'))
vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All'))
vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename'))
vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic'))
vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic'))
vim.keymap.set('n', 'F', api.live_filter.clear, opts('Live Filter: Clear'))
vim.keymap.set('n', 'f', api.live_filter.start, opts('Live Filter: Start'))
vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help'))
vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path'))
vim.keymap.set('n', 'ge', api.fs.copy.basename, opts('Copy Basename'))
vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Filter: Dotfiles'))
vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Filter: Git Ignore'))
vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling'))
vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling'))
vim.keymap.set('n', 'L', api.node.open.toggle_group_empty, opts('Toggle Group Empty'))
vim.keymap.set('n', 'M', api.tree.toggle_no_bookmark_filter, opts('Toggle Filter: No Bookmark'))
vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark'))
vim.keymap.set('n', 'o', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker'))
vim.keymap.set('n', 'p', api.fs.paste, opts('Paste'))
vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory'))
vim.keymap.set('n', 'q', api.tree.close, opts('Close'))
vim.keymap.set('n', 'r', api.fs.rename, opts('Rename'))
vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh'))
vim.keymap.set('n', 's', api.node.run.system, opts('Run System'))
vim.keymap.set('n', 'S', api.tree.search_node, opts('Search'))
vim.keymap.set('n', 'u', api.fs.rename_full, opts('Rename: Full Path'))
vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Filter: Hidden'))
vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse'))
vim.keymap.set('n', 'x', api.fs.cut, opts('Cut'))
vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name'))
vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path'))
vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD'))
-- END_DEFAULT_ON_ATTACH
end
''; };
view = {
side = "right";
centralizeSelection = true;
number = true;
relativenumber = true;
width = 40;
};
};
}

View File

@@ -0,0 +1,22 @@
{
plugins = {
nvim-surround.enable = true;
indent-blankline.enable = true;
treesitter.enable = true;
lastplace.enable = true;
markdown-preview.enable = true;
gitsigns.enable = true;
web-devicons.enable = true;
endwise.enable = true;
marks.enable = true;
trouble.enable = true;
floaterm.enable = true;
fugitive.enable = true;
rustaceanvim.enable = true;
firenvim.enable = true;
dap = {
enable = true;
extensions.dap-ui.enable = true;
};
};
}

View File

@@ -0,0 +1,12 @@
{
plugins.telescope = {
enable = true;
settings = {
pickers = {
find_files = {
hidden = true;
};
};
};
};
}

390
glasshouse-laptop/home/nixvim/flake.lock generated Normal file
View File

@@ -0,0 +1,390 @@
{
"nodes": {
"devshell": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1722113426,
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
"owner": "numtide",
"repo": "devshell",
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-compat": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"revCount": 57,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1726153070,
"narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1726153070,
"narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"nixvim",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"nixpkgs-stable": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1727514110,
"narHash": "sha256-0YRcOxJG12VGDFH8iS8pJ0aYQQUAgo/r3ZAL+cSh9nk=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "85f7a7177c678de68224af3402ab8ee1bcee25c8",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nixvim",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_2": {
"inputs": {
"nixpkgs": [
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1727383923,
"narHash": "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "ffe2d07e771580a005e675108212597e5b367d2d",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1727507295,
"narHash": "sha256-I/FrX1peu4URoj5T5odfuKR2rm4GjYJJpCGF9c0/lDA=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "f2e1c4aa29fc211947c3a7113cba1dd707433b70",
"type": "github"
},
"original": {
"owner": "lnl7",
"repo": "nix-darwin",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1727348695,
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1725233747,
"narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1720386169,
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts_2",
"git-hooks": "git-hooks",
"home-manager": "home-manager",
"nix-darwin": "nix-darwin",
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1727557953,
"narHash": "sha256-xe8JQaNOPTyzWsSlLu2yC6qw4SjOMHrXk4Iq+pIgLhM=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "2c4e4681db658deeceb2f781136d7ba1d0009521",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1727452028,
"narHash": "sha256-ehl/A4HQFRyqj1Fk7cl+dgSf/2Fb1jLwWJtZaMU6RfU=",
"owner": "NuschtOS",
"repo": "search",
"rev": "9f7426e532ef8dfc839c4a3fcc567b13a20a70d3",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat_2",
"gitignore": "gitignore_2",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1727514110,
"narHash": "sha256-0YRcOxJG12VGDFH8iS8pJ0aYQQUAgo/r3ZAL+cSh9nk=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "85f7a7177c678de68224af3402ab8ee1bcee25c8",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs",
"nixvim": "nixvim",
"pre-commit-hooks": "pre-commit-hooks"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1727431250,
"narHash": "sha256-uGRlRT47ecicF9iLD1G3g43jn2e+b5KaMptb59LHnvM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "879b29ae9a0378904fbbefe0dadaed43c8905754",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

View File

@@ -0,0 +1,72 @@
{
description = "pagedMov's NeoVim configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
pre-commit-hooks = {
url = "github:cachix/pre-commit-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
nixvim,
flake-parts,
pre-commit-hooks,
...
}@inputs:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"aarch64-linux"
"x86_64-linux"
"aarch64-darwin"
"x86_64-darwin"
];
perSystem =
{
system,
pkgs,
self',
...
}:
let
nixvim' = nixvim.legacyPackages.${system};
nvim = nixvim'.makeNixvimWithModule {
inherit pkgs;
module = ./config;
};
in
{
checks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
statix.enable = true;
nixfmt-rfc-style.enable = true;
deadnix = {
enable = true;
settings = {
edit = true;
};
};
};
};
};
formatter = pkgs.nixfmt-rfc-style;
packages.default = nvim;
devShells = {
default = with pkgs; mkShell { inherit (self'.checks.pre-commit-check) shellHook; };
};
};
};
}

View File

@@ -0,0 +1,84 @@
{pkgs, ...}: let
wall-change = pkgs.writeShellScriptBin "wall-change" (builtins.readFile ./scripts/wall-change.sh);
wallpaper-picker = pkgs.writeShellScriptBin "wallpaper-picker" (builtins.readFile ./scripts/wallpaper-picker.sh);
runbg = pkgs.writeShellScriptBin "runbg" (builtins.readFile ./scripts/runbg.sh);
music = pkgs.writeShellScriptBin "music" (builtins.readFile ./scripts/music.sh);
lofi = pkgs.writeScriptBin "lofi" (builtins.readFile ./scripts/lofi.sh);
splash = pkgs.writeShellScriptBin "splash" (builtins.readFile ./scripts/splash.sh);
switchmon = pkgs.writeShellScriptBin "switchmon" (builtins.readFile ./scripts/switchmon.sh);
nixswitch = pkgs.writeShellScriptBin "nixswitch" (builtins.readFile ./scripts/nixswitch.sh);
garbage-collect = pkgs.writeShellScriptBin "garbage-collect" (builtins.readFile ./scripts/garbage-collect.sh);
scheck = pkgs.writeShellScriptBin "scheck" (builtins.readFile ./scripts/s_check.sh);
mcd = pkgs.writeShellScriptBin "mcd" (builtins.readFile ./scripts/mcd.sh);
crs = pkgs.writeShellScriptBin "crs" (builtins.readFile ./scripts/crs.sh);
nixcommit = pkgs.writeShellScriptBin "nixcommit" (builtins.readFile ./scripts/nixcommit.sh);
invoke = pkgs.writeShellScriptBin "invoke" (builtins.readFile ./scripts/invoke.sh);
nsp = pkgs.writeShellScriptBin "nsp" (builtins.readFile ./scripts/nsp.sh);
nixp = pkgs.writeShellScriptBin "nixp" (builtins.readFile ./scripts/nixp.sh);
nixr = pkgs.writeShellScriptBin "nixr" (builtins.readFile ./scripts/nixr.sh);
homep = pkgs.writeShellScriptBin "homep" (builtins.readFile ./scripts/homep.sh);
homer = pkgs.writeShellScriptBin "homer" (builtins.readFile ./scripts/homer.sh);
toggle_blur = pkgs.writeScriptBin "toggle_blur" (builtins.readFile ./scripts/toggle_blur.sh);
toggle_oppacity = pkgs.writeScriptBin "toggle_oppacity" (builtins.readFile ./scripts/toggle_oppacity.sh);
maxfetch = pkgs.writeScriptBin "maxfetch" (builtins.readFile ./scripts/maxfetch.sh);
compress = pkgs.writeScriptBin "compress" (builtins.readFile ./scripts/compress.sh);
extract = pkgs.writeScriptBin "extract" (builtins.readFile ./scripts/extract.sh);
shutdown-script = pkgs.writeScriptBin "shutdown-script" (builtins.readFile ./scripts/shutdown-script.sh);
show-keybinds = pkgs.writeScriptBin "show-keybinds" (builtins.readFile ./scripts/keybinds.sh);
vm-start = pkgs.writeScriptBin "vm-start" (builtins.readFile ./scripts/vm-start.sh);
ascii = pkgs.writeScriptBin "ascii" (builtins.readFile ./scripts/ascii.sh);
record = pkgs.writeScriptBin "record" (builtins.readFile ./scripts/record.sh);
in {
home.packages = [
nixswitch
garbage-collect
scheck
mcd
crs
nixcommit
invoke
nsp
wall-change
wallpaper-picker
nixp
nixr
homep
homer
runbg
music
lofi
splash
switchmon
toggle_blur
toggle_oppacity
maxfetch
compress
extract
shutdown-script
show-keybinds
vm-start
ascii
record
];
}

View File

@@ -0,0 +1,45 @@
#!/usr/bin/env zsh
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
BLUE=$(tput setaf 4)
MAGENTA=$(tput setaf 5)
CYAN=$(tput setaf 6)
NORMAL=$(tput sgr0)
echo -e "┌─────────────┬─────────────┬─────────────┬─────────────┐"
echo -e "${BLUE}Dec${NORMAL} ${GREEN}Hex${NORMAL} Chr │ ${BLUE}Dec${NORMAL} ${GREEN}Hex${NORMAL} Chr │ ${BLUE}Dec${NORMAL} ${GREEN}Hex${NORMAL} Chr │ ${BLUE}Dec${NORMAL} ${GREEN}Hex${NORMAL} Chr │"
echo -e "├─────────────┼─────────────┼─────────────┼─────────────┤"
echo -e "│ 0 0 \033[2mNUL\033[0m\033[0m │ 32 20 │ 64 40 ${CYAN}@${NORMAL} │ 96 60 ${CYAN}\`${NORMAL}"
echo -e "│ 1 1 \033[2mSOH\033[0m │ 33 21 ${CYAN}!${NORMAL} │ 65 41 ${GREEN}A${NORMAL} │ 97 61 ${GREEN}a${NORMAL}"
echo -e "│ 2 2 \033[2mSTX\033[0m │ 34 22 ${CYAN}\"${NORMAL} │ 66 42 ${GREEN}B${NORMAL} │ 98 62 ${GREEN}b${NORMAL}"
echo -e "│ 3 3 \033[2mETX\033[0m │ 35 23 ${CYAN}#${NORMAL} │ 67 43 ${GREEN}C${NORMAL} │ 99 63 ${GREEN}c${NORMAL}"
echo -e "│ 4 4 \033[2mEOT\033[0m │ 36 24 ${CYAN}\$${NORMAL} │ 68 44 ${GREEN}D${NORMAL} │ 100 64 ${GREEN}d${NORMAL}"
echo -e "│ 5 5 \033[2mENQ\033[0m │ 37 25 ${CYAN}%${NORMAL} │ 69 45 ${GREEN}E${NORMAL} │ 101 65 ${GREEN}e${NORMAL}"
echo -e "│ 6 6 \033[2mACK\033[0m │ 38 26 ${CYAN}&${NORMAL} │ 70 46 ${GREEN}F${NORMAL} │ 102 66 ${GREEN}f${NORMAL}"
echo -e "│ 7 7 \033[2mBEL\033[0m │ 39 27 ${CYAN}'${NORMAL} │ 71 47 ${GREEN}G${NORMAL} │ 103 67 ${GREEN}g${NORMAL}"
echo -e "│ 8 8 \033[2mBS\033[0m │ 40 28 ${CYAN}(${NORMAL} │ 72 48 ${GREEN}H${NORMAL} │ 104 68 ${GREEN}h${NORMAL}"
echo -e "│ 9 9 \033[2mHT\033[0m │ 41 29 ${CYAN})${NORMAL} │ 73 49 ${GREEN}I${NORMAL} │ 105 69 ${GREEN}i${NORMAL}"
echo -e "│ 10 A \033[2mLF\033[0m │ 42 2A ${CYAN}*${NORMAL} │ 74 4A ${GREEN}J${NORMAL} │ 106 6A ${GREEN}j${NORMAL}"
echo -e "│ 11 B \033[2mVT\033[0m │ 43 2B ${CYAN}+${NORMAL} │ 75 4B ${GREEN}K${NORMAL} │ 107 6B ${GREEN}k${NORMAL}"
echo -e "│ 12 C \033[2mFF\033[0m │ 44 2C ${CYAN},${NORMAL} │ 76 4C ${GREEN}L${NORMAL} │ 108 6C ${GREEN}l${NORMAL}"
echo -e "│ 13 D \033[2mCR\033[0m │ 45 2D ${CYAN}-${NORMAL} │ 77 4D ${GREEN}M${NORMAL} │ 109 6D ${GREEN}m${NORMAL}"
echo -e "│ 14 E \033[2mSO\033[0m │ 46 2E ${CYAN}.${NORMAL} │ 78 4E ${GREEN}N${NORMAL} │ 110 6E ${GREEN}n${NORMAL}"
echo -e "│ 15 F \033[2mSI\033[0m │ 47 2F ${CYAN}/${NORMAL} │ 79 4F ${GREEN}O${NORMAL} │ 111 6F ${GREEN}o${NORMAL}"
echo -e "│ 16 10 \033[2mDLE\033[0m │ 48 30 ${RED}0${NORMAL} │ 80 50 ${GREEN}P${NORMAL} │ 112 70 ${GREEN}p${NORMAL}"
echo -e "│ 17 11 \033[2mDC1\033[0m │ 49 31 ${RED}1${NORMAL} │ 81 51 ${GREEN}Q${NORMAL} │ 113 71 ${GREEN}q${NORMAL}"
echo -e "│ 18 12 \033[2mDC2\033[0m │ 50 32 ${RED}2${NORMAL} │ 82 52 ${GREEN}R${NORMAL} │ 114 72 ${GREEN}r${NORMAL}"
echo -e "│ 19 13 \033[2mDC3\033[0m │ 51 33 ${RED}3${NORMAL} │ 83 53 ${GREEN}S${NORMAL} │ 115 73 ${GREEN}s${NORMAL}"
echo -e "│ 20 14 \033[2mDC4\033[0m │ 52 34 ${RED}4${NORMAL} │ 84 54 ${GREEN}T${NORMAL} │ 116 74 ${GREEN}t${NORMAL}"
echo -e "│ 21 15 \033[2mNAK\033[0m │ 53 35 ${RED}5${NORMAL} │ 85 55 ${GREEN}U${NORMAL} │ 117 75 ${GREEN}u${NORMAL}"
echo -e "│ 22 16 \033[2mSYN\033[0m │ 54 36 ${RED}6${NORMAL} │ 86 56 ${GREEN}V${NORMAL} │ 118 76 ${GREEN}v${NORMAL}"
echo -e "│ 23 17 \033[2mETB\033[0m │ 55 37 ${RED}7${NORMAL} │ 87 57 ${GREEN}W${NORMAL} │ 119 77 ${GREEN}w${NORMAL}"
echo -e "│ 24 18 \033[2mCAN\033[0m │ 56 38 ${RED}8${NORMAL} │ 88 58 ${GREEN}X${NORMAL} │ 120 78 ${GREEN}x${NORMAL}"
echo -e "│ 25 19 \033[2mEM\033[0m │ 57 39 ${RED}9${NORMAL} │ 89 59 ${GREEN}Y${NORMAL} │ 121 79 ${GREEN}y${NORMAL}"
echo -e "│ 26 1A \033[2mSUB\033[0m │ 58 3A ${CYAN}:${NORMAL} │ 90 5A ${GREEN}Z${NORMAL} │ 122 7A ${GREEN}z${NORMAL}"
echo -e "│ 27 1B \033[2mESC\033[0m │ 59 3B ${CYAN};${NORMAL} │ 91 5B ${CYAN}[${NORMAL} │ 123 7B ${CYAN}{${NORMAL}"
echo -e "│ 28 1C \033[2mFS\033[0m │ 60 3C ${CYAN}<${NORMAL} │ 92 5C ${CYAN}\\${NORMAL} │ 124 7C ${CYAN}|${NORMAL}"
echo -e "│ 29 1D \033[2mGS\033[0m │ 61 3D ${CYAN}=${NORMAL} │ 93 5D ${CYAN}]${NORMAL} │ 125 7D ${CYAN}}${NORMAL}"
echo -e "│ 30 1E \033[2mRS\033[0m │ 62 3E ${CYAN}>${NORMAL} │ 94 5E ${CYAN}^${NORMAL} │ 126 7E ${CYAN}~${NORMAL}"
echo -e "│ 31 1F \033[2mUS\033[0m │ 63 3F ${CYAN}?${NORMAL} │ 95 5F ${CYAN}_${NORMAL} │ 127 7F \033[2mDEL\033[0m │"
echo -e "└─────────────┴─────────────┴─────────────┴─────────────┘"

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
if (( $# == 1 )) then
# echo -ne "Archive name: "
# read name
# tar -cvzf "$name.tar.gz" $1
tar -cvzf "$1.tar.gz" $1
else
echo "Wrong number of arguments..."
fi

View File

@@ -0,0 +1,4 @@
#!/run/current-system/sw/bin/bash
cargo test && \
cargo run

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
for i in "$@" ; do
tar -xvzf $i
break
done

View File

@@ -0,0 +1,26 @@
#!/run/current-system/sw/bin/bash
echo "This will delete all unused paths in the nix store and delete any files in the gtrash folder."
echo -e "\033[1;4;38;2;243;139;168mThis process is irreversible.\033[0m Are you sure?"
select yn in "Yes" "No"; do
case $yn in
Yes ) echo "Sweeping system...";scheck && runbg aplay "$HOME/media/sound/sys/collectgarbage.wav";break;;
No ) echo "Canceling garbage collection."; return;;
esac
done
output=$(nix-collect-garbage | tee /dev/tty)
nix_freed=$(echo "$output" | grep -oP '\d+(\.\d+)? MiB freed' | cut -d' ' -f1)
if [ "$(ls -A ~/.local/share/Trash/files/ 2>/dev/null)" ]; then
rm_freed=$(du ~/.local/share/Trash/files 2> /dev/null | awk '{print $1}')
rm_freed=$(echo "scale=2; $rm_freed / 1000" | bc)
/run/current-system/sw/bin/rm -rfv ~/.local/share/Trash/files
mkdir ~/.local/share/Trash/files
else
rm_freed="0"
fi
total_freed=$(echo "$nix_freed + $rm_freed" | bc)
echo -e "System cleaning complete, freed \033[1;4;38;2;166;227;161m$total_freed MiB\033[0m in total"
scheck && runbg aplay "$HOME/media/sound/sys/rm.wav"

View File

@@ -0,0 +1,30 @@
#!/run/current-system/sw/bin/bash
# Ensure the package manifest is generated or updated
if [ ! -f "/tmp/nixpkgs_manifest.txt" ]; then
echo "Generating Nixpkgs manifest..."
nix-env -qaP 2>/dev/null | awk '{print $1}' | sed 's/nixos\.//' > /tmp/nixpkgs_manifest.txt
fi
# Select packages using fzf with multi-select enabled
selected_packages=$(cat /tmp/nixpkgs_manifest.txt | fzf -m)
# Check if any packages were selected
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
# Append each selected package to the Nix config file
sed -i "/^\t]/i \ \t\t$package" "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix"
echo "Added $package to the Home Manager configuration."
done
echo "Packages added successfully. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages selected."
fi

View File

@@ -0,0 +1,24 @@
#!/run/current-system/sw/bin/bash
selected_packages=$(sed -n '/\[/,/\]/p' "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix" | sed '1d;$d' | fzf -m)
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
sed -i "/\b$package\b/d" "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix"
echo "Removed $package from the Home Manager configuration."
done
echo "Removed packages. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages removed."
fi

View File

@@ -0,0 +1,3 @@
#!/run/current-system/sw/bin/bash
nix run nixpkgs#$"@"

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
config_file=~/.config/hypr/hyprland.conf
keybinds=$(grep -oP '(?<=bind=).*' $config_file)
keybinds=$(echo "$keybinds" | sed 's/,\([^,]*\)$/ = \1/' | sed 's/, exec//g' | sed 's/^,//g')
rofi -dmenu -theme-str 'window {width: 50%;}' <<< "$keybinds"

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
if (ps aux | grep mpv | grep -v grep > /dev/null) then
pkill mpv
else
runbg mpv --no-video https://www.youtube.com/live/jfKfPfyJRdk?si=OF0HKrYFFj33BzMo
fi

View File

@@ -0,0 +1,53 @@
#!/usr/bin/env bash
unicode=" "
version="1.2.0"
_black=$(tput setaf 0)
red=$(tput setaf 1)
green=$(tput setaf 2)
yellow=$(tput setaf 3)
blue=$(tput setaf 4)
magenta=$(tput setaf 5)
cyan=$(tput setaf 6)
_white=$(tput setaf 7)
_bright=$(tput bold)
normal=$(tput sgr0)
_underline=$(tput smul)
up=$(uptime | awk -F'( |,|:)+' '{
d=h=m=0;
if ($7=="min")
m=$6;
else {
if ($7~/^day/) { d=$6; h=$8; m=$9}
else {h=$6;m=$7}
}
}
{ print h+0,"h",m+0,"m" }
')
up=$(sed -e "s/ h/h/g" <<< ${up})
up=$(sed -e "s/ m/m/g" <<< ${up})
pkgs=$(nix-store --query --requisites /run/current-system | wc -l)
fetch() {
echo "${cyan}$(tput bold) _ ___ ____ ____ ${normal}$(tput sgr0)"
echo "${cyan}$(tput bold) / |/ (_)_ __/ __ \/ __/ ${normal}$(tput sgr0)"
echo "${cyan}$(tput bold) / / /\ \ / /_/ /\ \ ${normal}$(tput sgr0)"
echo "${cyan}$(tput bold) /_/|_/_//_\_"'\\'"____/___/ ${normal}$(tput sgr0)"
echo ""
echo " ╭─────────────╮ "
echo "${red}${normal} user │ ${red}$(whoami)${normal}"
echo "${yellow}${normal} distro │ ${yellow}$(sed -nE "s@PRETTY_NAME=\"([^\"]*)\"@\1@p" /etc/os-release)${normal} "
echo "${green}${normal} kernel │ ${green}$(uname -r)${normal} "
echo "${cyan}󱂬 ${normal} de/wm │ ${cyan}$XDG_CURRENT_DESKTOP${normal} "
echo "${blue}${normal} uptime │ ${blue}${up}${normal} "
echo "${magenta}${normal} shell │ ${magenta}$(echo ${SHELL##*/})${normal} "
echo "${red}󰏖 ${normal} pkgs │ ${red}${pkgs}${normal} "
echo " ├─────────────┤ "
echo "${_white}${normal}colors │${_white}$unicode${normal}${red}$unicode${normal}${yellow}$unicode${normal}${green}$unicode${normal}${cyan}$unicode${normal}${blue}$unicode${normal}${magenta}$unicode${normal}${_black}$unicode${normal}"
echo " ╰─────────────╯ "
}
fetch && exit 0

View File

@@ -0,0 +1,5 @@
#!/run/current-system/sw/bin/bash
mkdir -p "$1"
cd "$1" || exit

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
if (ps aux | grep audacious | grep -v grep > /dev/null) then
pkill audacious
else
hyprctl dispatch exec "[workspace 5 silent] audacious -t ~/Music/playlist"
sleep 0.5
audtool playlist-repeat-status |grep "on" || audtool playlist-repeat-toggle
audtool playlist-shuffle-status|grep "on" || audtool playlist-shuffle-toggle
fi

View File

@@ -0,0 +1,24 @@
#!/run/current-system/sw/bin/bash
scheck && runbg aplay ~/media/sound/sys/nixswitch-start.wav
builtin cd "$HOME/sysflakes" || exit
nix flake update
if [ -n "$2" ]; then
echo "too many arguments"
exit
fi
gen=$(readlink /nix/var/nix/profiles/system | sed 's/.*system-\([0-9]*\)-link/\1/')
gen=$((gen + 1))
diffcheck=$(git status | grep "working tree clean")
if [ -n "$diffcheck" ]; then
scheck && runbg aplay ~/media/sound/sys/warning.wav
echo "Nothing to commit"
exit
fi
git add .
git commit -m "Gen $gen: $1"
git push
scheck && runbg aplay ~/media/sound/sys/gitpush.wav
builtin cd - || exit

View File

@@ -0,0 +1,30 @@
#!/run/current-system/sw/bin/bash
# Ensure the package manifest is generated or updated
if [ ! -f "/tmp/nixpkgs_manifest.txt" ]; then
echo "Generating Nixpkgs manifest..."
nix-env -qaP 2>/dev/null | awk '{print $1}' | sed 's/nixos\.//' > /tmp/nixpkgs_manifest.txt
fi
# Select packages using fzf with multi-select enabled
selected_packages=$(cat /tmp/nixpkgs_manifest.txt | fzf -m)
# Check if any packages were selected
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
# Append each selected package to the Nix config file
sed -i "/^\t]/i \ \t\t$package" "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix"
echo "Added $package to the Nix configuration."
done
echo "Packages added successfully. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages selected."
fi

View File

@@ -0,0 +1,24 @@
#!/run/current-system/sw/bin/bash
selected_packages=$(sed -n '/\[/,/\]/p' "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix" | sed '1d;$d' | fzf -m)
if [ -n "$selected_packages" ]; then
echo "$selected_packages" | while read -r package; do
sed -i "/\b$package\b/d" "$HOME/sysflakes/glasshouse-desktop/sys/packages.nix"
echo "Removed $package from the Nix configuration."
done
echo "Removed packages. Rebuild system config?"
select yn in "Yes" "No"; do
case $yn in
"Yes" ) nixswitch;break;;
"No" ) exit;;
esac
done
else
echo "No packages removed."
fi

View File

@@ -0,0 +1,13 @@
#!/run/current-system/sw/bin/bash
scheck && runbg aplay ~/media/sound/sys/nixswitch-start.wav
builtin cd "$HOME/sysflakes" || exit
nix flake update
sudo nixos-rebuild switch --flake "$HOME/sysflakes#glasshouse-laptop"
if [ $? -eq 0 ]; then
scheck && runbg aplay ~/media/sound/sys/update.wav
else
scheck && runbg aplay ~/media/sound/sys/error.wav
fi
builtin cd "$OLDPWD" || exit

View File

@@ -0,0 +1,3 @@
#!/run/current-system/sw/bin/bash
nix-shell -p "$@" --run zsh

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
rofi -show p -modi p:'rofi-power-menu' -theme-str 'window {width: 10em; height: 15em;} listview {lines: 5;}'

View File

@@ -0,0 +1,125 @@
#!/usr/bin/env bash
TMP_FILE_UNOPTIMIZED="/tmp/recording_unoptimized.gif"
TMP_PALETTE_FILE="/tmp/palette.png"
TMP_MP4_FILE="/tmp/recording.mp4"
TMP_GIF_RESULT="/tmp/gif_result"
APP_NAME="Recorder"
OUT_DIR="$HOME/Videos"
filename=$(date +"%Y-%m-%d_%H-%M-%S")
FILENAME="$OUT_DIR/$filename."
if [ ! -d "$OUT_DIR" ]; then
mkdir -p "$OUT_DIR"
fi
is_recorder_running() {
pgrep -x wf-recorder >/dev/null
}
convert_to_gif() {
ffmpeg -i "$TMP_MP4_FILE" -filter_complex "[0:v] palettegen" "$TMP_PALETTE_FILE"
ffmpeg -i "$TMP_MP4_FILE" -i "$TMP_PALETTE_FILE" -filter_complex "[0:v] fps=10,scale=1400:-1,setpts=0.5*PTS [new];[new][1:v] paletteuse" "$TMP_FILE_UNOPTIMIZED"
if [ -f "$TMP_PALETTE_FILE" ]; then
rm "$TMP_PALETTE_FILE"
fi
if [ -f "$TMP_MP4_FILE" ]; then
rm "$TMP_MP4_FILE"
fi
gifsicle -O3 --lossy=100 -i "$TMP_FILE_UNOPTIMIZED" -o "$TMP_GIF_RESULT"
if [ -f "$TMP_FILE_UNOPTIMIZED" ]; then
rm "$TMP_FILE_UNOPTIMIZED"
fi
}
notify() {
notify-send -a "$APP_NAME" "$1" "$2" -t 5000
}
screen() {
notify "Starting Recording" "Your screen is being recorded"
timeout 600 wf-recorder -F format=rgb24 -x rgb24 -p qp=0 -p crf=0 -p preset=slow -c libx264rgb -f "$TMP_MP4_FILE"
}
area() {
GEOMETRY=$(slurp)
if [[ ! -z "$GEOMETRY" ]]; then
notify "Starting Recording" "Your screen is being recorded"
timeout 600 wf-recorder -F format=rgb24 -x rgb24 -p qp=0 -p crf=0 -p preset=slow -c libx264rgb -g "$GEOMETRY" -f "$TMP_MP4_FILE"
fi
}
gif() {
touch /tmp/recording_gif
area
}
stop() {
if is_recorder_running; then
kill $(pgrep -x wf-recorder)
if [[ -f /tmp/recording_gif ]] then
notify "Stopped Recording" "Starting GIF conversion phase..."
FILENAME+="gif"
convert_to_gif
SavePath=$( zenity --file-selection --save --file-filter=*.gif --filename="$OUT_DIR"'/.gif' )
if [ "$SavePath" == "" ]; then
SavePath="$FILENAME"
fi
[[ $SavePath =~ \.gif$ ]] || SavePath+='.gif'
mv $TMP_GIF_RESULT $SavePath
wl-copy -t image/png < $SavePath
notify "GIF conversion completed" "GIF saved to $SavePath"
else
FILENAME+="mp4"
SavePath=$( zenity --file-selection --save --file-filter=*.mp4 --filename="$OUT_DIR"'/.mp4' )
if [ "$SavePath" == "" ]; then
SavePath="$FILENAME"
fi
[[ $SavePath =~ \.mp4$ ]] || SavePath+='.mp4'
mv $TMP_MP4_FILE $SavePath
wl-copy -t video/mp4 < $SavePath
notify "Stopped Recording" "Video saved to $SavePath"
fi
[[ -f $TMP_FILE_UNOPTIMIZED ]] && rm -f "$TMP_FILE_UNOPTIMIZED"
[[ -f $TMP_PALETTE_FILE ]] && rm -f "$TMP_PALETTE_FILE"
[[ -f $TMP_GIF_RESULT ]] && rm -f "$TMP_GIF_RESULT"
[[ -f $TMP_MP4_FILE ]] && rm -f "$TMP_MP4_FILE"
[[ -f /tmp/recording_gif ]] && rm -f /tmp/recording_gif
exit 0
fi
}
if is_recorder_running; then
stop
fi
if [ "$1" != "stop" ]; then
[[ -f $TMP_FILE_UNOPTIMIZED ]] && rm -f "$TMP_FILE_UNOPTIMIZED"
[[ -f $TMP_PALETTE_FILE ]] && rm -f "$TMP_PALETTE_FILE"
[[ -f $TMP_GIF_RESULT ]] && rm -f "$TMP_GIF_RESULT"
[[ -f $TMP_MP4_FILE ]] && rm -f "$TMP_MP4_FILE"
[[ -f /tmp/recording_gif ]] && rm -f /tmp/recording_gif
fi
case "$1" in
screen)
screen
;;
area)
area
;;
gif)
gif
;;
stop)
stop
;;
*)
echo "Usage: $0 {screen|area|gif|stop}"
exit 1
;;
esac

View File

@@ -0,0 +1,281 @@
#!/usr/bin/env bash
# This script defines just a mode for rofi instead of being a self-contained
# executable that launches rofi by itself. This makes it more flexible than
# running rofi inside this script as now the user can call rofi as one pleases.
# For instance:
#
# rofi -show powermenu -modi powermenu:./rofi-power-menu
#
# See README.md for more information.
set -e
set -u
# All supported choices
all=(shutdown reboot suspend hibernate lockscreen)
# By default, show all (i.e., just copy the array)
show=("${all[@]}")
declare -A texts
texts[lockscreen]="lock screen"
texts[switchuser]="switch user"
texts[logout]="log out"
texts[suspend]="suspend"
texts[hibernate]="hibernate"
texts[reboot]="reboot"
texts[shutdown]="shut down"
declare -A icons
icons[lockscreen]="\Uf033e"
icons[switchuser]="\Uf0019"
icons[logout]="\Uf0343"
icons[suspend]="\Uf04b2"
icons[hibernate]="\Uf02ca"
icons[reboot]="\Uf0709"
icons[shutdown]="\Uf0425"
icons[cancel]="\Uf0156"
declare -A actions
actions[lockscreen]="hyprlock"
#actions[switchuser]="???"
actions[logout]="sway exit"
actions[suspend]="systemctl suspend"
actions[hibernate]="systemctl hibernate"
actions[reboot]="systemctl reboot"
actions[shutdown]="systemctl poweroff"
# By default, ask for confirmation for actions that are irreversible
confirmations=(reboot shutdown hibernate)
# By default, no dry run
dryrun=false
showsymbols=true
showtext=true
function check_valid {
option="$1"
shift 1
for entry in "${@}"
do
if [ -z "${actions[$entry]+x}" ]
then
echo "Invalid choice in $1: $entry" >&2
exit 1
fi
done
}
# Parse command-line options
parsed=$(getopt --options=h --longoptions=help,dry-run,confirm:,choices:,choose:,symbols,no-symbols,text,no-text,symbols-font: --name "$0" -- "$@")
if [ $? -ne 0 ]; then
echo 'Terminating...' >&2
exit 1
fi
eval set -- "$parsed"
unset parsed
while true; do
case "$1" in
"-h"|"--help")
echo "rofi-power-menu - a power menu mode for Rofi"
echo
echo "Usage: rofi-power-menu [--choices CHOICES] [--confirm CHOICES]"
echo " [--choose CHOICE] [--dry-run] [--symbols|--no-symbols]"
echo
echo "Use with Rofi in script mode. For instance, to ask for shutdown or reboot:"
echo
echo " rofi -show menu -modi \"menu:rofi-power-menu --choices=shutdown/reboot\""
echo
echo "Available options:"
echo " --dry-run Don't perform the selected action but print it to stderr."
echo " --choices CHOICES Show only the selected choices in the given order. Use /"
echo " as the separator. Available choices are lockscreen,"
echo " logout,suspend, hibernate, reboot and shutdown. By"
echo " default, all available choices are shown."
echo " --confirm CHOICES Require confirmation for the gives choices only. Use / as"
echo " the separator. Available choices are lockscreen, logout,"
echo " suspend, hibernate, reboot and shutdown. By default, only"
echo " irreversible actions logout, reboot and shutdown require"
echo " confirmation."
echo " --choose CHOICE Preselect the given choice and only ask for a"
echo " confirmation (if confirmation is set to be requested). It"
echo " is strongly recommended to combine this option with"
echo " --confirm=CHOICE if the choice wouldn't require"
echo " confirmation by default. Available choices are"
echo " lockscreen, logout, suspend, hibernate, reboot and"
echo " shutdown."
echo " --[no-]symbols Show Unicode symbols or not. Requires a font with support"
echo " for the symbols. Use, for instance, fonts from the"
echo " Nerdfonts collection. By default, they are shown"
echo " --[no-]text Show text description or not."
echo " --symbols-font FONT Use the given font for symbols. By default, the symbols"
echo " use the same font as the text. That font is configured"
echo " with rofi."
echo " -h,--help Show this help text."
exit 0
;;
"--dry-run")
dryrun=true
shift 1
;;
"--confirm")
IFS='/' read -ra confirmations <<< "$2"
check_valid "$1" "${confirmations[@]}"
shift 2
;;
"--choices")
IFS='/' read -ra show <<< "$2"
check_valid "$1" "${show[@]}"
shift 2
;;
"--choose")
# Check that the choice is valid
check_valid "$1" "$2"
selectionID="$2"
shift 2
;;
"--symbols")
showsymbols=true
shift 1
;;
"--no-symbols")
showsymbols=false
shift 1
;;
"--text")
showtext=true
shift 1
;;
"--no-text")
showtext=false
shift 1
;;
"--symbols-font")
symbols_font="$2"
shift 2
;;
"--")
shift
break
;;
*)
echo "Internal error" >&2
exit 1
;;
esac
done
if [ "$showsymbols" = "false" -a "$showtext" = "false" ]
then
echo "Invalid options: cannot have --no-symbols and --no-text enabled at the same time." >&2
exit 1
fi
# Define the messages after parsing the CLI options so that it is possible to
# configure them in the future.
function write_message {
if [ -z ${symbols_font+x} ];
then
icon="<span font_size=\"medium\">$1</span>"
else
icon="<span font=\"${symbols_font}\" font_size=\"medium\">$1</span>"
fi
text="<span font_size=\"medium\">$2</span>"
if [ "$showsymbols" = "true" ]
then
if [ "$showtext" = "true" ]
then
echo -n "\u200e$icon \u2068$text\u2069"
else
echo -n "\u200e$icon"
fi
else
echo -n "$text"
fi
}
function print_selection {
echo -e "$1" | $(read -r -d '' entry; echo "echo $entry")
}
declare -A messages
declare -A confirmationMessages
for entry in "${all[@]}"
do
messages[$entry]=$(write_message "${icons[$entry]}" "${texts[$entry]^}")
done
for entry in "${all[@]}"
do
confirmationMessages[$entry]=$(write_message "${icons[$entry]}" "Yes, ${texts[$entry]}")
done
confirmationMessages[cancel]=$(write_message "${icons[cancel]}" "No, cancel")
if [ $# -gt 0 ]
then
# If arguments given, use those as the selection
selection="${@}"
else
# Otherwise, use the CLI passed choice if given
if [ -n "${selectionID+x}" ]
then
selection="${messages[$selectionID]}"
fi
fi
# Don't allow custom entries
echo -e "\0no-custom\x1ftrue"
# Use markup
echo -e "\0markup-rows\x1ftrue"
if [ -z "${selection+x}" ]
then
echo -e "\0prompt\x1fPower menu"
for entry in "${show[@]}"
do
echo -e "${messages[$entry]}\0icon\x1f${icons[$entry]}"
done
else
for entry in "${show[@]}"
do
if [ "$selection" = "$(print_selection "${messages[$entry]}")" ]
then
# Check if the selected entry is listed in confirmation requirements
for confirmation in "${confirmations[@]}"
do
if [ "$entry" = "$confirmation" ]
then
# Ask for confirmation
echo -e "\0prompt\x1fAre you sure"
echo -e "${confirmationMessages[$entry]}\0icon\x1f${icons[$entry]}"
echo -e "${confirmationMessages[cancel]}\0icon\x1f${icons[cancel]}"
exit 0
fi
done
# If not, then no confirmation is required, so mark confirmed
selection=$(print_selection "${confirmationMessages[$entry]}")
fi
if [ "$selection" = "$(print_selection "${confirmationMessages[$entry]}")" ]
then
if [ $dryrun = true ]
then
# Tell what would have been done
echo "Selected: $entry" >&2
else
# Perform the action
pkill -9 rofi
${actions[$entry]}
fi
exit 0
fi
if [ "$selection" = "$(print_selection "${confirmationMessages[cancel]}")" ]
then
# Do nothing
exit 0
fi
done
# The selection didn't match anything, so raise an error
echo "Invalid selection: $selection" >&2
exit 1
fi

View File

@@ -0,0 +1,16 @@
#!/usr/bin/env bash
[ $# -eq 0 ] && { # $# is number of args
echo "$(basename $0): missing command" >&2
exit 1
}
prog="$(which "$1")" # see below
[ -z "$prog" ] && {
echo "$(basename $0): unknown command: $1" >&2
exit 1
}
shift # remove $1, now $prog, from args
tty -s && exec </dev/null # if stdin is a terminal, redirect from null
tty -s <&1 && exec >/dev/null # if stdout is a terminal, redirect to null
tty -s <&2 && exec 2>&1 # stderr to stdout (which might not be null)
"$prog" "$@" & # $@ is all args

View File

@@ -0,0 +1,3 @@
#!/run/current-system/sw/bin/bash
[ "$SOUNDS_ENABLED" -eq 1 ]

View File

@@ -0,0 +1,34 @@
#!/usr/bin/env bash
dir="$HOME/Pictures/Screenshots"
time=$(date +'%Y_%m_%d_at_%Hh%Mm%Ss')
file="${dir}/Screenshot_${time}.png"
copy() {
grimblast --notify --freeze copy area
}
save() {
grimblast --notify --freeze save area "$file"
}
swappy_() {
grimblast --notify --freeze save area "$file"
swappy -f "$file"
}
if [[ ! -d "$dir" ]]; then
mkdir -p "$dir"
fi
if [[ "$1" == "--copy" ]]; then
copy
elif [[ "$1" == "--save" ]]; then
save
elif [[ "$1" == "--swappy" ]]; then
swappy_
else
echo -e "Available Options: --copy --save --swappy"
fi
exit 0

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env zsh
respond="$(echo " Shutdown\n Restart\n Cancel" | rofi -dmenu)"
if [ $respond = ' Shutdown' ]
then
echo "shutdown"
shutdown now
elif [ $respond = ' Restart' ]
then
echo "restart"
reboot
else
notify-send "cancel shutdown"
fi

View File

@@ -0,0 +1,6 @@
#!/bin/bash
echo "NixOS kernel ver. $(uname -a | awk '{print $3}') x86_64 GNU/Linux"
date +"%A %B %-d %Y"
echo -e "\033[38;2;0;180;205m$(toilet -t -f Slant.flf glasshouse)\033[0m"
echo

View File

@@ -0,0 +1,3 @@
#!/bin/zsh
hyprctl dispatch focusmonitor $(echo "$(hyprctl -j monitors)" | jq -r '.[] | select(.focused == false) | .name')

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
if hyprctl getoption decoration:blur:enabled | grep "int: 1" >/dev/null ; then
hyprctl keyword decoration:blur:enabled false >/dev/null
else
hyprctl keyword decoration:blur:enabled true >/dev/null
fi

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
hyprctl dispatch togglefloating
hyprctl dispatch resizeactive exact 950 600
hyprctl dispatch centerwindow

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
if hyprctl getoption decoration:active_opacity | grep "float: 1" >/dev/null ; then
hyprctl keyword decoration:active_opacity 0.90 >/dev/null
hyprctl keyword decoration:inactive_opacity 0.90 >/dev/null
else
hyprctl keyword decoration:active_opacity 1 >/dev/null
hyprctl keyword decoration:inactive_opacity 1 >/dev/null
fi

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
SERVICE=".waybar-wrapped"
if pgrep -x "$SERVICE" >/dev/null
then
pkill -9 waybar
else
runbg waybar
fi

View File

@@ -0,0 +1,11 @@
#!/usr/bin/env zsh
# VM name
vm_name="win10"
export LIBVIRT_DEFAULT_URI="qemu:///system"
# change workspace
hyprctl dispatch workspace 6
virsh start ${vm_name}
virt-viewer -f -w -a ${vm_name}

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
PIDS=$(pgrep -f "swaybg")
swaybg -m fill -i $1 &
if [ -n "$PIDS" ]; then
echo "$PIDS" | xargs kill
fi

View File

@@ -0,0 +1,12 @@
#!/usr/bin/env bash
wallpaper_path=$HOME/Pictures/wallpapers
wallpapers_folder=$HOME/Pictures/Wallpapers
wallpaper_name="$(ls $wallpapers_folder | rofi -dmenu || pkill rofi)"
if [[ -f $wallpapers_folder/$wallpaper_name ]]; then
find ~/Pictures/Wallpapers -maxdepth 1 -type f -delete
cp $wallpapers_folder/$wallpaper_name $wallpaper_path/$wallpaper_name
wall-change $wallpaper_path/$wallpaper_name
else
exit 1
fi

View File

@@ -0,0 +1,24 @@
{ pkgs, lib, inputs, ...}:
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"spotify"
];
imports = [inputs.spicetify-nix.homeManagerModules.default];
programs.spicetify = {
enable = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names)
];
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
};
}

View File

@@ -0,0 +1,61 @@
{ lib, inputs, ... }:
{
programs.starship = {
enable = true;
enableZshIntegration = false;
settings = {
add_newline = true;
right_format = "($custom)";
format = lib.concatStrings [
"($username)(bold white)($cmd_duration)($character)"
"($git_branch)($git_status)($rust)($nix-shell)"
"($directory)"
"$line_break[ > ](bold #89b4fa)"
];
username = {
show_always = true;
style_user = "bold white";
format = "[$user]($style)";
};
directory = {
format = "\n[$path](bold cyan)[/](bold green) ";
style = "bold #b4befe";
};
character = {
success_symbol = "[ -> ](bold green)";
error_symbol = "[ -> ](bold red)";
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
};
cmd_duration = {
format = "[ 󰔛 $duration]($style)";
disabled = false;
style = "bg:none fg:#f9e2af";
show_notifications = false;
min_time_to_notify = 60000;
};
git_branch = {
format = "\non [$symbol$branch](bold purple)";
symbol = " ";
truncation_length = 15;
style = "bold purple";
};
custom.shellver = {
command = "zsh --version";
when = ''test $SHELL = "/run/current-system/sw/bin/zsh"'';
symbol = "";
style = "bold magenta";
};
palette = "catppuccin_mocha";
} // builtins.fromTOML (builtins.readFile "${inputs.catppuccin-starship}/themes/mocha.toml");
};
}

View File

@@ -0,0 +1,136 @@
{
"positionX": "right",
"positionY": "top",
"layer": "overlay",
"layer-shell": "true",
"cssPriority": "application",
"control-center-margin-top": 10,
"control-center-margin-bottom": 10,
"control-center-margin-right": 10,
"control-center-margin-left": 10,
"notification-icon-size": 64,
"notification-body-image-height": 128,
"notification-body-image-width": 200,
"timeout": 10,
"timeout-low": 5,
"timeout-critical": 0,
"fit-to-screen": true,
"control-center-width": 400,
"control-center-height": 650,
"notification-window-width": 350,
"keyboard-shortcuts": true,
"image-visibility": "when-available",
"transition-time": 200,
"hide-on-clear": false,
"hide-on-action": true,
"script-fail-notify": true,
"widgets": [
"title",
"menubar#desktop",
"volume",
"backlight#mobile",
"mpris",
"dnd",
"notifications"
],
"widget-config": {
"title": {
"text": "Notifications",
"clear-all-button": true,
"button-text": " Clear All "
},
"menubar#desktop": {
"menu#powermode-buttons": {
"label": " 󰌪 ",
"position": "left",
"actions": [
{
"label": "Performance",
"command": "powerprofilesctl set performance"
},
{
"label": "Balanced",
"command": "powerprofilesctl set balanced"
},
{
"label": "Power-saver",
"command": "powerprofilesctl set power-saver"
}
]
},
"menu#screenshot": {
"label": "  ",
"position": "left",
"actions": [
{
"label": "󰹑 Whole screen",
"command": "grimblast --notify --cursor --freeze copy output"
},
{
"label": "󰩭 Window / Region",
"command": "grimblast --notify --cursor --freeze copy area"
}
]
},
"menu#record": {
"label": " 󰕧 ",
"position": "left",
"actions": [
{
"label": " Record screen",
"command": "record screen & ; swaync-client -t"
},
{
"label": " Record selection",
"command": "record area & ; swaync-client -t"
},
{
"label": " Record GIF",
"command": "record gif & ; swaync-client -t"
},
{
"label": "󰻃 Stop",
"command": "record stop"
}
]
},
"menu#power-buttons": {
"label": "  ",
"position": "left",
"actions": [
{
"label": " Lock",
"command": "swaylock"
},
{
"label": " Reboot",
"command": "systemctl reboot"
},
{
"label": " Shut down",
"command": "systemctl poweroff"
}
]
}
},
"backlight#mobile": {
"label": " 󰃠 ",
"device": "panel"
},
"volume": {
"label": "",
"expand-button-label": "",
"collapse-button-label": "",
"show-per-app": true,
"show-per-app-icon": true,
"show-per-app-label": false
},
"dnd": {
"text": " Do Not Disturb"
},
"mpris": {
"image-size": 85,
"image-radius": 5
}
}
}

View File

@@ -0,0 +1,601 @@
@define-color shadow rgba(0, 0, 0, 0.25);
/*
*
* Catppuccin Mocha palette
* Maintainer: rubyowo
*
*/
@define-color base #1E1D2E;
@define-color mantle #181825;
@define-color crust #11111b;
@define-color text #cdd6f4;
@define-color subtext0 #a6adc8;
@define-color subtext1 #bac2de;
@define-color surface0 #313244;
@define-color surface1 #45475a;
@define-color surface2 #585b70;
@define-color overlay0 #6c7086;
@define-color overlay1 #7f849c;
@define-color overlay2 #9399b2;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color sapphire #74c7ec;
@define-color sky #89dceb;
@define-color teal #94e2d5;
@define-color green #a6e3a1;
@define-color yellow #f9e2af;
@define-color peach #fab387;
@define-color maroon #eba0ac;
@define-color red #f38ba8;
@define-color mauve #cba6f7;
@define-color pink #f5c2e7;
@define-color flamingo #f2cdcd;
@define-color rosewater #f5e0dc;
* {
font-family: "NotoSansMono Nerd Font";
background-clip: border-box;
}
/* #notifications_box { */
/* border: solid 4px red; */
/* } */
label {
color: @text;
}
.notification {
border: @lavender;
box-shadow: none;
/* margin: 0px; */
/* margin: -15px -10px -15px -10px; */
border-radius: 4px;
background: inherit;
/* background: @theme_bg_color; */
/* background: shade(alpha(@borders, 2.55), 0.25); */
}
.notification button {
background: transparent;
border-radius: 0px;
border: none;
margin: 0px;
padding: 0px;
}
.notification button:hover {
background: @surface0;
/* background: @insensitive_bg_color; */
}
.notification-content {
min-height: 64px;
margin: 10px;
padding: 0px;
border-radius: 0px;
}
.close-button {
background: @crust;
color: @surface2;
}
.notification-default-action,
.notification-action {
background: transparent;
border: none;
}
.notification-default-action {
border-radius: 4px;
}
/* When alternative actions are visible */
.notification-default-action:not(:only-child) {
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
.notification-action {
border-radius: 0px;
padding: 2px;
color: @text;
/* color: @theme_text_color; */
}
/* add bottom border radius to eliminate clipping */
.notification-action:first-child {
border-bottom-left-radius: 4px;
}
.notification-action:last-child {
border-bottom-right-radius: 4px;
}
/*** Notification ***/
/* Notification header */
.summary {
color: @text;
/* color: @theme_text_color; */
font-size: 16px;
padding: 0px;
}
.time {
color: @subtext0;
/* color: alpha(@theme_text_color, 0.9); */
font-size: 12px;
text-shadow: none;
margin: 0px 0px 0px 0px;
padding: 2px 0px;
}
.body {
font-size: 14px;
font-weight: 500;
color: @subtext1;
/* color: alpha(@text, 0.9); */
/* color: alpha(@theme_text_color, 0.9); */
text-shadow: none;
margin: 0px 0px 0px 0px;
}
.body-image {
border-radius: 4px;
}
/* The "Notifications" and "Do Not Disturb" text widget */
.top-action-title {
color: @text;
/* color: @theme_text_color; */
text-shadow: none;
}
/* Control center */
.control-center {
/* background: transparent; */
background: @crust;
/* background: @theme_bg_color; */
/* border: 1px solid @surface0; */
border-radius: 5px;
/* box-shadow: 0px 0px 2px black; */
}
/* .right.overlay-indicator { */
/* border: solid 5px red; */
/* } */
.control-center-list {
/* background: @base; */
background: @crust;
min-height: 5px;
/* border: 1px solid @surface1; */
border-top: none;
border-radius: 0px 0px 4px 4px;
}
.control-center-list-placeholder,
.notification-group-icon,
.notification-group {
/* opacity: 1.0; */
/* opacity: 0; */
color: alpha(@theme_text_color, 0.50);
}
.notification-group {
/* unset the annoying focus thingie */
all: unset;
border: none;
opacity: 0;
padding: 0px;
box-shadow: none;
/* selectable: no; */
}
.notification-group > box {
all: unset;
background: @mantle;
/* background: alpha(currentColor, 0.072); */
padding: 8px;
margin: 0px;
/* margin: 0px -5px; */
border: none;
border-radius: 4px;
box-shadow: none;
}
.notification-row {
outline: none;
transition: all 1s ease;
background: @base;
/* background: @theme_bg_color; */
border: 1px solid @crust;
margin: 10px 5px 0px 5px;
border-radius: 4px;
/* box-shadow: 0px 0px 4px black; */
/* background: alpha(currentColor, 0.05); */
}
.notification-row:focus,
.notification-row:hover {
box-shadow: none;
}
.control-center-list > row,
.control-center-list > row:focus,
.control-center-list > row:hover {
background: transparent;
border: none;
margin: 0px;
padding: 5px 10px 5px 10px;
box-shadow: none;
}
.control-center-list > row:last-child {
padding: 5px 10px 10px 10px;
}
/* Window behind control center and on all other monitors */
.blank-window {
background: transparent;
}
/*** Widgets ***/
/* Title widget */
.widget-title {
margin: 0px;
background: inherit;
/* background: @theme_bg_color; */
border-radius: 4px 4px 0px 0px;
/* border: 1px solid @surface1; */
border-bottom: none;
padding-bottom: 20px;
}
.widget-title > label {
margin: 18px 10px;
font-size: 20px;
font-weight: 500;
}
.widget-title > button {
font-weight: 700;
padding: 7px 3px;
margin-right: 10px;
background: @mantle;
color: @text;
/* color: @theme_text_color; */
/* border: none; */
border-radius: 4px;
}
.widget-title > button:hover {
background: @base;
/* background: alpha(currentColor, 0.1); */
}
/* Label widget */
.widget-label {
margin: 0px;
padding: 0px;
min-height: 5px;
background: @mantle;
/* background: @theme_bg_color; */
border-radius: 0px 0px 4px 4px;
/* border: 1px solid @surface1; */
border-top: none;
}
.widget-label > label {
font-size: 0px;
font-weight: 400;
}
/* Menubar */
.widget-menubar {
background: inherit;
/* background: @theme_bg_color; */
/* border: 1px solid @surface1; */
border-top: none;
border-bottom: none;
}
.widget-menubar > box > box {
margin: 5px 10px 5px 10px;
min-height: 40px;
border-radius: 4px;
background: transparent;
}
.widget-menubar > box > box > button {
background: @mantle;
/* background: alpha(currentColor, 0.05); */
min-width: 85px;
min-height: 50px;
margin-right: 13px;
font-size: 17px;
padding: 0px;
}
.widget-menubar > box > box > button:nth-child(4) {
margin-right: 0px;
}
.widget-menubar button:focus {
box-shadow: none;
}
.widget-menubar button:focus:hover {
background: @base;
/* background: alpha(currentColor,0.1); */
box-shadow: none;
}
.widget-menubar > box > revealer > box {
margin: 5px 10px 5px 10px;
background: @mantle;
/* background: alpha(currentColor, 0.05); */
border-radius: 4px;
}
.widget-menubar > box > revealer > box > button {
background: transparent;
min-height: 50px;
padding: 0px;
margin: 5px;
}
/* Buttons grid */
.widget-buttons-grid {
/* background-color: @theme_bg_color; */
background-color: @mantle;
/* border: 1px solid @surface1; */
border-top: none;
border-bottom: none;
font-size: 14px;
font-weight: 500;
margin: 0px;
padding: 5px;
border-radius: 0px;
}
.widget-buttons-grid > flowbox > flowboxchild {
background: @mantle;
/* background: alpha(currentColor, 0.05); */
border-radius: 4px;
min-height: 50px;
min-width: 85px;
margin: 5px;
padding: 0px;
}
.widget-buttons-grid > flowbox > flowboxchild > button {
background: transparent;
border-radius: 4px;
margin: 0px;
border: none;
box-shadow: none;
}
.widget-buttons-grid > flowbox > flowboxchild > button:hover {
background: @mantle;
/* background: alpha(currentColor, 0.1); */
}
/* Mpris widget */
.widget-mpris {
padding: 10px;
padding-bottom: 35px;
padding-top: 35px;
margin-bottom: -33px;
}
.widget-mpris > box {
padding: 0px;
margin: -5px 0px -10px 0px;
padding: 0px;
border-radius: 4px;
/* background: alpha(currentColor, 0.05); */
background: @mantle;
}
.widget-mpris > box > button:nth-child(1),
.widget-mpris > box > button:nth-child(3) {
margin-bottom: 0px;
}
.widget-mpris > box > button:nth-child(1) {
margin-left: -25px;
margin-right: -25px;
opacity: 0;
}
.widget-mpris > box > button:nth-child(3) {
margin-left: -25px;
margin-right: -25px;
opacity: 0;
}
.widget-mpris-album-art {
all: unset;
}
/* Player button box */
.widget-mpris > box > carousel > widget > box > box:nth-child(2) {
margin: 5px 0px -5px 90px;
}
/* Player buttons */
.widget-mpris > box > carousel > widget > box > box:nth-child(2) > button {
border-radius: 4px;
}
.widget-mpris > box > carousel > widget > box > box:nth-child(2) > button:hover {
background: alpha(currentColor, 0.1);
}
carouselindicatordots {
opacity: 0;
}
.widget-mpris-title {
color: #eeeeee;
font-weight: bold;
font-size: 1.25rem;
text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
}
.widget-mpris-subtitle {
color: #eeeeee;
font-size: 1rem;
text-shadow: 0px 0px 3px rgba(0, 0, 0, 1);
}
.widget-mpris-player {
border-radius: 0px;
margin: 0px;
}
.widget-mpris-player > box > image {
margin: 0px 0px -48px 0px;
}
.notification-group > box.vertical {
/* border: solid 5px red; */
margin-top: 3px
}
/* Backlight and volume widgets */
.widget-backlight,
.widget-volume {
background-color: @crust;
/* background-color: @theme_bg_color; */
/* border: 1px solid @surface1; */
border-top: none;
border-bottom: none; font-size: 13px;
font-weight: 600;
border-radius: 0px;
margin: 0px;
padding: 0px;
}
.widget-volume > box {
background: @mantle;
/* background: alpha(currentColor, 0.05); */
border-radius: 4px;
margin: 5px 10px 5px 10px;
min-height: 50px;
}
.widget-volume > box > label {
min-width: 50px;
padding: 0px;
}
.widget-volume > box > button {
min-width: 50px;
box-shadow: none;
padding: 0px;
}
.widget-volume > box > button:hover {
/* background: alpha(currentColor, 0.05); */
background: @surface0;
}
.widget-volume > revealer > list {
background: @mantle;
/* background: alpha(currentColor, 0.05); */
border-radius: 4px;
margin-top: 5px;
padding: 0px;
}
.widget-volume > revealer > list > row {
padding-left: 10px;
min-height: 40px;
background: transparent;
}
.widget-volume > revealer > list > row:hover {
background: transparent;
box-shadow: none;
border-radius: 4px;
}
.widget-backlight > scale {
background: @mantle;
/* background: alpha(currentColor, 0.05); */
border-radius: 0px 4px 4px 0px;
margin: 5px 10px 5px 0px;
padding: 0px 10px 0px 0px;
min-height: 50px;
}
.widget-backlight > label {
background: @surface0;
/* background: alpha(currentColor, 0.05); */
margin: 5px 0px 5px 10px;
border-radius: 4px 0px 0px 4px;
padding: 0px;
min-height: 50px;
min-width: 50px;
}
/* DND widget */
.widget-dnd {
margin: 8px;
font-size: 1.1rem;
padding-top: 20px;
}
.widget-dnd>switch {
font-size: initial;
border-radius: 12px;
background: @surface0;
border: 1px solid @lavender;
box-shadow: none;
}
.widget-dnd>switch:checked {
background: @surface2;
}
.widget-dnd>switch slider {
background: @lavender;
border-radius: 12px;
}
/* Toggles */
.toggle:checked {
background: @surface1;
/* background: @theme_selected_bg_color; */
}
/*.toggle:not(:checked) {
color: rgba(128, 128, 128, 0.5);
}*/
.toggle:checked:hover {
background: @surface2;
/* background: alpha(@theme_selected_bg_color, 0.75); */
}
/* Sliders */
scale {
padding: 0px;
margin: 0px 10px 0px 10px;
}
scale trough {
border-radius: 4px;
background: @surface0;
/* background: alpha(currentColor, 0.1); */
}
scale highlight {
border-radius: 5px;
min-height: 10px;
margin-right: -5px;
}
scale slider {
margin: -10px;
min-width: 10px;
min-height: 10px;
background: transparent;
box-shadow: none;
padding: 0px;
}
scale slider:hover {
}
.right.overlay-indicator {
all: unset;
}

View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
home.packages = (with pkgs; [ swaynotificationcenter ]);
xdg.configFile."swaync/style.css".source = ./style.css;
xdg.configFile."swaync/config.json".source = ./config.json;
}

27
glasshouse-laptop/home/toilet/flake.lock generated Normal file
View File

@@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1726937504,
"narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "9357f4f23713673f310988025d9dc261c20e70c6",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

View File

@@ -0,0 +1,47 @@
{
description = "Toilet Configuration with Extra Fonts";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
};
outputs = { self, nixpkgs, ... }@inputs:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
# Fetch extra fonts from GitHub
extraFonts = pkgs.fetchFromGitHub {
owner = "xero";
repo = "figlet-fonts";
rev = "master"; # Or specify a particular commit/tag
sha256 = "sha256-dAs7N66D2Fpy4/UB5Za1r2qb1iSAJR6TMmau1asxgtY="; # Replace with actual hash
};
in {
packages.${system} = {
default = pkgs.toilet.overrideAttrs (oldAttrs: rec {
buildInputs = oldAttrs.buildInputs or [] ++ [ extraFonts ];
installPhase = ''
make install PREFIX=$out
# Copy the extra fonts into the correct directory
mkdir -p $out/share/figlet
cp -r ${extraFonts}/* $out/share/figlet
'';
});
};
# Define a development shell for testing
devShells.${system} = pkgs.mkShell {
buildInputs = [
pkgs.toilet
extraFonts
];
shellHook = ''
echo "Toilet dev shell with extra fonts"
'';
};
};
}

View File

@@ -0,0 +1 @@
/nix/store/i2ibv054n0ll5p78qabrkb5sxcjzbr2n-toilet-0.3

View File

@@ -0,0 +1,42 @@
{ pkgs, inputs, ... }:
let
nvim = inputs.nvim.packages."x86_64-linux".default;
toilet = inputs.toilet.packages."x86_64-linux".default;
in
{
home.packages = with pkgs; [
hello
gtk3
adwaita-icon-theme
uhk-agent
dunst
rofi
sqlite
starship
zathura
inkscape
imagemagick
firefox
yt-dlp
vlc
speedtest-cli
vesktop
qbittorrent
obs-studio
neovide
chromium
zsh
zsh-syntax-highlighting
zsh-history-substring-search
zsh-autosuggestions
audacity
snes9x-gtk
rustup
libreoffice
handbrake
gtrash
ripgrep
nvim
toilet
];
}

View File

@@ -0,0 +1,7 @@
{ ... }:
{
imports = [ (import ./waybar.nix) ]
++ [ (import ./settings.nix) ]
++ [ (import ./style.nix) ];
}

View File

@@ -0,0 +1,149 @@
{ ... }:
{
programs.waybar.settings.mainBar = {
position= "top";
layer= "top";
height= 5;
margin-top= 0;
margin-bottom= 0;
margin-left= 0;
margin-right= 0;
modules-left= [
"custom/launcher"
"custom/separator"
"hyprland/workspaces"
];
modules-center= [
"clock"
];
modules-right= [
"tray"
"custom/separator"
"cpu"
"memory"
"disk"
"custom/separator"
"pulseaudio"
"battery"
"network"
"custom/separator"
"custom/notification"
];
clock= {
calendar = {
format = { today = "<span color='#b4befe'><b><u>{}</u></b></span>"; };
};
format = " {:%H:%M}";
tooltip= "true";
tooltip-format= "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt= " {:%d/%m}";
};
"hyprland/workspaces"= {
active-only= false;
disable-scroll= true;
format = "{icon}";
on-click= "activate";
format-icons= {
"1"= "";
"2"= "";
"3"= "";
"4"= "";
"5"= "";
"6"= "";
urgent= "";
default = "";
sort-by-number= true;
};
persistent-workspaces = {
"1"= [];
"2"= [];
"3"= [];
"4"= [];
"5"= [];
"6"= [];
};
};
memory= {
format= "󰟜 {}%";
format-alt= "󰟜 {used} GiB"; # 
interval= 2;
};
cpu= {
format= " {usage}%";
format-alt= " {avg_frequency} GHz";
interval= 2;
};
disk = {
# path = "/";
format = "󰋊 {percentage_used}%";
interval= 60;
};
network = {
format-wifi = " {signalStrength}%";
format-ethernet = "󰀂 ";
tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
format-linked = "{ifname} (No IP)";
format-disconnected = "󰖪 ";
};
tray= {
icon-size= 20;
spacing= 8;
};
pulseaudio= {
format= "{icon} {volume}%";
format-muted= " {volume}%";
format-icons= {
default= [" "];
};
scroll-step= 5;
on-click= "pamixer -t";
on-click-right= "pavucontrol";
};
battery = {
format = "{icon} {capacity}%";
format-icons = [" " " " " " " " " "];
format-charging = " {capacity}%";
format-full = " {capacity}%";
format-warning = " {capacity}%";
interval = 5;
states = {
warning = 20;
};
format-time = "{H}h{M}m";
tooltip = true;
tooltip-format = "{time}";
};
"custom/launcher"= {
format= "";
on-click= "fuzzel";
on-click-right= "wallpaper-picker";
tooltip= "false";
};
"custom/notification" = {
tooltip = false;
format = "{icon} ";
format-icons = {
notification = "<span foreground='red'><sup></sup></span> ";
none = " ";
dnd-notification = "<span foreground='red'><sup></sup></span> ";
dnd-none = " ";
inhibited-notification = "<span foreground='red'><sup></sup></span> ";
inhibited-none = " ";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span> ";
dnd-inhibited-none = " ";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
"custom/separator" = {
exec = "echo ' | '";
interval = 600;
tooltip = false;
};
};
}

View File

@@ -0,0 +1,100 @@
{ ... }:
let custom = {
font = "JetBrainsMono Nerd Font";
font_size = "22px";
font_weight = "bold";
text_color = "#cdd6f4";
secondary_accent = "#89b4fa";
tertiary_accent = "#f5f5f5";
background = "#11111B";
};
in
{
programs.waybar.style = ''
* {
border: none;
border-radius: 0px;
padding: 0;
margin: 0;
min-height: 0px;
font-family: ${custom.font};
font-weight: ${custom.font_weight};
}
window#waybar {
background: ${custom.background};
}
#workspaces {
font-size: ${custom.font_size};
}
#workspaces button {
color: ${custom.text_color};
padding-left: 6px;
padding-right: 6px;
}
#workspaces button.empty {
color: #6c7086;
}
#workspaces button.active {
color: #b4befe;
}
#tray, #pulseaudio, #network, #cpu, #memory, #disk, #clock, #battery, #custom-notification {
font-size: ${custom.font_size};
color: ${custom.text_color};
}
#cpu {
padding-left: 5px;
padding-right: 9px;
}
#memory {
padding-left: 9px;
padding-right: 9px;
}
#disk {
padding-left: 9px;
padding-right: 5px;
}
#tray {
margin-left: 7px;
padding-right: 5px;
}
#pulseaudio {
padding-left: 5px;
padding-right: 9px;
}
#battery {
padding-left: 9px;
padding-right: 9px;
}
#network {
padding-left: 9px;
padding-right: 5px;
}
custom-notification {
padding-left: 15px;
padding-right: 20px;
}
#clock {
padding-left: 9px;
padding-right: 15px;
}
#custom-launcher {
font-size: ${custom.font_size};
color: #b4befe;
font-weight: ${custom.font_weight};
padding-left: 10px;
padding-right: 15px;
}
'';
}

View File

@@ -0,0 +1,10 @@
{ pkgs, ... }:
{
programs.waybar = {
enable = true;
};
programs.waybar.package = pkgs.waybar.overrideAttrs (oa: {
mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ];
});
}

View File

@@ -0,0 +1,677 @@
{ ... }:
{
programs.yazi = {
enable = true;
enableZshIntegration = true;
theme = {
manager = {
cwd = { fg = "#94e2d5"; };
border_style = { fg = "#7f849c"; };
preview_hovered = { underline = true; };
find_keyword = { fg = "#f9e2af"; italic = true; };
find_position = { fg = "#f5c2e7"; bg = "reset"; italic = true; };
hovered = { fg = "#1e1e2e"; bg = "#89b4fa"; };
marker_copied = { fg = "#a6e3a1"; bg = "#a6e3a1"; };
marker_cut = { fg = "#f38ba8"; bg = "#f38ba8"; };
marker_selected = { fg = "#89b4fa"; bg = "#89b4fa"; };
tab_active = { fg = "#1e1e2e"; bg = "#cdd6f4"; };
tab_inactive = { fg = "#cdd6f4"; bg = "#45475a"; };
tab_width = 1;
count_copied = { fg = "#1e1e2e"; bg = "#a6e3a1"; };
count_cut = { fg = "#1e1e2e"; bg = "#f38ba8"; };
count_selected = { fg = "#1e1e2e"; bg = "#89b4fa"; };
border_symbol = "";
};
status = {
separator_open = "";
separator_close = "";
separator_style = { fg = "#45475a"; bg = "#45475a"; };
mode_normal = { fg = "#1e1e2e"; bg = "#89b4fa"; bold = true; };
mode_select = { fg = "#1e1e2e"; bg = "#a6e3a1"; bold = true; };
mode_unset = { fg = "#1e1e2e"; bg = "#f2cdcd"; bold = true; };
progress_label = { fg = "#ffffff"; bold = true; };
progress_normal = { fg = "#89b4fa"; bg = "#45475a"; };
progress_error = { fg = "#f38ba8"; bg = "#45475a"; };
permissions_t = { fg = "#89b4fa"; };
permissions_r = { fg = "#f9e2af"; };
permissions_w = { fg = "#f38ba8"; };
permissions_x = { fg = "#a6e3a1"; };
permissions_s = { fg = "#7f849c"; };
};
input = {
border = { fg = "#89b4fa"; };
selected = { reversed = true; };
};
select = {
border = { fg = "#89b4fa"; };
active = { fg = "#f5c2e7"; };
};
tasks = {
border = { fg = "#89b4fa"; };
hovered = { underline = true; };
};
which = {
mask = { bg = "#313244"; };
cand = { fg = "#94e2d5"; };
rest = { fg = "#9399b2"; };
desc = { fg = "#f5c2e7"; };
separator = " ";
separator_style = { fg = "#585b70"; };
};
help = {
on = { fg = "#f5c2e7"; };
exec = { fg = "#94e2d5"; };
desc = { fg = "#9399b2"; };
hovered = { bg = "#585b70"; bold = true; };
footer = { fg = "#45475a"; bg = "#cdd6f4"; };
};
filetype = {
rules = [
{ mime = "image/*"; fg = "#94e2d5"; }
{ mime = "{audio;video}/*"; fg = "#f9e2af"; }
{ mime = "application/{;g}zip"; fg = "#f5c2e7"; }
{ mime = "application/x-{tar;bzip*;7z-compressed;xz;rar}"; fg = "#f5c2e7"; }
{ name = "*"; fg = "#cdd6f4"; }
{ name = "*/"; fg = "#89b4fa"; }
];
};
icon = {
files = [
{ name = "gulpfile.js"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = ".babelrc"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "copying.lesser"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = ".npmrc"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "docker-compose.yml"; text = "󰡨"; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "svelte.config.js"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "copying"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "prettier.config.ts"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "gruntfile.babel.js"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = ".SRCINFO"; text = "󰣇"; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = ".xinitrc"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "docker-compose.yaml"; text = "󰡨"; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "nuxt.config.ts"; text = "󱄆"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "build"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = ".editorconfig"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "nuxt.config.mjs"; text = "󱄆"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = ".gitlab-ci.yml"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "PKGBUILD"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = ".bash_profile"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = ".bashrc"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "compose.yml"; text = "󰡨"; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "eslint.config.cjs"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "go.mod"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = ".mailmap"; text = "󰊢"; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "gtkrc"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "go.work"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "justfile"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "kritadisplayrc"; text = ""; fg_dark = "#cba6f7"; fg_light = "#cba6f7"; }
{ name = "commitlint.config.js"; text = "󰜘"; fg_dark = "#94e2d5"; fg_light = "#94e2d5"; }
{ name = ".env"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "PrusaSlicerGcodeViewer.ini"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "r"; text = "󰟔"; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "license"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = ".gitignore"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "tailwind.config.js"; text = "󱏿"; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = ".prettierrc.yml"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = ".zprofile"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = ".zshenv"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "xmonad.hs"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = ".eslintignore"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "tsconfig.json"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = ".prettierrc.json5"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = ".ds_store"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "gulpfile.coffee"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "R"; text = "󰟔"; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = ".zshrc"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = ".prettierrc.toml"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = ".gvimrc"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = ".xsession"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = ".justfile"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = ".gitconfig"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "gradle-wrapper.properties"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "ionic.config.json"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "cantorrc"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = ".gleam"; text = ""; fg_dark = "#f5c2e7"; fg_light = "#f5c2e7"; }
{ name = "package-lock.json"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "package.json"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "hyprland.conf"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "gulpfile.babel.js"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = ".nvmrc"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = ".prettierignore"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "ext_typoscript_setup.txt"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "QtProject.conf"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "avif"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "mix.lock"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "build.gradle"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "gemfile$"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = ".vimrc"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "i18n.config.ts"; text = "󰗊"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "gulpfile.ts"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "build.zig.zon"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "checkhealth"; text = "󰓙"; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "xmobarrc"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "_vimrc"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = ".luaurc"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "kdenlive-layoutsrc"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "gradlew"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "xsettingsd.conf"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "vlcrc"; text = "󰕼"; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "xorg.conf"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "xmobarrc.hs"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "workspace"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = ".gitattributes"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "favicon.ico"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "go.sum"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "pom.xml"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "webpack"; text = "󰜫"; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "vagrantfile$"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "unlicense"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "tmux.conf.local"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "settings.gradle"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = ".dockerignore"; text = "󰡨"; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "sym-lib-table"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "_gvimrc"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "kdenliverc"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "kdeglobals"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = ".prettierrc.yaml"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "rmd"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "tailwind.config.mjs"; text = "󱏿"; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "sxhkdrc"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "robots.txt"; text = "󰚩"; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "tailwind.config.ts"; text = "󱏿"; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "prettier.config.mjs"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "mpv.conf"; text = ""; fg_dark = "#1e1e2e"; fg_light = "#1e1e2e"; }
{ name = "py.typed"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "PrusaSlicer.ini"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "procfile"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "rakefile"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "kritarc"; text = ""; fg_dark = "#cba6f7"; fg_light = "#cba6f7"; }
{ name = ".Xresources"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "prettier.config.js"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "commitlint.config.ts"; text = "󰜘"; fg_dark = "#94e2d5"; fg_light = "#94e2d5"; }
{ name = "weston.ini"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "eslint.config.js"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "cmakelists.txt"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = ".git-blame-ignore-revs"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "config"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "nuxt.config.cjs"; text = "󱄆"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "node_modules"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "makefile"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "lxqt.conf"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "i18n.config.js"; text = "󰗊"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "FreeCAD.conf"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "prettier.config.cjs"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "tmux.conf"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "kalgebrarc"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "i3status.conf"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = ".settings.json"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "containerfile"; text = "󰡨"; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "i3blocks.conf"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "lxde-rc.xml"; text = ""; fg_dark = "#9399b2"; fg_light = "#9399b2"; }
{ name = "gradle.properties"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "hypridle.conf"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "gruntfile.ts"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "gruntfile.js"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "dockerfile"; text = "󰡨"; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "groovy"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "hyprlock.conf"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = ".prettierrc"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "gnumakefile"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "commit_editmsg"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "fp-lib-table"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "fp-info-cache"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "eslint.config.ts"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "nuxt.config.js"; text = "󱄆"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "platformio.ini"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = ".nuxtrc"; text = "󱄆"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "gruntfile.coffee"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "eslint.config.mjs"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "compose.yaml"; text = "󰡨"; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "bspwmrc"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "brewfile"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = ".eslintrc"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = ".gtkrc-2.0"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = ".Xauthority"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = ".prettierrc.json"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = ".npmignore"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = ".gitmodules"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
];
exts = [
{ name = "rake"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "skp"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "eln"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "razor"; text = "󱦘"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "vue"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "sln"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "el"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "blp"; text = "󰺾"; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "jl"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "mdx"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "jsx"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "ml"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "less"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "pot"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "pl"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "mli"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "gif"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "aif"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "cxxm"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "fcbak"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "aac"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "query"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "android"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "m3u8"; text = "󰲹"; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "leex"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "liquid"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "cue"; text = "󰲹"; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "fcmacro"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "log"; text = "󰌱"; fg_dark = "#cdd6f4"; fg_light = "#cdd6f4"; }
{ name = "pm"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "brep"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "blend"; text = "󰂫"; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "md5"; text = "󰕥"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "sql"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "xcplayground"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "erb"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "t"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "cache"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "r"; text = "󰟔"; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "x"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "import"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "m"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "lrc"; text = "󰨖"; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "o"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "d"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "c"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "h"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "rss"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "hbs"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "godot"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "eot"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "awk"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "fsx"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "a"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "pyi"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "asc"; text = "󰦝"; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "ass"; text = "󰨖"; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "css"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "psb"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "csproj"; text = "󰪮"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "csv"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "gcode"; text = "󰐫"; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "ics"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "mk"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "bz"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "fctb"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "gz"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "wasm"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "glb"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "elc"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "flf"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "elf"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "dropbox"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "tres"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "apk"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "ape"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "slvs"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "apl"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "cs"; text = "󰌛"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "azcli"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "pp"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "flc"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "gemspec"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "pls"; text = "󰲹"; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "cfg"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "fcscript"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "gnumakefile"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "zst"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "pxi"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "woff2"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "kicad_pcb"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "zsh"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "kicad_wks"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "info"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "cppm"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "svg"; text = "󰜡"; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "flac"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "cuh"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "bin"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "zig"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "yml"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "yaml"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "fsscript"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "xz"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "diff"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "mojo"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "cshtml"; text = "󱦗"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "bak"; text = "󰁯"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "nfo"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "bat"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "cpy"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "gql"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "c++"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "lff"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "obj"; text = "󰆧"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "sha512"; text = "󰕥"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "scm"; text = "󰘧"; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "aiff"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "sig"; text = "λ"; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "webm"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "zip"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "wrz"; text = "󰆧"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "jwmrc"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "xml"; text = "󰗀"; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "cbl"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "rmd"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "xaml"; text = "󰙳"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "xm"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "wvc"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "drl"; text = ""; fg_dark = "#eba0ac"; fg_light = "#eba0ac"; }
{ name = "erl"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "3gp"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "ccm"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "ino"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "kbx"; text = "󰯄"; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "test.js"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "wrl"; text = "󰆧"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "pcm"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "woff"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "scala"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "webpack"; text = "󰜫"; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "hrl"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "kra"; text = ""; fg_dark = "#cba6f7"; fg_light = "#cba6f7"; }
{ name = "kicad_pro"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "bazel"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "toml"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "iges"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "crdownload"; text = ""; fg_dark = "#94e2d5"; fg_light = "#94e2d5"; }
{ name = "so"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "strings"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "xls"; text = "󰈛"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "wav"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "vsix"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "kicad_prl"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "mov"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "bash"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "sqlite3"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "vsh"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "vim"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "lck"; text = ""; fg_dark = "#bac2de"; fg_light = "#bac2de"; }
{ name = "go"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "pyo"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "vhdl"; text = "󰍛"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "vhd"; text = "󰍛"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "rar"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "magnet"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "vala"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "coffee"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "kdbx"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "po"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "v"; text = "󰍛"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "prisma"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "f90"; text = "󱈚"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "txt"; text = "󰈙"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "mo"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "mp4"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "cljc"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "heex"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "exs"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "clj"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "luau"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "fcparam"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "markdown"; text = ""; fg_dark = "#cdd6f4"; fg_light = "#cdd6f4"; }
{ name = "dxf"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "luac"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "desktop"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "docx"; text = "󰈬"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "cljd"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "txz"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "bicepparam"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "kt"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "fcstd"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "md"; text = ""; fg_dark = "#cdd6f4"; fg_light = "#cdd6f4"; }
{ name = "edn"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "sub"; text = "󰨖"; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "ttf"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "tsx"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "hurl"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "dll"; text = ""; fg_dark = "#11111b"; fg_light = "#11111b"; }
{ name = "lhs"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "tsconfig"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "msf"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "ts"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "rproj"; text = "󰗆"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "org"; text = ""; fg_dark = "#94e2d5"; fg_light = "#94e2d5"; }
{ name = "signature"; text = "λ"; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "elm"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "pyc"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "tmux"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "tgz"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "nu"; text = ">"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "tfvars"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "lua"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "astro"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "lib"; text = ""; fg_dark = "#11111b"; fg_light = "#11111b"; }
{ name = "tex"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "ogg"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "stp"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "sublime"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "test.tsx"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "nswag"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "test.ts"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "test.jsx"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "dwg"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "bib"; text = "󱉟"; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "sass"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "templ"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "tcl"; text = "󰛓"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "pck"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "swift"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "makefile"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "xcstrings"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "slim"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "iso"; text = ""; fg_dark = "#f2cdcd"; fg_light = "#f2cdcd"; }
{ name = "fsi"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "dart"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "nix"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "svelte"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "sv"; text = "󰍛"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "bz2"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "sha256"; text = "󰕥"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "twig"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "material"; text = "󰔉"; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "ppt"; text = "󰈧"; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "pyd"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "step"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "hx"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "webmanifest"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "kicad_sch"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "cjs"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "stl"; text = "󰆧"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "ejs"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "ssa"; text = "󰨖"; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "license"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "jsonc"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "download"; text = ""; fg_dark = "#94e2d5"; fg_light = "#94e2d5"; }
{ name = "ige"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "sqlite"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "psd1"; text = "󰨊"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "dump"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "resi"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "spec.ts"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "fnl"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "cu"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "scss"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "config.ru"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "psd"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "db"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "epub"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "haml"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "sol"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "sml"; text = "λ"; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "svh"; text = "󰍛"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "sldprt"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "ico"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "xlsx"; text = "󰈛"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "rs"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "dconf"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "bz3"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "fdmdownload"; text = ""; fg_dark = "#94e2d5"; fg_light = "#94e2d5"; }
{ name = "fs"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "patch"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "hs"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "xcf"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "js"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "pyw"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "sha384"; text = "󰕥"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "fcmat"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "csh"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "suo"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "sha224"; text = "󰕥"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "sha1"; text = "󰕥"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "cr"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "huff"; text = "󰡘"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "sh"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "sc"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "ksh"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "cc"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "wma"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "mp3"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "conf"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "3mf"; text = "󰆧"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "sbt"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "kicad_mod"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "terminal"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "rlib"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "pdf"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "mts"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "kdenlive"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "kts"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "spec.tsx"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "res"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "hxx"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "rb"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "vh"; text = "󰍛"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "ixx"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "cson"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "cts"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "7z"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "ex"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "cpp"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "qss"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "app"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "jxl"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "qrc"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "qml"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "epp"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "otf"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "hh"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "qm"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "pro"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "exe"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "kdenlivetitle"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "kdb"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "mpp"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "Dockerfile"; text = "󰡨"; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "bqn"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "torrent"; text = ""; fg_dark = "#94e2d5"; fg_light = "#94e2d5"; }
{ name = "m3u"; text = "󰲹"; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "py"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "pxd"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "f3d"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "out"; text = ""; fg_dark = "#45475a"; fg_light = "#45475a"; }
{ name = "spec.jsx"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "kicad_dru"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "ps1"; text = "󰨊"; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "ui"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "styl"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "f#"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "png"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "ply"; text = "󰆧"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "php"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "eex"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "tbc"; text = "󰛓"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "part"; text = ""; fg_dark = "#94e2d5"; fg_light = "#94e2d5"; }
{ name = "pub"; text = "󰷖"; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "ipynb"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "opus"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "git"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "bmp"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "blade.php"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "nim"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "xpi"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "mustache"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "tscn"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "scad"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "ai"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "hex"; text = ""; fg_dark = "#6c7086"; fg_light = "#6c7086"; }
{ name = "hpp"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "xul"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "mobi"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "fcstd1"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "ical"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "icalendar"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "bicep"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "mm"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "mkv"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "graphql"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "mjs"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "mint"; text = "󰌪"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "m4v"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "m4a"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "tf"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "gv"; text = "󱁉"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "lock"; text = ""; fg_dark = "#bac2de"; fg_light = "#bac2de"; }
{ name = "krz"; text = ""; fg_dark = "#cba6f7"; fg_light = "#cba6f7"; }
{ name = "kpp"; text = ""; fg_dark = "#cba6f7"; fg_light = "#cba6f7"; }
{ name = "ko"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "kicad_sym"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "psm1"; text = "󰨊"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "pyx"; text = ""; fg_dark = "#89b4fa"; fg_light = "#89b4fa"; }
{ name = "json5"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "json"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "bzl"; text = ""; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "ifb"; text = ""; fg_dark = "#313244"; fg_light = "#313244"; }
{ name = "image"; text = ""; fg_dark = "#f2cdcd"; fg_light = "#f2cdcd"; }
{ name = "jpg"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "jpeg"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "java"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "wv"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "ini"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "cast"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "cp"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "fctl"; text = ""; fg_dark = "#f38ba8"; fg_light = "#f38ba8"; }
{ name = "ifc"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "sldasm"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "html"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "typoscript"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "🔥"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "htm"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "ste"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "spec.js"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "gresource"; text = ""; fg_dark = "#f5e0dc"; fg_light = "#f5e0dc"; }
{ name = "ebook"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "gradle"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "gd"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "fish"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "igs"; text = "󰻫"; fg_dark = "#a6e3a1"; fg_light = "#a6e3a1"; }
{ name = "fbx"; text = "󰆧"; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "env"; text = ""; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "srt"; text = "󰨖"; fg_dark = "#f9e2af"; fg_light = "#f9e2af"; }
{ name = "dot"; text = "󱁉"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "doc"; text = "󰈬"; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "d.ts"; text = ""; fg_dark = "#fab387"; fg_light = "#fab387"; }
{ name = "applescript"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "cxx"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "img"; text = ""; fg_dark = "#f2cdcd"; fg_light = "#f2cdcd"; }
{ name = "cljs"; text = ""; fg_dark = "#74c7ec"; fg_light = "#74c7ec"; }
{ name = "cobol"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "cob"; text = ""; fg_dark = "#585b70"; fg_light = "#585b70"; }
{ name = "cmake"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
{ name = "webp"; text = ""; fg_dark = "#7f849c"; fg_light = "#7f849c"; }
];
};
};
};
}

View File

@@ -0,0 +1,127 @@
{ ... }:
{
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
programs.zsh = {
enable = true;
sessionVariables = {
SOUNDS_ENABLED = "1";
EDITOR = "/nixbin/nvim";
SUDO_EDITOR = "/nixbin/nvim";
VISUAL = "/nixbin/nvim";
LANG = "en_US.UTF-8";
BROWSER = "/nixbin/firefox";
NVIM = "~/dots/nixvim/config/";
HYPRCONF = "~/dots/hyprland/";
SYSCONF = "~/sysflakes/glasshouse-desktop/sys";
};
oh-my-zsh = {
enable = true;
plugins = [ "git" "fzf" ];
};
enableCompletion = true;
history = {
path = "$HOME/.zsh_history";
save = 10000;
size = 10000;
share = true;
};
autosuggestion = {
enable = true;
highlight = "fg=#4C566A,underline";
};
shellAliases = {
grep = "grep --color=auto";
mv = "mv -v";
cp = "cp -vr";
gt = "gtrash";
gtp = "gtrash put";
grub-update = "sudo grub-mkconfig -o /boot/grub/grub.cfg";
sr = "source ~/.zshrc";
".." = "cd ..";
rm = "echo 'use \"gtp\" instead'";
psg = "ps aux | grep -v grep | grep -i -e VSZ -e" ;
mkdir = "mkdir -p";
pk = "pkill -9 -f";
zrc = "nvim $HOME/dots/zshell.nix";
svcu = "systemctl --user";
svc = "sudo systemctl";
hyprconf = "nvim $HOME/dots/hyprland/config.nix";
nixconf = "nvim $HOME/sysflakes/glasshouse-desktop/sys";
hmconf = "nvim $HOME/sysflakes/glasshouse-desktop/home";
viflake = "nvim flake.nix";
nvimcfg = "nvim $HOME/dots/nixvim/config";
};
initExtra = ''
unalias ls
ls() {
eza -1 --group-directories-first --icons "$@"
scheck && runbg aplay ~/media/sound/sys/ls.wav
}
cd() {
export SOUNDS_ENABLED=0
eza -1 --group-directories-first --icons "$@"
builtin cd "$@" || exit
export SOUNDS_ENABLED=1
scheck && (aplay ~/media/sound/sys/cd.wav > /dev/null 2>&1 &)
}
if [ ! -e $HOME/.zsh_history ]; then
touch $HOME/.zsh_history
chmod 600 $HOME/.zsh_history
fi
setopt APPEND_HISTORY # Append history to the history file (don't overwrite)
setopt INC_APPEND_HISTORY # Append to the history file incrementally
setopt SHARE_HISTORY # Share history between all zsh sessions
sessionVariables = {
setopt CORRECT
setopt NO_NOMATCH
setopt LIST_PACKED
setopt ALWAYS_TO_END
setopt GLOB_COMPLETE
setopt COMPLETE_ALIASES
setopt COMPLETE_IN_WORD
setopt AUTO_CD
setopt AUTO_CONTINUE
setopt LONG_LIST_JOBS
setopt HIST_VERIFY
setopt SHARE_HISTORY
setopt HIST_IGNORE_SPACE
setopt HIST_SAVE_NO_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt EXTENDED_GLOB
setopt TRANSIENT_RPROMPT
setopt INTERACTIVE_COMMENTS
autoload -U compinit # completion
autoload -U terminfo # terminfo keys
zmodload -i zsh/complist # menu completion
autoload -U promptinit # prompt
autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search
autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search
bindkey -v
type starship_zle-keymap-select >/dev/null || \
{
eval "$(starship init zsh)"
}
unalias ls
clear
splash
scheck && runbg aplay ~/media/sound/sys/sh-source.wav
'';
};
}

View File

@@ -0,0 +1,10 @@
{ pkgs, ... }:
{
boot = {
loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
loader.systemd-boot.configurationLimit = 10;
kernelPackages = pkgs.linuxPackages_latest;
};
}

View File

@@ -0,0 +1,69 @@
{ inputs, pkgs, config, self, username, ... }:
{
imports =
[ (import ./bootloader.nix) ]
++ [ (import ./fonts.nix) ]
++ [ (import ./hardware.nix) ]
++ [ (import ./network.nix) ]
++ [ (import ./packages.nix) ]
++ [ (import ./programs.nix) ]
++ [ (import ./services.nix) ]
++ [ (import ./system.nix) ]
++ [ (import ./users.nix) ];
environment.systemPackages = with pkgs; [
acpi
brightnessctl
cpupower-gui
powertop
];
services = {
power-profiles-daemon.enable = true;
upower = {
enable = true;
percentageLow = 20;
percentageCritical = 5;
percentageAction = 3;
criticalPowerAction = "PowerOff";
};
tlp.settings = {
CPU_ENERGY_PERF_POLICY_ON_AC = "power";
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_BOOST_ON_AC = 1;
CPU_BOOST_ON_BAT = 1;
CPU_HWP_DYN_BOOST_ON_AC = 1;
CPU_HWP_DYN_BOOST_ON_BAT = 1;
PLATFORM_PROFILE_ON_AC = "performance";
PLATFORM_PROFILE_ON_BAT = "performance";
INTEL_GPU_MIN_FREQ_ON_AC=500;
INTEL_GPU_MIN_FREQ_ON_BAT=500;
# INTEL_GPU_MAX_FREQ_ON_AC=0;
# INTEL_GPU_MAX_FREQ_ON_BAT=0;
# INTEL_GPU_BOOST_FREQ_ON_AC=0;
# INTEL_GPU_BOOST_FREQ_ON_BAT=0;
PCIE_ASPM_ON_AC = "default";
PCIE_ASPM_ON_BAT = "powersupersave";
};
};
powerManagement.cpuFreqGovernor = "performance";
boot = {
kernelModules = ["acpi_call"];
extraModulePackages = with config.boot.kernelPackages;
[
acpi_call
cpupower
]
++ [pkgs.cpupower-gui];
};
}

View File

@@ -0,0 +1,9 @@
{ pkgs, ... }:
{
fonts.packages = with pkgs; [
times-newer-roman
nerdfonts
jetbrains-mono
];
}

View File

@@ -0,0 +1,55 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, modulesPath, username, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "uas" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/a687e4e2-8665-43f1-9d62-3e3f21423579";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/6EAD-2C48";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/home" =
{ device = "/dev/nvme0n1p5";
fsType = "ext4";
};
fileSystems."/home/${username}/steamlib" =
{ device = "/dev/nvme0n1p1";
fsType = "ext4";
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp14s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware = {
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
keyboard.uhk.enable = true;
amdgpu.amdvlk.enable = true;
bluetooth = {
enable = true;
powerOnBoot = true;
};
};
}

View File

@@ -0,0 +1,15 @@
{ pkgs, ... }:
{
networking = {
networkmanager.enable = true;
hostName = "glasshaus";
hosts = {
"192.168.1.163" = [ "glasshaus.info" ];
};
firewall = {
enable = true;
allowedTCPPorts = [ 30000 ];
};
};
}

View File

@@ -0,0 +1,72 @@
{ pkgs, inputs, ... }:
{
environment.systemPackages = with pkgs; [
alsa-lib
alsa-utils
bc
cava
clang
clang-tools
cmake
fail2ban
feh
ffmpeg-full
fuse
fzf
git
gnumake
gst_all_1.gstreamer
htop
hyprland
hyprland-workspaces
hyprpaper
hyprpicker
imagemagick
inetutils
kitty
libclang
libcxx
lolcat
lsof
lua-language-server
luarocks
mesa
mpd
mullvad
neofetch
nix-index
nix-prefetch-scripts
nixos-option
nix-search-cli
openssl
p7zip
jq
pamixer
parted
pass
pavucontrol
pkg-config
playerctl
protonmail-bridge
protontricks
pyright
quintom-cursor-theme
socat
sox
stress
tor
tree
unrar
unzip
usbutils
vim
vscode-langservers-extracted
vulkan-loader
wget
wine
wl-clipboard
xpad
libnotify
];
}

View File

@@ -0,0 +1,20 @@
{ pkgs, ... }:
{
programs = {
steam.enable = true;
hyprland.enable = true;
zsh.enable = true;
nix-ld = {
enable = true;
libraries = with pkgs; [
stdenv.cc.cc
ffmpeg-full
];
};
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
};
}

View File

@@ -0,0 +1,18 @@
{ pkgs, ...}:
{
services = {
pipewire = {
enable = true;
pulse.enable = true;
wireplumber.enable = true;
alsa.enable = true;
alsa.support32Bit = true;
};
udev.enable = true;
dbus.enable = true;
mullvad-vpn.enable = true;
blueman.enable = true;
openssh.enable = true;
};
}

View File

@@ -0,0 +1,34 @@
{ pkgs, ... }:
{
system.stateVersion = "24.05";
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ];
substituters = [ "https://nix-gaming.cachix.org" ];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
environment = {
variables = {
XCURSOR_SIZE = "24";
PATH = "${pkgs.clang-tools}/bin:$PATH";
};
shells = with pkgs; [
zsh
bash
];
};
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
}

View File

@@ -0,0 +1,34 @@
{ config, inputs, pkgs, username, ... }:
{
imports = [ inputs.home-manager.nixosModules.home-manager ];
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
backupFileExtension = "backup";
extraSpecialArgs = { inherit inputs username; };
users.${username} = {
programs.home-manager.enable = true;
imports = [ ./../home ];
home = {
username = "${username}";
homeDirectory = "/home/${username}";
stateVersion = "24.05";
pointerCursor = {
name = "Quintom_Ink";
size = 36;
package = pkgs.quintom-cursor-theme;
};
};
};
};
users.users.${username} = {
isNormalUser = true;
shell = pkgs.zsh;
extraGroups = [ "wheel" ];
};
security.sudo.extraConfig = ''
${username} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/nixos-rebuild
'';
nix.settings.allowed-users = [ "${username}" ];
}