Add NixOS config
This commit is contained in:
commit
6020d64797
43 changed files with 1372 additions and 0 deletions
65
flake.lock
generated
Normal file
65
flake.lock
generated
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
{
|
||||
"nodes": {
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762463325,
|
||||
"narHash": "sha256-33YUsWpPyeBZEWrKQ2a1gkRZ7i0XCC/2MYpU6BVeQSU=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "0562fef070a1027325dd4ea10813d64d2c967b39",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1762463231,
|
||||
"narHash": "sha256-hv1mG5j5PTbnWbtHHomzTus77pIxsc4x8VrMjc7+/YE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "52113c4f5cfd1e823001310e56d9c8d0699a6226",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "master",
|
||||
"repo": "nixos-hardware",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1762363567,
|
||||
"narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
33
flake.nix
Normal file
33
flake.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
description = "My system configuration.";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ nixpkgs, home-manager, nixos-hardware, ... }:
|
||||
{
|
||||
nixosConfigurations.TARS = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./nixos/configuration.nix
|
||||
nixos-hardware.nixosModules.framework-amd-ai-300-series
|
||||
];
|
||||
};
|
||||
|
||||
homeConfigurations.zeph = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages."x86_64-linux";
|
||||
modules = [ ./home-manager/home.nix ];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
15
home-manager/home.nix
Normal file
15
home-manager/home.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ config, pkgs, lib, ... }: {
|
||||
imports = [
|
||||
./modules/bundle.nix
|
||||
];
|
||||
|
||||
home = {
|
||||
username = "zeph";
|
||||
homeDirectory = "/home/zeph";
|
||||
stateVersion = "25.05";
|
||||
|
||||
packages = with pkgs; [
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
14
home-manager/modules/bash.nix
Normal file
14
home-manager/modules/bash.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ config, pkgs, ...}: {
|
||||
# This is to launch fish interactively, to avoid problems
|
||||
# with fish's non-POSIX compliance
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
initExtra = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
fi
|
||||
'';
|
||||
};
|
||||
}
|
||||
14
home-manager/modules/bundle.nix
Normal file
14
home-manager/modules/bundle.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
imports = [
|
||||
./bash.nix
|
||||
./fish.nix
|
||||
./helix.nix
|
||||
./hypr/bundle.nix
|
||||
./mako.nix
|
||||
./fuzzel.nix
|
||||
./foot.nix
|
||||
./git.nix
|
||||
./starship.nix
|
||||
./desktop_overrides.nix
|
||||
];
|
||||
}
|
||||
46
home-manager/modules/desktop_overrides.nix
Normal file
46
home-manager/modules/desktop_overrides.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{pkgs, ...}: {
|
||||
# This file contains all the desktop entries that I don't want in my app finder,
|
||||
# either because I open them with shortcuts or because I never use them (but they come with an app)
|
||||
xdg.desktopEntries = {
|
||||
# I open this with a shortcut
|
||||
"thunar" = {
|
||||
name = "thunar";
|
||||
noDisplay = true;
|
||||
};
|
||||
# This is opened from inside thunar
|
||||
"thunar-settings" = {
|
||||
name = "thunar-settings";
|
||||
noDisplay = true;
|
||||
};
|
||||
# This comes installed with thunar and I don't want it
|
||||
"thunar-bulk-rename" = {
|
||||
name = "thunar-bulk-rename";
|
||||
noDisplay = true;
|
||||
};
|
||||
|
||||
# I open this with a shortcut
|
||||
"foot" = {
|
||||
name = "foot";
|
||||
noDisplay = true;
|
||||
};
|
||||
"foot-server" = {
|
||||
name = "foot-server";
|
||||
noDisplay = true;
|
||||
};
|
||||
"footclient" = {
|
||||
name = "footclient";
|
||||
noDisplay = true;
|
||||
};
|
||||
|
||||
|
||||
# Fixes missing icons
|
||||
"protonvpn-app" = {
|
||||
name = "Proton VPN";
|
||||
icon = "${pkgs.protonvpn-gui}/share/pixmaps/proton-vpn-logo.svg";
|
||||
};
|
||||
# "sioyek" = {
|
||||
# name = "Sioyek";
|
||||
# icon = "${pkgs.sioyek}/share/pixmaps/sioyek-linux-logo.png";
|
||||
# };
|
||||
};
|
||||
}
|
||||
23
home-manager/modules/fish.nix
Normal file
23
home-manager/modules/fish.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{ config, pkgs, ... }: {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting
|
||||
starship init fish | source
|
||||
'';
|
||||
shellAliases = let flakeDir = "~/nix"; in {
|
||||
rb = "sudo nixos-rebuild switch --flake ${flakeDir}";
|
||||
upg = "sudo nix flake update --flake ${flakeDir} && sudo nixos-rebuild switch --flake ${flakeDir}";
|
||||
hms = "home-manager switch --flake ${flakeDir}";
|
||||
ed = "hx ${flakeDir}";
|
||||
ff = "fastfetch -c neofetch";
|
||||
ls = "lsd";
|
||||
};
|
||||
shellAbbrs = {
|
||||
dcu = "podman-compose up";
|
||||
dcub = "podman-compose up --build";
|
||||
dcd = "podman-compose down";
|
||||
dcdv = "podman-compose down -v";
|
||||
};
|
||||
};
|
||||
}
|
||||
33
home-manager/modules/foot.nix
Normal file
33
home-manager/modules/foot.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ config, pkgs, ... }: {
|
||||
programs.foot.enable = true;
|
||||
programs.foot.settings = {
|
||||
main = {
|
||||
font = "IosevkaTerm Nerd Font Mono:size=12";
|
||||
font-italic = "IosevkaTerm Nerd Font Mono:size=12";
|
||||
};
|
||||
|
||||
colors = {
|
||||
alpha = 0.85;
|
||||
|
||||
# Gruvbox; copied from https://codeberg.org/dnkl/foot/src/branch/master/themes/gruvbox-dark
|
||||
background="282828";
|
||||
foreground="ebdbb2";
|
||||
regular0="282828";
|
||||
regular1="cc241d";
|
||||
regular2="98971a";
|
||||
regular3="d79921";
|
||||
regular4="458588";
|
||||
regular5="b16286";
|
||||
regular6="689d6a";
|
||||
regular7="a89984";
|
||||
bright0="928374";
|
||||
bright1="fb4934";
|
||||
bright2="b8bb26";
|
||||
bright3="fabd2f";
|
||||
bright4="83a598";
|
||||
bright5="d3869b";
|
||||
bright6="8ec07c";
|
||||
bright7="ebdbb2";
|
||||
};
|
||||
};
|
||||
}
|
||||
27
home-manager/modules/fuzzel.nix
Normal file
27
home-manager/modules/fuzzel.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ config, pkgs, ... }: {
|
||||
programs.fuzzel.enable = true;
|
||||
programs.fuzzel.settings = {
|
||||
main = {
|
||||
image-size-ratio = 1;
|
||||
cache = "/dev/null";
|
||||
};
|
||||
colors = {
|
||||
background = "#282828ff";
|
||||
text = "#ebdbb2ff";
|
||||
# prompt = "#d65d0eff";
|
||||
prompt = "#458588ff";
|
||||
placeholder = "#bdae93ff";
|
||||
input = "#d5c4a1ff";
|
||||
match = "#83a598ff";
|
||||
selection = "#504945ff";
|
||||
selection-text = "#fbf1c7ff";
|
||||
selection-match = "#fabd2fff";
|
||||
counter = "#928374ff";
|
||||
border = "#d65d0eff";
|
||||
};
|
||||
border = {
|
||||
width = 2;
|
||||
radius = 0;
|
||||
};
|
||||
};
|
||||
}
|
||||
17
home-manager/modules/git.nix
Normal file
17
home-manager/modules/git.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{ config, pkgs, ... }: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user.name = "Zeph Levy";
|
||||
user.email = "171337931+ZephLevy@users.noreply.github.com";
|
||||
core = {
|
||||
editor = "hx";
|
||||
};
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
credential.helper = "/run/current-system/sw/bin/git-credential-libsecret";
|
||||
pull.rebase = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
106
home-manager/modules/helix.nix
Normal file
106
home-manager/modules/helix.nix
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
{ config, pkgs, ...}: {
|
||||
programs.helix.enable = true;
|
||||
programs.helix.settings = {
|
||||
# theme = "everforest_dark";
|
||||
theme = "gruvbox";
|
||||
|
||||
editor = {
|
||||
mouse = true;
|
||||
auto-save = true;
|
||||
line-number = "relative";
|
||||
rulers = [ 100 ];
|
||||
cursorline = true;
|
||||
cursorcolumn = true;
|
||||
bufferline = "always";
|
||||
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
normal = "block";
|
||||
select = "underline";
|
||||
};
|
||||
|
||||
soft-wrap = {
|
||||
enable = true;
|
||||
wrap-indicator = "↩ ";
|
||||
};
|
||||
|
||||
whitespace = {
|
||||
render = {
|
||||
space = "all";
|
||||
tab = "all";
|
||||
newline = "none";
|
||||
};
|
||||
characters = {
|
||||
space = " ";
|
||||
nbsp = "⍽";
|
||||
tab = "→";
|
||||
tabpad = "·";
|
||||
newline = "⏎";
|
||||
};
|
||||
};
|
||||
|
||||
statusline = {
|
||||
left = [ "mode" "spinner" "diagnostics" ];
|
||||
center = [ "file-name" "separator" "version-control" "separator"];
|
||||
separator = "│";
|
||||
mode.normal = "NORMAL";
|
||||
mode.insert = "INSERT";
|
||||
mode.select = "SELECT";
|
||||
};
|
||||
|
||||
lsp.display-inlay-hints = false;
|
||||
|
||||
indent-guides = {
|
||||
render = true;
|
||||
character = "╎";
|
||||
skip-levels = 1;
|
||||
};
|
||||
|
||||
file-picker.hidden = false;
|
||||
};
|
||||
|
||||
keys = {
|
||||
normal = {
|
||||
l = "insert_mode";
|
||||
esc = ["collapse_selection" "keep_primary_selection"];
|
||||
n = "move_char_left";
|
||||
o = "move_char_right";
|
||||
e = "move_line_down";
|
||||
i = "move_line_up";
|
||||
q = "goto_line_end";
|
||||
h = "goto_line_start";
|
||||
j = "search_next";
|
||||
J = "search_prev";
|
||||
f = "open_below";
|
||||
F = "open_above";
|
||||
"C-o" = ":buffer-close-others";
|
||||
"C-x" = ":buffer-close";
|
||||
p = "paste_before";
|
||||
y = "yank_main_selection_to_clipboard";
|
||||
|
||||
up = "no_op";
|
||||
down = "no_op";
|
||||
left = "no_op";
|
||||
right = "no_op";
|
||||
};
|
||||
|
||||
select = {
|
||||
n = "extend_char_left";
|
||||
o = "extend_char_right";
|
||||
e = "extend_line_down";
|
||||
i = "extend_line_up";
|
||||
q = "goto_line_end";
|
||||
h = "goto_line_start";
|
||||
|
||||
up = "no_op";
|
||||
down = "no_op";
|
||||
left = "no_op";
|
||||
right = "no_op";
|
||||
};
|
||||
|
||||
insert = {
|
||||
"S-ret" = "open_below";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
12
home-manager/modules/hypr/bundle.nix
Normal file
12
home-manager/modules/hypr/bundle.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
imports = [
|
||||
./hyprpaper/hyprpaper.nix
|
||||
./hyprland.nix
|
||||
./hypridle.nix
|
||||
./hyprlock.nix
|
||||
./hyprsunset.nix
|
||||
./waybar.nix
|
||||
./theming.nix
|
||||
./cursor.nix
|
||||
];
|
||||
}
|
||||
3
home-manager/modules/hypr/cursor.nix
Normal file
3
home-manager/modules/hypr/cursor.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{ config, pkgs, ... }: {
|
||||
home.file.".icons/default".source = "${pkgs.capitaine-cursors}/share/icons/\"Capitaine Cursors (Gruvbox)\"";
|
||||
}
|
||||
8
home-manager/modules/hypr/hypridle.nix
Normal file
8
home-manager/modules/hypr/hypridle.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
services.hypridle.enable = true;
|
||||
services.hypridle.settings = {
|
||||
general = {
|
||||
before_sleep_cmd = "pidof hyprlock || hyprlock";
|
||||
};
|
||||
};
|
||||
}
|
||||
180
home-manager/modules/hypr/hyprland.nix
Normal file
180
home-manager/modules/hypr/hyprland.nix
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
{ config, pkgs, ... }: {
|
||||
wayland.windowManager.hyprland.enable = true;
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
|
||||
exec-once = [
|
||||
"hyprpaper" "systemctl --user start hyprpolkitagent"
|
||||
"hyprctl setcursor \"Capitaine Cursors (Gruvbox)\" 24"
|
||||
"swayosd-server"
|
||||
"hyprsunset"
|
||||
];
|
||||
|
||||
monitor = [
|
||||
"eDP-1,2880x1920@120,auto,auto"
|
||||
",preferred,auto,2,"
|
||||
];
|
||||
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 10;
|
||||
|
||||
border_size = 2;
|
||||
|
||||
"col.active_border" = "rgba(d65d0eff)";
|
||||
"col.inactive_border" = "rgba(181926ff)";
|
||||
|
||||
resize_on_border = false;
|
||||
allow_tearing = false;
|
||||
layout = "master";
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "slave";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 0;
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 1;
|
||||
vibrancy = 0.1696;
|
||||
};
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
|
||||
bezier = [
|
||||
"easeOutQuint,0.23,1,0.32,1"
|
||||
"easeInOutCubic,0.65,0.05,0.36,1"
|
||||
"linear,0,0,1,1"
|
||||
"almostLinear,0.5,0.5,0.75,1.0"
|
||||
"quick,0.15,0,0.1,1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
"global, 1, 10, default"
|
||||
"border, 1, 5.39, easeOutQuint"
|
||||
"windows, 1, 4.79, easeOutQuint"
|
||||
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
||||
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||
"fadeIn, 1, 1.73, almostLinear"
|
||||
"fadeOut, 1, 1.46, almostLinear"
|
||||
"fade, 1, 3.03, quick"
|
||||
"layers, 1, 3.81, easeOutQuint"
|
||||
"layersIn, 1, 4, easeOutQuint, fade"
|
||||
"layersOut, 1, 1.5, linear, fade"
|
||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||
"workspaces, 1, 1.94, almostLinear, fade"
|
||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||
];
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 0;
|
||||
disable_hyprland_logo = false;
|
||||
};
|
||||
|
||||
input = {
|
||||
kb_layout = "us,us";
|
||||
kb_variant = "colemak_dh_iso,";
|
||||
kb_options = "grp:alt_shift_toggle,compose:ralt";
|
||||
|
||||
follow_mouse = 1;
|
||||
sensitivity = -0.15;
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
disable_while_typing = false;
|
||||
};
|
||||
};
|
||||
|
||||
"$mainMod" = "SUPER";
|
||||
"$terminal" = "foot";
|
||||
"$fileManager" = "thunar";
|
||||
"$menu" = "fuzzel";
|
||||
|
||||
bind = [
|
||||
"$mainMod, RETURN, exec, $terminal"
|
||||
"$mainMod, Q, killactive,"
|
||||
"$mainMod, T, exec, $fileManager"
|
||||
"$mainMod, V, togglefloating,"
|
||||
"$mainMod, SPACE, exec, $menu"
|
||||
"$mainMod, P, pseudo,"
|
||||
"$mainMod, J, togglesplit,"
|
||||
"$mainMod, F, fullscreen, 0"
|
||||
|
||||
"$mainMod, N, movefocus, l"
|
||||
"$mainMod, O, movefocus, r"
|
||||
"$mainMod, I, movefocus, u"
|
||||
"$mainMod, E, movefocus, d"
|
||||
|
||||
"$mainMod, H, layoutmsg, swapwithmaster auto"
|
||||
"$mainMod, M, layoutmsg, cyclenext"
|
||||
"$mainMod, K, layoutmsg, cycleprev"
|
||||
"$mainMod SHIFT, M, layoutmsg, swapnext"
|
||||
"$mainMod SHIFT, K, layoutmsg, swapprev"
|
||||
|
||||
|
||||
"$mainMod, 1, workspace, 1"
|
||||
"$mainMod, 2, workspace, 2"
|
||||
"$mainMod, 3, workspace, 3"
|
||||
"$mainMod, 4, workspace, 4"
|
||||
|
||||
# Screenshots
|
||||
"$mainMod, 0, exec, hyprshot -m region --clipboard-only"
|
||||
"$mainMod SHIFT, 0, exec, hyprshot -m region"
|
||||
"$mainMod, 9, exec, hyprshot -m window --clipboard-only"
|
||||
"$mainMod SHIFT, 9, exec, hyprshot -m window"
|
||||
"$mainMod, 8, exec, hyprshot -m output --clipboard-only"
|
||||
"$mainMod SHIFT, 8, exec, hyprshot -m output"
|
||||
|
||||
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
||||
|
||||
|
||||
];
|
||||
|
||||
bindel = [
|
||||
",XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise"
|
||||
",XF86AudioLowerVolume, exec, swayosd-client --output-volume lower"
|
||||
",XF86AudioMute, exec, swayosd-client --output-volume mute-toggle"
|
||||
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||
",XF86MonBrightnessUp, exec, swayosd-client --brightness raise"
|
||||
",XF86MonBrightnessDown, exec, swayosd-client --brightness lower"
|
||||
];
|
||||
|
||||
bindl = [
|
||||
", XF86AudioNext, exec, playerctl next"
|
||||
", XF86AudioPause, exec, playerctl play-pause"
|
||||
", XF86AudioPlay, exec, playerctl play-pause"
|
||||
", XF86AudioPrev, exec, playerctl previous"
|
||||
];
|
||||
|
||||
|
||||
windowrule = [
|
||||
"suppressevent maximize, class:.*"
|
||||
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
|
||||
];
|
||||
};
|
||||
}
|
||||
82
home-manager/modules/hypr/hyprlock.nix
Normal file
82
home-manager/modules/hypr/hyprlock.nix
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
{
|
||||
programs.hyprlock.enable = true;
|
||||
programs.hyprlock.settings = {
|
||||
"$font" = "JetBrainsMono NF";
|
||||
|
||||
general = {
|
||||
hide_cursor = true;
|
||||
};
|
||||
|
||||
auth = {
|
||||
fingerprint = {
|
||||
enabled = true;
|
||||
ready_message = "Scan fingerprint to unlock";
|
||||
present_message = "Scanning...";
|
||||
retry_delay = 250;
|
||||
};
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [ "linear,1,1,0,0" ];
|
||||
animation = [
|
||||
"fadeIn, 1, 5, linear"
|
||||
"fadeOut, 1, 5, linear"
|
||||
"inputFieldDots, 1, 2, linear"
|
||||
];
|
||||
};
|
||||
|
||||
background = {
|
||||
path = "/home/zeph/nix/home-manager/modules/hypr/hyprpaper/wallpaper.png";
|
||||
blur_passes = 3;
|
||||
};
|
||||
|
||||
input-field = {
|
||||
size = "20%, 5%";
|
||||
outline_thickness = 3;
|
||||
inner_color = "rgba(0, 0, 0, 0.0)";
|
||||
|
||||
outer_color = "rgba(d65d0eff) rgba(d6740eff) 45deg";
|
||||
check_color = "rgba(00ff99ee) rgba(ff6633ee) 45deg";
|
||||
fail_color = "rgba(ff6633ee) rgba(ff0066ee) 40deg";
|
||||
|
||||
font_color = "rgb(143, 143, 143)";
|
||||
fade_on_empty = false;
|
||||
rounding = 0;
|
||||
|
||||
font_family = "$font";
|
||||
placeholder_text = "Input password...";
|
||||
fail_text = "$PAMFAIL";
|
||||
position = "0, -20";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
};
|
||||
|
||||
label = [
|
||||
{
|
||||
text = "$TIME";
|
||||
font_size = 90;
|
||||
font_family = "$font";
|
||||
position = "-30, 0";
|
||||
halign = "right";
|
||||
valign = "top";
|
||||
}
|
||||
{
|
||||
text = "cmd[update:60000] date +\"%A, %d %B %Y\"";
|
||||
font_size = 25;
|
||||
font_family = "$font";
|
||||
position = "-30, -150";
|
||||
halign = "right";
|
||||
valign = "top";
|
||||
}
|
||||
{
|
||||
text = "<i>Hello, Zeph.</i>";
|
||||
font_size = 50;
|
||||
font_family = "$font";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
position = "0, 5%";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
12
home-manager/modules/hypr/hyprpaper/hyprpaper.nix
Normal file
12
home-manager/modules/hypr/hyprpaper/hyprpaper.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{ config, pkgs, ... }: {
|
||||
services.hyprpaper.enable = true;
|
||||
services.hyprpaper.settings = {
|
||||
preload = [
|
||||
"/home/zeph/nix/home-manager/modules/hypr/hyprpaper/wallpaper.png"
|
||||
];
|
||||
|
||||
wallpaper = [
|
||||
", /home/zeph/nix/home-manager/modules/hypr/hyprpaper/wallpaper.png"
|
||||
];
|
||||
};
|
||||
}
|
||||
BIN
home-manager/modules/hypr/hyprpaper/wallpaper.png
Normal file
BIN
home-manager/modules/hypr/hyprpaper/wallpaper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 132 KiB |
16
home-manager/modules/hypr/hyprsunset.nix
Normal file
16
home-manager/modules/hypr/hyprsunset.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
services.hyprsunset.enable = true;
|
||||
services.hyprsunset.settings = {
|
||||
profile = [
|
||||
{
|
||||
time = "7:30";
|
||||
identity = true;
|
||||
}
|
||||
{
|
||||
time = "20:00";
|
||||
temperature = 5000;
|
||||
gamma = 0.8;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
48
home-manager/modules/hypr/theming.nix
Normal file
48
home-manager/modules/hypr/theming.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
package = pkgs.gruvbox-gtk-theme;
|
||||
name = "Gruvbox-Dark";
|
||||
};
|
||||
iconTheme = {
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
name = "Adwaita";
|
||||
};
|
||||
cursorTheme = {
|
||||
package = pkgs.capitaine-cursors;
|
||||
name = "Capitaine Cursors (Gruvbox)";
|
||||
size = 24;
|
||||
};
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "gtk";
|
||||
};
|
||||
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
gtk-theme = "Gruvbox-Dark";
|
||||
icon-theme = "Adwaita";
|
||||
cursor-theme = "Capitaine Cursors (Gruvbox)";
|
||||
cursor-size = 24;
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
XCURSOR_THEME = "Capitaine Cursors (Gruvbox)";
|
||||
XCURSOR_SIZE = "24";
|
||||
HYPRCURSOR_SIZE = "24";
|
||||
|
||||
GTK_THEME = "Gruvbox-Dark";
|
||||
|
||||
NIXOS_OZONE_WL = "1";
|
||||
ELECTRON_OZONE_PLATFORM_HINT = "wayland";
|
||||
GDK_BACKEND = "wayland";
|
||||
|
||||
};
|
||||
}
|
||||
138
home-manager/modules/hypr/waybar.nix
Normal file
138
home-manager/modules/hypr/waybar.nix
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
{ config, pkgs, ... }: {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 26;
|
||||
|
||||
modules-left = [ "hyprland/workspaces" ];
|
||||
modules-center = [ "clock" ];
|
||||
modules-right = [ "cpu" "memory" "temperature" "battery" ];
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
disable-scroll = true;
|
||||
all-outputs = true;
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
"1" = "";
|
||||
"2" = "";
|
||||
"3" = "";
|
||||
"4" = "";
|
||||
active = "•";
|
||||
default = "";
|
||||
};
|
||||
persistent-workspaces."*" = 4;
|
||||
};
|
||||
|
||||
"clock" = {
|
||||
# format = " {:%a %d %b %H:%M}";
|
||||
format = " {:%H:%M:%S}";
|
||||
tooltip-format = " {:%a, %d %b}";
|
||||
interval = 1;
|
||||
};
|
||||
|
||||
"cpu" = {
|
||||
format = " {usage: >3}%";
|
||||
};
|
||||
|
||||
"memory" = {
|
||||
format = " {used:0.1f}G";
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
"temperature" = {
|
||||
format = " {temperatureC}°C";
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
"battery" = {
|
||||
states = {
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{icon} {capacity}%";
|
||||
format-icons = [ "" "" "" "" "" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
style = ''
|
||||
/* Gruvbox palette */
|
||||
@define-color bg #282828;
|
||||
@define-color bg1 #3c3836;
|
||||
@define-color fg #ebdbb2;
|
||||
@define-color red #cc241d;
|
||||
@define-color green #98971a;
|
||||
@define-color yellow #d79921;
|
||||
@define-color blue #458588;
|
||||
@define-color purple #b16286;
|
||||
@define-color aqua #689d6a;
|
||||
@define-color orange #d65d0e;
|
||||
|
||||
* {
|
||||
font-family: "JetBrainsMono Nerd Font", monospace;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
color: @fg;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* All modules have boxy container */
|
||||
#workspaces,
|
||||
#clock,
|
||||
#cpu,
|
||||
#memory,
|
||||
#temperature,
|
||||
#battery {
|
||||
background-color: @bg1;
|
||||
margin: 6px 4px; /* keep normal spacing between modules */
|
||||
padding: 4px 8px; /* module padding stays same */
|
||||
border: 2px solid @orange;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin-left: 10px
|
||||
}
|
||||
|
||||
#battery {
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
/* Workspaces buttons */
|
||||
#workspaces button {
|
||||
color: @fg;
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0 6px; /* normal spacing between workspace buttons */
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
color: @yellow;
|
||||
background: none;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: @orange;
|
||||
}
|
||||
|
||||
#clock { color: @blue; }
|
||||
#cpu { color: @green; }
|
||||
#memory { color: @purple; }
|
||||
#temperature { color: @aqua; }
|
||||
#temperature.critical { color: @red; }
|
||||
#battery { color: @fg; }
|
||||
#battery.charging { color: @blue; }
|
||||
#battery.critical:not(.charging) { color: @red; }
|
||||
'';
|
||||
};
|
||||
}
|
||||
43
home-manager/modules/mako.nix
Normal file
43
home-manager/modules/mako.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
services.mako = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
font = "Monospace 10";
|
||||
anchor = "top-right";
|
||||
# margin = "10,40"; # right=10px, top=40px
|
||||
width = 320;
|
||||
height = 70;
|
||||
padding = 10;
|
||||
border-size = 2;
|
||||
default-timeout = 8000;
|
||||
|
||||
background-color = "#282828";
|
||||
text-color = "#ebdbb2";
|
||||
border-color = "#458588";
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
[urgency=low]
|
||||
background-color=#3c3836
|
||||
text-color=#ebdbb2
|
||||
border-color=#928374
|
||||
default-timeout=6000
|
||||
|
||||
[urgency=normal]
|
||||
background-color=#282828
|
||||
text-color=#ebdbb2
|
||||
border-color=#458588
|
||||
default-timeout=8000
|
||||
|
||||
[urgency=critical]
|
||||
background-color=#cc241d
|
||||
text-color=#282828
|
||||
border-color=#fb4934
|
||||
default-timeout=0
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
127
home-manager/modules/starship.nix
Normal file
127
home-manager/modules/starship.nix
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
{ config, pkgs, lib, ... }: {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
"$schema" = "https://starship.rs/config-schema.json";
|
||||
|
||||
format = lib.concatStrings [
|
||||
" "
|
||||
"[](color_orange)"
|
||||
"$os"
|
||||
"$username"
|
||||
"[](bg:color_yellow fg:color_orange)"
|
||||
"$directory"
|
||||
"[](fg:color_yellow bg:color_aqua)"
|
||||
"$git_branch"
|
||||
"$git_status"
|
||||
"[](fg:color_aqua bg:color_blue)"
|
||||
"$rust"
|
||||
"$golang"
|
||||
"$nodejs"
|
||||
"$python"
|
||||
"[](fg:color_blue bg:color_bg3)"
|
||||
"$conda"
|
||||
"$pixi"
|
||||
"[](fg:color_bg3 bg:color_bg1)"
|
||||
"$time"
|
||||
"[ ](fg:color_bg1)"
|
||||
"$line_break"
|
||||
" "
|
||||
"$character"
|
||||
];
|
||||
|
||||
palette = "gruvbox_dark";
|
||||
|
||||
palettes = {
|
||||
gruvbox_dark = {
|
||||
color_fg0 = "#fbf1c7";
|
||||
color_bg1 = "#3c3836";
|
||||
color_bg3 = "#665c54";
|
||||
color_blue = "#458588";
|
||||
color_aqua = "#689d6a";
|
||||
color_green = "#98971a";
|
||||
color_orange = "#d65d0e";
|
||||
color_purple = "#b16286";
|
||||
color_red = "#cc241d";
|
||||
color_yellow = "#d79921";
|
||||
};
|
||||
};
|
||||
|
||||
os = {
|
||||
disabled = false;
|
||||
style = "bg:color_orange fg:color_fg0";
|
||||
symbols = {
|
||||
NixOS = "";
|
||||
};
|
||||
};
|
||||
|
||||
username = {
|
||||
show_always = true;
|
||||
style_user = "bg:color_orange fg:color_fg0";
|
||||
style_root = "bg:color_orange fg:color_fg0";
|
||||
format = "[ $user ]($style)";
|
||||
};
|
||||
|
||||
directory = {
|
||||
style = "fg:color_fg0 bg:color_yellow";
|
||||
format = "[ $path ]($style)";
|
||||
truncation_length = 3;
|
||||
truncation_symbol = "…/";
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
symbol = "";
|
||||
style = "bg:color_aqua";
|
||||
format = "[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)";
|
||||
};
|
||||
|
||||
git_status = {
|
||||
style = "bg:color_aqua";
|
||||
format = "[[($all_status$ahead_behind )](fg:color_fg0 bg:color_aqua)]($style)";
|
||||
};
|
||||
|
||||
nodejs = {
|
||||
symbol = "";
|
||||
style = "bg:color_blue";
|
||||
format = "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
|
||||
};
|
||||
rust = {
|
||||
symbol = "";
|
||||
style = "bg:color_blue";
|
||||
format = "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
|
||||
};
|
||||
golang = {
|
||||
symbol = "";
|
||||
style = "bg:color_blue";
|
||||
format = "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
|
||||
};
|
||||
python = {
|
||||
symbol = "";
|
||||
style = "bg:color_blue";
|
||||
format = "[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)";
|
||||
};
|
||||
|
||||
time = {
|
||||
disabled = false;
|
||||
time_format = "%R";
|
||||
style = "bg:color_bg1";
|
||||
format = "[[ $time ](fg:color_fg0 bg:color_bg1)]($style)";
|
||||
};
|
||||
|
||||
line_break = { disabled = false; };
|
||||
|
||||
character = {
|
||||
disabled = false;
|
||||
success_symbol = "[❯](bold fg:color_green)";
|
||||
error_symbol = "[❯](bold fg:color_red)";
|
||||
vimcmd_symbol = "[](bold fg:color_green)";
|
||||
vimcmd_replace_one_symbol = "[](bold fg:color_purple)";
|
||||
vimcmd_replace_symbol = "[](bold fg:color_purple)";
|
||||
vimcmd_visual_symbol = "[](bold fg:color_yellow)";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
53
nixos/configuration.nix
Normal file
53
nixos/configuration.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page, on
|
||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
./pkgs.nix
|
||||
./fonts.nix
|
||||
./modules/bundle.nix
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
networking.hostName = "TARS";
|
||||
networking.networkmanager.enable = true;
|
||||
networking.firewall.checkReversePath = "loose";
|
||||
|
||||
time.timeZone = "Europe/Paris";
|
||||
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
keyMap = "mod-dh-iso-us";
|
||||
};
|
||||
|
||||
|
||||
# I need to figure out how this works
|
||||
# services.printing.enable = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
services.pipewire.wireplumber.extraConfig.no-ucm = {
|
||||
"monitor.alsa.properties" = {
|
||||
"alsa.use-ucm" = false;
|
||||
};
|
||||
};
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
system.stateVersion = "25.05";
|
||||
}
|
||||
|
||||
6
nixos/fonts.nix
Normal file
6
nixos/fonts.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
fonts.packages = with pkgs; [
|
||||
nerd-fonts.iosevka-term
|
||||
nerd-fonts.jetbrains-mono
|
||||
];
|
||||
}
|
||||
45
nixos/hardware-configuration.nix
Normal file
45
nixos/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# 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, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ "dm-snapshot" "cryptd" ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-label/NixOS-Root";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-label/NixOS-Encrypted";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-label/NixOS-Boot";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/swapfile";
|
||||
size = 8 * 1024;
|
||||
}
|
||||
];
|
||||
|
||||
# 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.wlp192s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
5
nixos/modules/brightness.nix
Normal file
5
nixos/modules/brightness.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
services.udev.extraRules = ''
|
||||
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="amdgpu_bl1", GROUP="video", MODE="0660"
|
||||
'';
|
||||
}
|
||||
16
nixos/modules/bundle.nix
Normal file
16
nixos/modules/bundle.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
imports = [
|
||||
./hypr/bundle.nix
|
||||
./steam.nix
|
||||
./waybar.nix
|
||||
./user.nix
|
||||
./brightness.nix
|
||||
./fingerprint.nix
|
||||
./rebinding.nix
|
||||
./foot.nix
|
||||
./git.nix
|
||||
./thunderbird.nix
|
||||
./lidswitch.nix
|
||||
];
|
||||
}
|
||||
|
||||
3
nixos/modules/fingerprint.nix
Normal file
3
nixos/modules/fingerprint.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
services.fprintd.enable = true;
|
||||
}
|
||||
7
nixos/modules/foot.nix
Normal file
7
nixos/modules/foot.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
}
|
||||
6
nixos/modules/git.nix
Normal file
6
nixos/modules/git.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
# For libsecret
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
security.pam.services.login.enableGnomeKeyring = true;
|
||||
security.pam.services.hyprlock.enableGnomeKeyring = true;
|
||||
}
|
||||
6
nixos/modules/hypr/bundle.nix
Normal file
6
nixos/modules/hypr/bundle.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./hyprland.nix
|
||||
./hyprlock.nix
|
||||
];
|
||||
}
|
||||
5
nixos/modules/hypr/hyprland.nix
Normal file
5
nixos/modules/hypr/hyprland.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{ pkgs, ...}: {
|
||||
programs.hyprland.enable = true;
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
}
|
||||
|
||||
4
nixos/modules/hypr/hyprlock.nix
Normal file
4
nixos/modules/hypr/hyprlock.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
programs.hyprlock.enable = true;
|
||||
services.hypridle.enable = true;
|
||||
}
|
||||
4
nixos/modules/lidswitch.nix
Normal file
4
nixos/modules/lidswitch.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
services.logind.settings.Login.HandleLidSwitch = "suspend";
|
||||
services.logind.settings.Login.HandleLidSwitchDocked = "ignore";
|
||||
}
|
||||
14
nixos/modules/rebinding.nix
Normal file
14
nixos/modules/rebinding.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ pkgs, ... }: {
|
||||
services.keyd.enable = true;
|
||||
|
||||
services.keyd.keyboards = {
|
||||
default = {
|
||||
ids = [ "*" ];
|
||||
settings = {
|
||||
main = {
|
||||
capslock = "overload(control, esc)";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
4
nixos/modules/regreet.nix
Normal file
4
nixos/modules/regreet.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
programs.regreet.enable = true;
|
||||
security.pam.services.greetd.enableGnomeKeyring = true;
|
||||
}
|
||||
3
nixos/modules/steam.nix
Normal file
3
nixos/modules/steam.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{ lib, pkgs, ... }: {
|
||||
programs.steam.enable = true;
|
||||
}
|
||||
3
nixos/modules/thunderbird.nix
Normal file
3
nixos/modules/thunderbird.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
programs.thunderbird.enable = true;
|
||||
}
|
||||
31
nixos/modules/user.nix
Normal file
31
nixos/modules/user.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ pkgs, ...} : {
|
||||
programs.fish.enable = true;
|
||||
documentation.man.generateCaches = false;
|
||||
|
||||
# virtualisation.docker.enable = true;
|
||||
virtualisation.containers.enable = true;
|
||||
virtualisation = {
|
||||
podman = {
|
||||
enable = true;
|
||||
|
||||
dockerCompat = true;
|
||||
defaultNetwork.settings = { dns_enabled = true; };
|
||||
};
|
||||
};
|
||||
|
||||
users = {
|
||||
defaultUserShell = pkgs.bash;
|
||||
users.zeph = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
"video"
|
||||
"kvm"
|
||||
"docker"
|
||||
];
|
||||
packages = with pkgs; [];
|
||||
};
|
||||
};
|
||||
services.fwupd.enable = true;
|
||||
}
|
||||
3
nixos/modules/waybar.nix
Normal file
3
nixos/modules/waybar.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
programs.waybar.enable = true;
|
||||
}
|
||||
11
nixos/modules/xfce.nix
Normal file
11
nixos/modules/xfce.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, ... }: {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
desktopManager.xfce.enable = true;
|
||||
# Don't start on boot
|
||||
displayManager.startx = {
|
||||
enable = true;
|
||||
generateScript = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
81
nixos/pkgs.nix
Normal file
81
nixos/pkgs.nix
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
{ pkgs, lib, config, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Editors
|
||||
helix
|
||||
vim
|
||||
sioyek
|
||||
|
||||
# Dev stuff
|
||||
podman-compose
|
||||
gitFull
|
||||
go-swag
|
||||
gcc
|
||||
go
|
||||
gopls
|
||||
nixd
|
||||
# texlive.combined.scheme-medium
|
||||
(pkgs.texlive.combine { inherit (pkgs.texlive) scheme-medium csvsimple; })
|
||||
texlab
|
||||
typst
|
||||
tinymist
|
||||
ffmpeg
|
||||
altair
|
||||
|
||||
# Rust toolchain
|
||||
cargo
|
||||
cargo-cache
|
||||
rust-analyzer
|
||||
rustc
|
||||
rustfmt
|
||||
clippy
|
||||
|
||||
# System stuff
|
||||
xfce.thunar-bare
|
||||
fprintd
|
||||
rclone
|
||||
unzip
|
||||
brightnessctl
|
||||
wl-clipboard
|
||||
fastfetch
|
||||
starship
|
||||
home-manager
|
||||
capitaine-cursors-themed
|
||||
# adwaita-icon-theme
|
||||
libsecret
|
||||
lsd
|
||||
protonvpn-gui
|
||||
wireguard-tools
|
||||
|
||||
# Internet
|
||||
librewolf
|
||||
bitwarden-desktop
|
||||
# ente-auth
|
||||
signal-desktop
|
||||
strawberry
|
||||
|
||||
# Office (and fun)
|
||||
godot
|
||||
libreoffice
|
||||
mpv
|
||||
gimp
|
||||
|
||||
# Important hypr* things
|
||||
fuzzel
|
||||
hyprpaper
|
||||
hyprpolkitagent
|
||||
hyprsunset
|
||||
hyprshot
|
||||
mako
|
||||
swayosd
|
||||
];
|
||||
|
||||
# Unfree pkgs
|
||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||
"steam"
|
||||
"steam-original"
|
||||
"steam-unwrapped"
|
||||
"steam-run"
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue