Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0e5c17fe5b | ||
![]() |
1808004efe | ||
![]() |
8f009006f9 | ||
![]() |
1f6e2b3a64 | ||
![]() |
d20945d5f3 | ||
![]() |
6a18670749 |
8
flake.lock
generated
8
flake.lock
generated
@ -38,16 +38,16 @@
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1711668574,
|
||||
"narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=",
|
||||
"lastModified": 1724531977,
|
||||
"narHash": "sha256-XROVLf9ti4rrNCFLr+DmXRZtPjCQTW4cYy59owTEmxk=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659",
|
||||
"rev": "2527da1ef492c495d5391f3bcf9c1dd9f4514e32",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-23.11",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -39,16 +39,16 @@
|
||||
forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
|
||||
overlays = import ./overlays {inherit inputs;};
|
||||
nixosConfigurations = {
|
||||
m3-kratos = nixpkgs.lib.nixosSystem {
|
||||
m3-kratos-vm = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs outputs;};
|
||||
modules = [./hosts/m3-kratos];
|
||||
};
|
||||
};
|
||||
homeConfigurations = {
|
||||
"m3tam3re@m3tam3re" = home-manager.lib.homeManagerConfiguration {
|
||||
"m3tam3re@m3-kratos-vm" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages."x86_64-linux";
|
||||
extraSpecialArgs = {inherit inputs outputs;};
|
||||
modules = [./home/m3tam3re/m3tam3re.nix];
|
||||
modules = [./home/m3tam3re/m3-kratos.nix];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,4 +1,10 @@
|
||||
{ config, lib, outputs, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
outputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
nixpkgs = {
|
||||
# You can add overlays here
|
||||
overlays = [
|
||||
@ -29,7 +35,7 @@
|
||||
nix = {
|
||||
package = lib.mkDefault pkgs.nix;
|
||||
settings = {
|
||||
experimental-features = [ "nix-command" "flakes" "repl-flake" ];
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
warn-dirty = false;
|
||||
};
|
||||
};
|
||||
|
33
home/features/cli/default.nix
Normal file
33
home/features/cli/default.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./fish.nix
|
||||
./fzf.nix
|
||||
./neofetch.nix
|
||||
];
|
||||
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
extraOptions = ["-l" "--icons" "--git" "-a"];
|
||||
};
|
||||
|
||||
programs.bat = {enable = true;};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
coreutils
|
||||
fd
|
||||
htop
|
||||
httpie
|
||||
jq
|
||||
procs
|
||||
ripgrep
|
||||
tldr
|
||||
zip
|
||||
];
|
||||
}
|
32
home/features/cli/fish.nix
Normal file
32
home/features/cli/fish.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.features.cli.fish;
|
||||
in {
|
||||
options.features.cli.fish.enable = mkEnableOption "enable extended fish configuration";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
loginShellInit = ''
|
||||
set -x NIX_PATH nixpkgs=channel:nixos-unstable
|
||||
set -x NIX_LOG info
|
||||
set -x TERMINAL kitty
|
||||
|
||||
if test (tty) = "/dev/tty1"
|
||||
exec Hyprland &> /dev/null
|
||||
end
|
||||
'';
|
||||
shellAbbrs = {
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../..";
|
||||
ls = "eza";
|
||||
grep = "rg";
|
||||
ps = "procs";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
38
home/features/cli/fzf.nix
Normal file
38
home/features/cli/fzf.nix
Normal file
@ -0,0 +1,38 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.features.cli.fzf;
|
||||
in {
|
||||
options.features.cli.fzf.enable = mkEnableOption "enable fuzzy finder";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
|
||||
colors = {
|
||||
"fg" = "#f8f8f2";
|
||||
"bg" = "#282a36";
|
||||
"hl" = "#bd93f9";
|
||||
"fg+" = "#f8f8f2";
|
||||
"bg+" = "#44475a";
|
||||
"hl+" = "#bd93f9";
|
||||
"info" = "#ffb86c";
|
||||
"prompt" = "#50fa7b";
|
||||
"pointer" = "#ff79c6";
|
||||
"marker" = "#ff79c6";
|
||||
"spinner" = "#ffb86c";
|
||||
"header" = "#6272a4";
|
||||
};
|
||||
defaultOptions = [
|
||||
"--preview='bat --color=always -n {}'"
|
||||
"--bind 'ctrl-/:toggle-preview'"
|
||||
];
|
||||
defaultCommand = "fd --type f --exclude .git --follow --hidden";
|
||||
changeDirWidgetCommand = "fd --type d --exclude .git --follow --hidden";
|
||||
};
|
||||
};
|
||||
}
|
15
home/features/cli/neofetch.nix
Normal file
15
home/features/cli/neofetch.nix
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.features.cli.neofetch;
|
||||
in {
|
||||
options.features.cli.neofetch.enable = mkEnableOption "enable neofetch";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [neofetch];
|
||||
};
|
||||
}
|
9
home/features/desktop/default.nix
Normal file
9
home/features/desktop/default.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./hyprland.nix
|
||||
./wayland.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
];
|
||||
}
|
188
home/features/desktop/hyprland.nix
Normal file
188
home/features/desktop/hyprland.nix
Normal file
@ -0,0 +1,188 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.features.desktop.hyprland;
|
||||
in {
|
||||
options.features.desktop.hyprland.enable = mkEnableOption "hyprland config";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
settings = {
|
||||
xwayland = {
|
||||
force_zero_scaling = true;
|
||||
};
|
||||
|
||||
exec-once = [
|
||||
"waybar"
|
||||
"hyprpaper"
|
||||
"hypridle"
|
||||
"wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\""
|
||||
];
|
||||
|
||||
env = [
|
||||
"XCURSOR_SIZE,32"
|
||||
"WLR_NO_HARDWARE_CURSORS,1"
|
||||
"GTK_THEME,Dracula"
|
||||
];
|
||||
|
||||
input = {
|
||||
kb_layout = "de,us";
|
||||
kb_variant = "";
|
||||
kb_model = "";
|
||||
kb_rules = "";
|
||||
kb_options = "ctrl:nocaps";
|
||||
follow_mouse = 1;
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
};
|
||||
|
||||
sensitivity = 0;
|
||||
};
|
||||
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 5;
|
||||
border_size = 1;
|
||||
"col.active_border" = "rgba(9742b5ee) rgba(9742b5ee) 45deg";
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
"col.shadow" = "rgba(1E202966)";
|
||||
drop_shadow = true;
|
||||
shadow_range = 60;
|
||||
shadow_offset = "1 2";
|
||||
shadow_render_power = 3;
|
||||
shadow_scale = 0.97;
|
||||
rounding = 8;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 3;
|
||||
};
|
||||
active_opacity = 0.9;
|
||||
inactive_opacity = 0.5;
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
||||
animation = [
|
||||
"windows, 1, 7, myBezier"
|
||||
"windowsOut, 1, 7, default, popin 80%"
|
||||
"border, 1, 10, default"
|
||||
"borderangle, 1, 8, default"
|
||||
"fade, 1, 7, default"
|
||||
"workspaces, 1, 6, default"
|
||||
];
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
master = {};
|
||||
|
||||
gestures = {
|
||||
workspace_swipe = false;
|
||||
};
|
||||
|
||||
windowrule = [
|
||||
"float, file_progress"
|
||||
"float, confirm"
|
||||
"float, dialog"
|
||||
"float, download"
|
||||
"float, notification"
|
||||
"float, error"
|
||||
"float, splash"
|
||||
"float, confirmreset"
|
||||
"float, title:Open File"
|
||||
"float, title:branchdialog"
|
||||
"float, Lxappearance"
|
||||
"float, Wofi"
|
||||
"float, dunst"
|
||||
"animation none,Wofi"
|
||||
"float,viewnior"
|
||||
"float,feh"
|
||||
"float, pavucontrol-qt"
|
||||
"float, pavucontrol"
|
||||
"float, file-roller"
|
||||
"fullscreen, wlogout"
|
||||
"float, title:wlogout"
|
||||
"fullscreen, title:wlogout"
|
||||
"idleinhibit focus, mpv"
|
||||
"idleinhibit fullscreen, firefox"
|
||||
"float, title:^(Media viewer)$"
|
||||
"float, title:^(Volume Control)$"
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"size 800 600, title:^(Volume Control)$"
|
||||
"move 75 44%, title:^(Volume Control)$"
|
||||
];
|
||||
|
||||
"$mainMod" = "SUPER";
|
||||
|
||||
bind = [
|
||||
"$mainMod, return, exec, kitty -e zellij-ps"
|
||||
"$mainMod, t, exec, kitty -e fish -c 'neofetch; exec fish'"
|
||||
"$mainMod SHIFT, e, exec, kitty -e zellij_nvim"
|
||||
"$mainMod, o, exec, thunar"
|
||||
"$mainMod, Escape, exec, wlogout -p layer-shell"
|
||||
"$mainMod, Space, togglefloating"
|
||||
"$mainMod, q, killactive"
|
||||
"$mainMod, M, exit"
|
||||
"$mainMod, F, fullscreen"
|
||||
"$mainMod, V, togglefloating"
|
||||
"$mainMod, D, exec, wofi --show drun --allow-images"
|
||||
"$mainMod SHIFT, S, exec, bemoji"
|
||||
"$mainMod, P, exec, wofi-pass"
|
||||
"$mainMod SHIFT, P, pseudo"
|
||||
"$mainMod, J, togglesplit"
|
||||
"$mainMod, left, movefocus, l"
|
||||
"$mainMod, right, movefocus, r"
|
||||
"$mainMod, up, movefocus, u"
|
||||
"$mainMod, down, movefocus, d"
|
||||
"$mainMod, 1, workspace, 1"
|
||||
"$mainMod, 2, workspace, 2"
|
||||
"$mainMod, 3, workspace, 3"
|
||||
"$mainMod, 4, workspace, 4"
|
||||
"$mainMod, 5, workspace, 5"
|
||||
"$mainMod, 6, workspace, 6"
|
||||
"$mainMod, 7, workspace, 7"
|
||||
"$mainMod, 8, workspace, 8"
|
||||
"$mainMod, 9, workspace, 9"
|
||||
"$mainMod, 0, workspace, 10"
|
||||
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mainMod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mainMod SHIFT, 6, movetoworkspace, 6"
|
||||
"$mainMod SHIFT, 7, movetoworkspace, 7"
|
||||
"$mainMod SHIFT, 8, movetoworkspace, 8"
|
||||
"$mainMod SHIFT, 9, movetoworkspace, 9"
|
||||
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
||||
"$mainMod, mouse_down, workspace, e+1"
|
||||
"$mainMod, mouse_up, workspace, e-1"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
windowrulev2 = [
|
||||
"workspace 1,class:(Emacs)"
|
||||
"workspace 3,opacity 1.0, class:(brave-browser)"
|
||||
"workspace 4,class:(com.obsproject.Studio)"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
251
home/features/desktop/wayland.nix
Normal file
251
home/features/desktop/wayland.nix
Normal file
@ -0,0 +1,251 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.features.desktop.wayland;
|
||||
in {
|
||||
options.features.desktop.wayland.enable = mkEnableOption "wayland extra tools and config";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
style = ''
|
||||
@define-color background-darker rgba(30, 31, 41, 230);
|
||||
@define-color background #282a36;
|
||||
@define-color selection #44475a;
|
||||
@define-color foreground #f8f8f2;
|
||||
@define-color comment #6272a4;
|
||||
@define-color cyan #8be9fd;
|
||||
@define-color green #50fa7b;
|
||||
@define-color orange #ffb86c;
|
||||
@define-color pink #ff79c6;
|
||||
@define-color purple #bd93f9;
|
||||
@define-color red #ff5555;
|
||||
@define-color yellow #f1fa8c;
|
||||
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: FiraCode Nerd Font;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: rgba(21, 18, 27, 0);
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: #1e1e2e;
|
||||
border-radius: 10px;
|
||||
border-width: 2px;
|
||||
border-style: solid;
|
||||
border-color: #11111b;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 5px;
|
||||
color: #313244;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: #11111b;
|
||||
background: #a6e3a1;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
color: #a6adc8;
|
||||
background: #eba0ac;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: #11111b;
|
||||
background: #a6e3a1;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: #11111b;
|
||||
color: #cdd6f4;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#custom-language,
|
||||
#custom-updates,
|
||||
#custom-caffeine,
|
||||
#custom-weather,
|
||||
#window,
|
||||
#clock,
|
||||
#battery,
|
||||
#pulseaudio,
|
||||
#network,
|
||||
#workspaces,
|
||||
#tray,
|
||||
#backlight {
|
||||
background: #1e1e2e;
|
||||
padding: 0px 10px;
|
||||
margin: 3px 0px;
|
||||
margin-top: 10px;
|
||||
border: 1px solid #181825;
|
||||
}
|
||||
|
||||
#tray {
|
||||
border-radius: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background: #1e1e2e;
|
||||
border-radius: 10px;
|
||||
margin-left: 10px;
|
||||
padding-right: 0px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
#custom-caffeine {
|
||||
color: #89dceb;
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
border-right: 0px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
#custom-language {
|
||||
color: #f38ba8;
|
||||
border-left: 0px;
|
||||
border-right: 0px;
|
||||
}
|
||||
|
||||
#custom-updates {
|
||||
color: #f5c2e7;
|
||||
border-left: 0px;
|
||||
border-right: 0px;
|
||||
}
|
||||
|
||||
#window {
|
||||
border-radius: 10px;
|
||||
margin-left: 60px;
|
||||
margin-right: 60px;
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: #fab387;
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
margin-left: 0px;
|
||||
border-right: 0px;
|
||||
}
|
||||
|
||||
#network {
|
||||
color: #f9e2af;
|
||||
border-left: 0px;
|
||||
border-right: 0px;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: #89b4fa;
|
||||
border-left: 0px;
|
||||
border-right: 0px;
|
||||
}
|
||||
|
||||
#pulseaudio.microphone {
|
||||
color: #cba6f7;
|
||||
border-left: 0px;
|
||||
border-right: 0px;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: #a6e3a1;
|
||||
border-radius: 0 10px 10px 0;
|
||||
margin-right: 10px;
|
||||
border-left: 0px;
|
||||
}
|
||||
|
||||
#custom-weather {
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
border-right: 0px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
'';
|
||||
settings = {
|
||||
mainbar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
mod = "dock";
|
||||
exclusive = true;
|
||||
passthrough = false;
|
||||
gtk-layer-shell = true;
|
||||
height = 0;
|
||||
modules-left = ["clock" "custom/weather" "hyprland/workspaces"];
|
||||
modules-center = ["hyprland/window"];
|
||||
modules-right = [
|
||||
"tray"
|
||||
];
|
||||
|
||||
"hyprland/window" = {
|
||||
format = "👉 {}";
|
||||
seperate-outputs = true;
|
||||
};
|
||||
"hyprland/workspaces" = {
|
||||
disable-scroll = true;
|
||||
all-outputs = true;
|
||||
on-click = "activate";
|
||||
format = " {name} {icon} ";
|
||||
on-scroll-up = "hyprctl dispatch workspace e+1";
|
||||
on-scroll-down = "hyprctl dispatch workspace e-1";
|
||||
format-icons = {
|
||||
"1" = "";
|
||||
"2" = "";
|
||||
"3" = "";
|
||||
"4" = "";
|
||||
"5" = "";
|
||||
"6" = "";
|
||||
"7" = "";
|
||||
};
|
||||
persistent_workspaces = {
|
||||
"1" = [];
|
||||
"2" = [];
|
||||
"3" = [];
|
||||
"4" = [];
|
||||
};
|
||||
};
|
||||
"custom/weather" = {
|
||||
format = "{}°C";
|
||||
tooltip = true;
|
||||
interval = 3600;
|
||||
exec = "wttrbar --location Pockau-Lengefeld";
|
||||
return-type = "json";
|
||||
};
|
||||
tray = {
|
||||
icon-size = 13;
|
||||
spacing = 10;
|
||||
};
|
||||
clock = {
|
||||
format = " {:%R %d/%m}";
|
||||
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
grim
|
||||
hyprlock
|
||||
qt6.qtwayland
|
||||
slurp
|
||||
waypipe
|
||||
wf-recorder
|
||||
wl-mirror
|
||||
wl-clipboard
|
||||
wlogout
|
||||
wtype
|
||||
ydotool
|
||||
];
|
||||
};
|
||||
}
|
@ -1,10 +1,12 @@
|
||||
# This is a default home.nix generated by the follwing hone-manager command
|
||||
#
|
||||
#
|
||||
# home-manager init ./
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# Home Manager needs a bit of information about you and the paths it should
|
||||
# manage.
|
||||
home.username = lib.mkDefault "your-name";
|
||||
@ -21,7 +23,9 @@
|
||||
|
||||
# The home.packages option allows you to install Nix packages into your
|
||||
# environment.
|
||||
home.packages = [
|
||||
home.packages = with pkgs; [
|
||||
kitty
|
||||
wofi
|
||||
# # Adds the 'hello' command to your environment. It prints a friendly
|
||||
# # "Hello, world!" when run.
|
||||
# pkgs.hello
|
||||
|
@ -1 +1,48 @@
|
||||
{ config, ... }: { imports = [ ./home.nix ../common ]; }
|
||||
{
|
||||
imports = [
|
||||
../common
|
||||
../features/cli
|
||||
../features/desktop
|
||||
./home.nix
|
||||
];
|
||||
|
||||
features = {
|
||||
cli = {
|
||||
fish.enable = true;
|
||||
fzf.enable = true;
|
||||
neofetch.enable = true;
|
||||
};
|
||||
desktop = {
|
||||
hyprland.enable = true;
|
||||
wayland.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
device = [
|
||||
{
|
||||
name = "keyboard";
|
||||
kb_layout = "us";
|
||||
}
|
||||
{
|
||||
name = "mouse";
|
||||
sensitivity = -0.5;
|
||||
}
|
||||
];
|
||||
monitor = [
|
||||
"DP-1,2560x1440@144,0x0,1"
|
||||
"DP-2,2560x1440@144,2560x0,1"
|
||||
];
|
||||
workspace = [
|
||||
"1, monitor:DP-1, default:true"
|
||||
"2, monitor:DP-1"
|
||||
"3, monitor:DP-1"
|
||||
"4, monitor:DP-2"
|
||||
"5, monitor:DP-1"
|
||||
"6, monitor:DP-2"
|
||||
"7, monitor:DP-2"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -1,10 +1,19 @@
|
||||
# Common configuration for all hosts
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
outputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./users
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
];
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = {inherit inputs outputs;};
|
||||
};
|
||||
nixpkgs = {
|
||||
# You can add overlays here
|
||||
overlays = [
|
||||
@ -48,4 +57,5 @@
|
||||
((lib.filterAttrs (_: lib.isType "flake")) inputs);
|
||||
nixPath = ["/etc/nix/path"];
|
||||
};
|
||||
users.defaultUserShell = pkgs.fish;
|
||||
}
|
||||
|
3
hosts/common/users/default.nix
Normal file
3
hosts/common/users/default.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
imports = [./m3tam3re.nix];
|
||||
}
|
1
hosts/common/users/m3tam3re
Symbolic link
1
hosts/common/users/m3tam3re
Symbolic link
@ -0,0 +1 @@
|
||||
../../../home/m3tam3re
|
30
hosts/common/users/m3tam3re.nix
Normal file
30
hosts/common/users/m3tam3re.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
users.users.m3tam3re = {
|
||||
initialHashedPassword = "$y$j9T$IoChbWGYRh.rKfmm0G86X0$bYgsWqDRkvX.EBzJTX.Z0RsTlwspADpvEF3QErNyCMC";
|
||||
isNormalUser = true;
|
||||
description = "m3tam3re";
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
"libvirtd"
|
||||
"flatpak"
|
||||
"audio"
|
||||
"video"
|
||||
"plugdev"
|
||||
"input"
|
||||
"kvm"
|
||||
"qemu-libvirtd"
|
||||
];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3YEmpYbM+cpmyD10tzNRHEn526Z3LJOzYpWEKdJg8DaYyPbDn9iyVX30Nja2SrW4Wadws0Y8DW+Urs25/wVB6mKl7jgPJVkMi5hfobu3XAz8gwSdjDzRSWJrhjynuaXiTtRYED2INbvjLuxx3X8coNwMw58OuUuw5kNJp5aS2qFmHEYQErQsGT4MNqESe3jvTP27Z5pSneBj45LmGK+RcaSnJe7hG+KRtjuhjI7RdzMeDCX73SfUsal+rHeuEw/mmjYmiIItXhFTDn8ZvVwpBKv7xsJG90DkaX2vaTk0wgJdMnpVIuIRBa4EkmMWOQ3bMLGkLQeK/4FUkNcvQ/4+zcZsg4cY9Q7Fj55DD41hAUdF6SYODtn5qMPsTCnJz44glHt/oseKXMSd556NIw2HOvihbJW7Rwl4OEjGaO/dF4nUw4c9tHWmMn9dLslAVpUuZOb7ykgP0jk79ldT3Dv+2Hj0CdAWT2cJAdFX58KQ9jUPT3tBnObSF1lGMI7t77VU= m3tam3re@m3-nix"
|
||||
];
|
||||
packages = [inputs.home-manager.packages.${pkgs.system}.default];
|
||||
};
|
||||
home-manager.users.m3tam3re =
|
||||
import ../../../home/m3tam3re/${config.networking.hostName}.nix;
|
||||
}
|
@ -46,14 +46,6 @@
|
||||
variant = "";
|
||||
};
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.m3tam3re = {
|
||||
isNormalUser = true;
|
||||
description = "m3tam3re";
|
||||
extraGroups = ["networkmanager" "wheel"];
|
||||
packages = with pkgs; [];
|
||||
};
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
@ -87,6 +79,9 @@
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
programs.fish.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
|
Loading…
x
Reference in New Issue
Block a user