fix: format

This commit is contained in:
2025-08-21 10:06:35 +02:00
parent b29d660364
commit 478e292f8b
24 changed files with 1277 additions and 1054 deletions

View File

@@ -6,55 +6,67 @@
unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-colors.url = "github:misterio77/nix-colors";
nix-colors.url = "github:misterio77/nix-colors";
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2";
url = "github:nix-community/lanzaboote/v0.4.2";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
};
outputs = { self, nixpkgs, unstable, home-manager, nix-colors, sops-nix, lanzaboote, nixos-hardware, ... }@inputs:
outputs =
{
self,
nixpkgs,
unstable,
home-manager,
nix-colors,
sops-nix,
lanzaboote,
nixos-hardware,
...
}@inputs:
let
system = "x86_64-linux";
in {
in
{
# legolas
# legolas
nixosConfigurations.legolas = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = { inherit inputs; };
modules = [
./hosts/legolas/configuration.nix
home-manager.nixosModules.home-manager {
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.gunalx = import ./home/gunalx.nix;
home-manager.backupFileExtension = "bac";
home-manager.extraSpecialArgs = {inherit nix-colors inputs;};
home-manager.extraSpecialArgs = { inherit nix-colors inputs; };
}
sops-nix.nixosModules.sops
lanzaboote.nixosModules.lanzaboote
nixos-hardware.nixosModules.dell-xps-13-9370
sops-nix.nixosModules.sops
lanzaboote.nixosModules.lanzaboote
nixos-hardware.nixosModules.dell-xps-13-9370
];
};
};
}

View File

@@ -12,13 +12,13 @@
filter_mode_shell_up_key_binding = "directory";
# UI
max_preview_height = 2;
show_help = true;
max_preview_height = 2;
show_help = true;
prefers_reduced_motion = true;
# History storage
secrets_filter = true;
enter_accept = true;
enter_accept = true;
# Sync v2
sync = {
@@ -28,9 +28,25 @@
# Stats
stats = {
common_subcommands = [
"apt" "cargo" "composer" "dnf" "docker" "git" "go" "ip"
"kubectl" "nix" "nmcli" "npm" "pecl" "pnpm" "podman"
"port" "systemctl" "tmux" "yarn"
"apt"
"cargo"
"composer"
"dnf"
"docker"
"git"
"go"
"ip"
"kubectl"
"nix"
"nmcli"
"npm"
"pecl"
"pnpm"
"podman"
"port"
"systemctl"
"tmux"
"yarn"
];
common_prefix = [ "sudo" ];
};
@@ -47,7 +63,11 @@
# Search
search = {
filters = [ "directory" "host" "session" ];
filters = [
"directory"
"host"
"session"
];
};
};
};

View File

@@ -1,28 +1,45 @@
{ pkgs, lib, config, ... }:
{
pkgs,
lib,
config,
...
}:
{
programs.bash = {
enable = true;
shellAliases = {
"rebuild" = "sudo nixos-rebuild switch --no-write-lock-file --flake git+https://github.com/adrlau/nix-dotfiles.git -L --impure";
shellAliases = {
"rebuild" =
"sudo nixos-rebuild switch --no-write-lock-file --flake git+https://github.com/adrlau/nix-dotfiles.git -L --impure";
"," = "comma ";
"," = "comma ";
"gst" = "git status";
"gsw" = "git switch";
"gcm" = "git commit -m ";
"gca" = "git commit --amend";
"gaa" = "git add -A";
"gb" = "git branch";
"gst" = "git status";
"gsw" = "git switch";
"gcm" = "git commit -m ";
"gca" = "git commit --amend";
"gaa" = "git add -A";
"gb" = "git branch";
"sl" = "eza";
"ls" = "eza";
"lls" = "ls";
"la" = "eza -la";
"tree" = "eza -T";
"neofetch" = "fastfetch";
"htop" = "btm";
"sl" = "eza";
"ls" = "eza";
"lls" = "ls";
"la" = "eza -la";
"tree" = "eza -T";
"neofetch" = "fastfetch";
"htop" = "btm";
};
historyControl = ["ignoredups" "ignorespace" "erasedups"];
historyIgnore = [ "ls" "cd" "exit" "cd .." ".." "la"];
historyControl = [
"ignoredups"
"ignorespace"
"erasedups"
];
historyIgnore = [
"ls"
"cd"
"exit"
"cd .."
".."
"la"
];
};
}

View File

@@ -1,4 +1,9 @@
{ pkgs, config, nix-colors, ... }:
{
pkgs,
config,
nix-colors,
...
}:
let
nix-colors-lib = nix-colors.lib.contrib { inherit pkgs; };
@@ -22,7 +27,8 @@ let
lighterTeal = "2C7A6A";
lightTeal = "B0E8DA";
in{
in
{
imports = [
nix-colors.homeManagerModules.default
];
@@ -56,15 +62,13 @@ in{
};
};
gtk = {
enable = true;
theme = {
name = "Adwaita-dark";
package = pkgs.gnome-themes-extra;
};
enable = true;
theme = {
name = "Adwaita-dark";
package = pkgs.gnome-themes-extra;
};
};
qt = {
enable = true;
@@ -78,4 +82,3 @@ in{
];
}

View File

@@ -1,53 +1,52 @@
{ pkgs, lib, config, ... }:
{
home.packages = with pkgs; [
foot
];
programs.foot.enable = true;
programs.foot.settings = {
main = {
term = "xterm-256color";
font = "0xproto:size=14";
#dpi-aware = "yes";
};
mouse = {
hide-when-typing = "yes";
};
pkgs,
lib,
config,
...
}:
{
home.packages = with pkgs; [
foot
];
programs.foot.enable = true;
programs.foot.settings = {
colors = {
alpha = "0.7";
foreground = "${config.colorScheme.palette.base05}";
background = "${config.colorScheme.palette.base00}";
main = {
term = "xterm-256color";
font = "0xproto:size=14";
#dpi-aware = "yes";
};
mouse = {
hide-when-typing = "yes";
};
colors = {
alpha = "0.7";
foreground = "${config.colorScheme.palette.base05}";
background = "${config.colorScheme.palette.base00}";
regular0 = "${config.colorScheme.palette.base00}";
regular1 = "${config.colorScheme.palette.base08}";
regular2 = "${config.colorScheme.palette.base0B}";
regular3 = "${config.colorScheme.palette.base0A}";
regular4 = "${config.colorScheme.palette.base0D}";
regular5 = "${config.colorScheme.palette.base0E}";
regular6 = "${config.colorScheme.palette.base0C}";
regular7 = "${config.colorScheme.palette.base05}";
bright0 = "${config.colorScheme.palette.base03}";
bright1 = "${config.colorScheme.palette.base08}";
bright2 = "${config.colorScheme.palette.base0B}";
bright3 = "${config.colorScheme.palette.base0A}";
bright4 = "${config.colorScheme.palette.base0D}";
bright5 = "${config.colorScheme.palette.base0E}";
bright6 = "${config.colorScheme.palette.base0C}";
bright7 = "${config.colorScheme.palette.base07}";
selection-foreground = "${config.colorScheme.palette.base00}";
selection-background = "${config.colorScheme.palette.base0A}";
};
regular0 = "${config.colorScheme.palette.base00}";
regular1 = "${config.colorScheme.palette.base08}";
regular2 = "${config.colorScheme.palette.base0B}";
regular3 = "${config.colorScheme.palette.base0A}";
regular4 = "${config.colorScheme.palette.base0D}";
regular5 = "${config.colorScheme.palette.base0E}";
regular6 = "${config.colorScheme.palette.base0C}";
regular7 = "${config.colorScheme.palette.base05}";
bright0 = "${config.colorScheme.palette.base03}";
bright1 = "${config.colorScheme.palette.base08}";
bright2 = "${config.colorScheme.palette.base0B}";
bright3 = "${config.colorScheme.palette.base0A}";
bright4 = "${config.colorScheme.palette.base0D}";
bright5 = "${config.colorScheme.palette.base0E}";
bright6 = "${config.colorScheme.palette.base0C}";
bright7 = "${config.colorScheme.palette.base07}";
selection-foreground = "${config.colorScheme.palette.base00}";
selection-background = "${config.colorScheme.palette.base0A}";
};
};
}

View File

@@ -1,4 +1,10 @@
{ config, pkgs, lib, inputs, ... }:
{
config,
pkgs,
lib,
inputs,
...
}:
let
palette = config.colorScheme.palette;
@@ -12,7 +18,7 @@ in
settings = {
main = {
terminal = "${pkgs.foot}/bin/foot";
layer = "overlay";
layer = "overlay";
use-bold = true;
fields = "filename,name,keywords,exec,comment,generic";
tabs = "4";
@@ -22,13 +28,13 @@ in
horizontal-pad = 50; # Horizontal padding
vertical-pad = 15; # Vertical padding
font = "monospace:size=16";
font = "monospace:size=16";
anchor = "top";
y-margin = 240;
icons-enabled = true;
# match-mode = "fzf";
# image-size-ratio = 0.5;
icons-enabled = true;
# match-mode = "fzf";
# image-size-ratio = 0.5;
};
colors = {
background = "${hex palette.base00}ff";
@@ -44,8 +50,8 @@ in
border = "${hex palette.base03}ff";
};
border = {
radius = 20;
width = 3;
radius = 20;
width = 3;
};
};
};

View File

@@ -1,6 +1,11 @@
{ pkgs, lib, config, ... }:
{
programs.git = {
pkgs,
lib,
config,
...
}:
{
programs.git = {
enable = true;
extraConfig = {
pull.rebase = true;

View File

@@ -13,15 +13,14 @@
./waybar.nix
./wlogout.nix
./niri.nix
#./wallpapers.nix
#applications
./mako.nix
./foot.nix
#./mako.nix
#./fcitx5.nix
];
#./fcitx5.nix
];
programs.nix-index = {
enableBashIntegration = true;
@@ -39,4 +38,3 @@
home.stateVersion = "25.05";
}

50
home/mako.nix Normal file
View File

@@ -0,0 +1,50 @@
{ config, pkgs, ... }:
let
palette = config.colorscheme.palette;
in
{
services.mako = {
enable = true; # Turn on mako
package = pkgs.mako; # Which package to use
# Colors (from your colorscheme)
settings.background-color = "#${palette.base00}FF"; # popup background
settings.text-color = "#${palette.base05}FF"; # popup text
settings.border-color = "#${palette.base03}FF"; # popup border
settings.progress-color = "over #${palette.base0A}FF"; # progress bar
# Placement & layering
settings.anchor = "top-right"; # corner on screen
settings.layer = "overlay"; # appear above fullscreen
# Geometry
settings.width = 320; # px
settings.height = 120; # max px
settings.margin = "10"; # all edges
settings.padding = "8"; # all edges
settings.border-size = 2; # px
settings.border-radius = 12; # px
# Font & icons
settings.font = "monospace 10"; # Pango font
settings.icons = true; # show icons
settings.max-icon-size = 48; # px
# Behavior & timing
settings.default-timeout = 5000; # ms; 0 = no timeout
settings.ignore-timeout = true; # use defaultTimeout always
settings.actions = true; # clickable actions
settings.max-visible = 5; # simultaneous popups
settings.sort = "-time"; # newest first
settings.group-by = "app-name"; # grouping criteria
settings.markup = true; # enable Pango markup
settings."actionable=true" = {
default-timeout = 15000;
border-radius = 24;
border-color = "#${palette.base08}FF";
};
};
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,9 @@
{ pkgs, lib, config, ... }:
{
pkgs,
lib,
config,
...
}:
{
imports = [
];
@@ -8,7 +13,7 @@
ssh-askpass-fullscreen
sshfs
];
services.ssh-agent.enable = true;
programs.ssh = {
@@ -24,25 +29,23 @@
};
"*.pvv.ntnu.no" = {
user="adriangl";
user = "adriangl";
};
"*.ntnu.no !login.pvv.ntnu.no" = {
user="adriangl";
proxyJump="login.pvv.ntnu.no";
user = "adriangl";
proxyJump = "login.pvv.ntnu.no";
};
"snotra" = {
user="adriangl";
proxyJump="adriangl@login.pvv.ntnu.no";
hostname="snotra.idi.ntnu.no";
user = "adriangl";
proxyJump = "adriangl@login.pvv.ntnu.no";
hostname = "snotra.idi.ntnu.no";
};
#pbsds
"garp.pbsds.net" = {
user="adrlau";
user = "adrlau";
proxyJump = "login.pvv.ntnu.no";
extraOptions = {
StrictHostKeyChecking = "no";
@@ -50,7 +53,7 @@
};
};
"bolle.pbsds.net" = {
user="adrlau";
user = "adrlau";
proxyJump = "login.pvv.ntnu.no";
extraOptions = {
StrictHostKeyChecking = "no";
@@ -58,43 +61,39 @@
};
};
#pvv
"pvv" = {
user="adriangl";
hostname="login.pvv.ntnu.no";
user = "adriangl";
hostname = "login.pvv.ntnu.no";
};
"pvv2" = {
user="adriangl";
hostname="login2.pvv.ntnu.no";
user = "adriangl";
hostname = "login2.pvv.ntnu.no";
};
#home
"aragon" = {
port = 6969;
hostname="100.74.34.149";
hostname = "100.74.34.149";
};
"galadriel" = {
port = 6969;
hostname="100.84.215.84";
hostname = "100.84.215.84";
};
"gandalf" = {
port = 6969;
hostname="100.124.183.16";
hostname = "100.124.183.16";
};
"elrond" = {
port = 6969;
hostname="100.101.17.39 ";
hostname = "100.101.17.39 ";
};
};
extraConfig = "";
};
}

View File

@@ -1,4 +1,11 @@
{ pkgs, inputs, lib, config, nix-colors, ... }:
{
pkgs,
inputs,
lib,
config,
nix-colors,
...
}:
let
palette = config.colorScheme.palette;
in
@@ -8,35 +15,34 @@ in
package = pkgs.swaylock-effects;
settings = {
# screen & indicator
color = "#${palette.base00}AA"; # --color
screenshots = true; # --screenshots
fade-in = 0.1; # --fade-in
scaling = "fill"; # e.g. --scaling=fill
color = "#${palette.base00}AA"; # --color
screenshots = true; # --screenshots
fade-in = 0.1; # --fade-in
scaling = "fill"; # e.g. --scaling=fill
# authentication grace
grace = 3; # --grace
submit-on-touch = true; # --submit-on-touch
grace = 3; # --grace
submit-on-touch = true; # --submit-on-touch
# clock
clock = true; # --clock
clock = true; # --clock
# indicator visuals
indicator-idle-visible = true; # --indicator-idle-visible
indicator-radius = 100; # --indicator-radius
indicator-thickness = 7; # --indicator-thickness
indicator-idle-visible = true; # --indicator-idle-visible
indicator-radius = 100; # --indicator-radius
indicator-thickness = 7; # --indicator-thickness
# indicator colors
ring-color = "#${palette.base0D}C0"; # --ring-color
key-hl-color = "#${palette.base0E}C0"; # --key-hl-color
text-color = "#${palette.base05}FF"; # --text-color
inside-color = "#${palette.base02}CC"; # --inside-color
line-color = "#${palette.base01}99"; # --line-color
separator-color = "#${palette.base01}99"; # --separator-color
ring-color = "#${palette.base0D}C0"; # --ring-color
key-hl-color = "#${palette.base0E}C0"; # --key-hl-color
text-color = "#${palette.base05}FF"; # --text-color
inside-color = "#${palette.base02}CC"; # --inside-color
line-color = "#${palette.base01}99"; # --line-color
separator-color = "#${palette.base01}99"; # --separator-color
# effects
effect-scale = 0.6; # --effect-scale
effect-blur = "7x3"; # --effect-blur
effect-scale = 0.6; # --effect-scale
effect-blur = "7x3"; # --effect-blur
};
};
}

View File

@@ -8,14 +8,12 @@ let
names = lib.attrNames (builtins.readDir wallpaperSrc);
# For each name, produce an attrset mapping
wallpaperFiles = map (name:
{
# quoted string keys are valid attribute names
"Pictures/wallpapers/${name}" = {
source = "${wallpaperSrc}/${name}";
};
}
) names;
wallpaperFiles = map (name: {
# quoted string keys are valid attribute names
"Pictures/wallpapers/${name}" = {
source = "${wallpaperSrc}/${name}";
};
}) names;
in
{
# Merge them all under home.file

View File

@@ -1,4 +1,10 @@
{ config, pkgs, lib, inputs, ... }:
{
config,
pkgs,
lib,
inputs,
...
}:
let
# Import Base16 palette & hex→RGB helper
@@ -6,17 +12,19 @@ let
inherit (config.colorscheme) palette;
# Build "rgba(r,g,b,a)" strings
toRGBA = colour: alpha:
let rgb = hexToRGBString "," (lib.removePrefix "#" colour);
in "rgba(${rgb},${alpha})";
toRGBA =
colour: alpha:
let
rgb = hexToRGBString "," (lib.removePrefix "#" colour);
in
"rgba(${rgb},${alpha})";
in
{
home.packages = with pkgs; [
fuzzel
wvkbd
];
home.packages = with pkgs; [
fuzzel
wvkbd
];
programs.waybar = {
enable = true;
@@ -25,167 +33,167 @@ in
# Single-bar JSON config
settings = [
(builtins.fromJSON ''
{
"layer": "top",
"height": 36,
"spacing": 2,
"tray-position": "right",
"tray-all-outputs": true,
"modules-left": ["custom/overview", "custom/launcher", "custom/keyboard", "sway/workspaces", "niri/workspaces"],
"modules-center": ["niri/window"],
"modules-right": [
"idle_inhibitor", "backlight", "pulseaudio", "keyboard-state",
"network", "cpu", "memory", "temperature", "battery",
"power-profiles-daemon", "clock", "tray", "custom/power"
],
{
"layer": "top",
"height": 36,
"spacing": 2,
"tray-position": "right",
"tray-all-outputs": true,
"modules-left": ["custom/overview", "custom/launcher", "custom/keyboard", "sway/workspaces", "niri/workspaces"],
"modules-center": ["niri/window"],
"modules-right": [
"idle_inhibitor", "backlight", "pulseaudio", "keyboard-state",
"network", "cpu", "memory", "temperature", "battery",
"power-profiles-daemon", "clock", "tray", "custom/power"
],
"custom/launcher": {
"format": " ",
"on-click": "pkill fuzzel || fuzzel"
},
"custom/launcher": {
"format": " ",
"on-click": "pkill fuzzel || fuzzel"
},
"sway/workspaces": {
"format": "{index}: {name} - {icon}",
"format-icons": {
"focused":"","active":"","default":""
},
"all-outputs": false,
"current-only": false,
"persistent": true,
"on-click": "swaymsg workspace number {index}"
},
"sway/workspaces": {
"format": "{index}: {name} - {icon}",
"format-icons": {
"focused":"","active":"","default":""
},
"all-outputs": false,
"current-only": false,
"persistent": true,
"on-click": "swaymsg workspace number {index}"
},
"niri/workspaces": {
"format": "{index}: {name} - {icon}",
"format-icons": {
"focused":"","active":"","default":""
},
"all-outputs": false,
"current-only": false,
"persistent": true,
"on-click": "niri msg workspace {index}"
},
"niri/workspaces": {
"format": "{index}: {name} - {icon}",
"format-icons": {
"focused":"","active":"","default":""
},
"all-outputs": false,
"current-only": false,
"persistent": true,
"on-click": "niri msg workspace {index}"
},
"custom/overview": {
"format": "",
"tooltip": "Toggle Overview",
"on-click": "niri msg action toggle-overview"
},
"custom/keyboard": {
"format": "",
"tooltip": "On-Screen Keyboard",
"on-click": "pkill wvkbd-mobintl || wvkbd-mobintl"
},
"custom/overview": {
"format": "",
"tooltip": "Toggle Overview",
"on-click": "niri msg action toggle-overview"
},
"custom/keyboard": {
"format": "",
"tooltip": "On-Screen Keyboard",
"on-click": "pkill wvkbd-mobintl || wvkbd-mobintl"
},
"niri/window": {
"format": "{title}"
},
"niri/window": {
"format": "{title}"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": { "activated":"","deactivated":"" }
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": { "activated":"","deactivated":"" }
},
"backlight": {
"format": "{percent}% {icon}",
"format-icons": ["","","","","","","","",""]
},
"backlight": {
"format": "{percent}% {icon}",
"format-icons": ["","","","","","","","",""]
},
"pulseaudio": {
"format": "{volume}% {icon}",
"format-muted": "",
"format-icons": { "default": ["","",""] },
"on-click": "pavucontrol"
},
"pulseaudio": {
"format": "{volume}% {icon}",
"format-muted": "",
"format-icons": { "default": ["","",""] },
"on-click": "pavucontrol"
},
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{icon}",
"format-icons": { "locked":"","unlocked":"" }
},
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{icon}",
"format-icons": { "locked":"","unlocked":"" }
},
"network": {
"format-wifi": " {essid} ({signalStrength}%)",
"format-ethernet": " {ipaddr}",
"format-disconnected": " Disconnected",
"format-alt": " {ipaddr}/{cidr}",
"tooltip": true,
"tooltip-format-wifi": "<span color='#${palette.base0C}'></span> <span color='#${palette.base05}'>WiFi</span>\n<span color='#${palette.base0A}'>SSID:</span> <span color='#${palette.base06}'>{essid}</span>\n<span color='#${palette.base0A}'>Interface:</span> <span color='#${palette.base04}'>{ifname}</span>\n<span color='#${palette.base0A}'>IP:</span> <span color='#${palette.base06}'>{ipaddr}</span>\n<span color='#${palette.base0A}'>IPv6:</span> <span color='#${palette.base04}'>{ipaddr6}</span>\n<span color='#${palette.base0A}'>Gateway:</span> <span color='#${palette.base04}'>{gwaddr}</span>\n<span color='#${palette.base0A}'>Frequency:</span> <span color='#${palette.base04}'>{frequency} MHz</span>\n<span color='#${palette.base0A}'>Signal:</span> <span color='#${palette.base0B}'>{signalStrength}%</span> <span color='#${palette.base04}'>({signaldBm} dBm)</span>",
"network": {
"format-wifi": " {essid} ({signalStrength}%)",
"format-ethernet": " {ipaddr}",
"format-disconnected": " Disconnected",
"format-alt": " {ipaddr}/{cidr}",
"tooltip": true,
"tooltip-format-wifi": "<span color='#${palette.base0C}'></span> <span color='#${palette.base05}'>WiFi</span>\n<span color='#${palette.base0A}'>SSID:</span> <span color='#${palette.base06}'>{essid}</span>\n<span color='#${palette.base0A}'>Interface:</span> <span color='#${palette.base04}'>{ifname}</span>\n<span color='#${palette.base0A}'>IP:</span> <span color='#${palette.base06}'>{ipaddr}</span>\n<span color='#${palette.base0A}'>IPv6:</span> <span color='#${palette.base04}'>{ipaddr6}</span>\n<span color='#${palette.base0A}'>Gateway:</span> <span color='#${palette.base04}'>{gwaddr}</span>\n<span color='#${palette.base0A}'>Frequency:</span> <span color='#${palette.base04}'>{frequency} MHz</span>\n<span color='#${palette.base0A}'>Signal:</span> <span color='#${palette.base0B}'>{signalStrength}%</span> <span color='#${palette.base04}'>({signaldBm} dBm)</span>",
"tooltip-format-ethernet": "<span color='#${palette.base0C}'></span> <span color='#${palette.base05}'>Ethernet</span>\n<span color='#${palette.base0A}'>Interface:</span> <span color='#${palette.base04}'>{ifname}</span>\n<span color='#${palette.base0A}'>IP:</span> <span color='#${palette.base06}'>{ipaddr}</span>\n<span color='#${palette.base0A}'>IPv6:</span> <span color='#${palette.base04}'>{ipaddr6}</span>\n<span color='#${palette.base0A}'>Gateway:</span> <span color='#${palette.base04}'>{gwaddr}</span>\n<span color='#${palette.base0A}'>Netmask:</span> <span color='#${palette.base04}'>{netmask}</span>",
"tooltip-format-ethernet": "<span color='#${palette.base0C}'></span> <span color='#${palette.base05}'>Ethernet</span>\n<span color='#${palette.base0A}'>Interface:</span> <span color='#${palette.base04}'>{ifname}</span>\n<span color='#${palette.base0A}'>IP:</span> <span color='#${palette.base06}'>{ipaddr}</span>\n<span color='#${palette.base0A}'>IPv6:</span> <span color='#${palette.base04}'>{ipaddr6}</span>\n<span color='#${palette.base0A}'>Gateway:</span> <span color='#${palette.base04}'>{gwaddr}</span>\n<span color='#${palette.base0A}'>Netmask:</span> <span color='#${palette.base04}'>{netmask}</span>",
"tooltip-format-disconnected": "<span color='#${palette.base08}'></span> <span color='#${palette.base08}'>No Connection</span>\n<span color='#${palette.base04}'>Click to refresh network info</span>",
"tooltip-format-disconnected": "<span color='#${palette.base08}'></span> <span color='#${palette.base08}'>No Connection</span>\n<span color='#${palette.base04}'>Click to refresh network info</span>",
"on-click": "nmcli device wifi rescan && nmcli connection show --active",
"on-click-right": "nmcli device status",
"max-length": 50
},
"on-click": "nmcli device wifi rescan && nmcli connection show --active",
"on-click-right": "nmcli device status",
"max-length": 50
},
"cpu": { "format": " {usage}%" },
"memory": { "format": " {used:0.1f}G" },
"cpu": { "format": " {usage}%" },
"memory": { "format": " {used:0.1f}G" },
"temperature": {
"format": "{temperatureC}°C ",
"critical-threshold": 80
},
"temperature": {
"format": "{temperatureC}°C ",
"critical-threshold": 80
},
"battery": {
"format": "{capacity}% {icon}",
"format-icons": ["","","","",""],
"format-charging": "{capacity}% ",
"states": { "warning": 30, "critical": 15 }
},
"battery": {
"format": "{capacity}% {icon}",
"format-icons": ["","","","",""],
"format-charging": "{capacity}% ",
"states": { "warning": 30, "critical": 15 }
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
"clock": {
"format": "{:%H:%M}",
"format-alt": "{:%Y-%m-%d}",
"tooltip": true,
"tooltip-format": "<tt><small>{calendar}</small></tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"weeks-pos": "right",
"on-scroll": 1,
"format": {
"months": "<span color='#${palette.base05}'><b>{}</b></span>",
"days": "<span color='#${palette.base04}'>{}</span>",
"weeks": "<span color='#${palette.base0C}'><b>W{}</b></span>",
"weekdays": "<span color='#${palette.base0A}'><b>{}</b></span>",
"today": "<span color='#${palette.base08}'><b><u>{}</u></b></span>"
"clock": {
"format": "{:%H:%M}",
"format-alt": "{:%Y-%m-%d}",
"tooltip": true,
"tooltip-format": "<tt><small>{calendar}</small></tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"weeks-pos": "right",
"on-scroll": 1,
"format": {
"months": "<span color='#${palette.base05}'><b>{}</b></span>",
"days": "<span color='#${palette.base04}'>{}</span>",
"weeks": "<span color='#${palette.base0C}'><b>W{}</b></span>",
"weekdays": "<span color='#${palette.base0A}'><b>{}</b></span>",
"today": "<span color='#${palette.base08}'><b><u>{}</u></b></span>"
}
},
"actions": {
"on-click-right": "mode",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
},
"tray": {
"spacing": 12
},
"custom/power": {
"format": "",
"tooltip": "exit",
"on-click": "wlogout || wleave"
}
}
},
"actions": {
"on-click-right": "mode",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
},
"tray": {
"spacing": 12
},
"custom/power": {
"format": "",
"tooltip": "exit",
"on-click": "wlogout || wleave"
}
}
'')
];
@@ -233,15 +241,15 @@ in
padding: 8px 12px;
font-size: 12px;
}
tooltip label {
color: ${toRGBA palette.base05 "1"};
}
#clock tooltip {
font-family: monospace;
}
/* Workspace buttons */
#sway-workspaces button,#niri-workspaces button {
@@ -284,6 +292,6 @@ in
animation: blink 0.5s steps(12) infinite alternate;
}
'';
systemd.enable = true;
#systemd.enable = true;
};
}

View File

@@ -1,35 +1,69 @@
{ pkgs
, lib
, inputs
, config
, nix-colors
, ...
{
pkgs,
lib,
inputs,
config,
nix-colors,
...
}:
let
# Grab your palette and the hex→RGBA helper
palette = config.colorscheme.palette;
toRGBA = color: alpha:
let rgb = nix-colors.lib.conversions.hexToRGBString "," (lib.removePrefix "#" color);
in "rgba(${rgb},${alpha})";
palette = config.colorscheme.palette;
toRGBA =
color: alpha:
let
rgb = nix-colors.lib.conversions.hexToRGBString "," (lib.removePrefix "#" color);
in
"rgba(${rgb},${alpha})";
# Path to the wleave-provided icons
iconsDir = "${pkgs.wleave}/share/wleave/icons";
iconsDir = "${pkgs.wleave}/share/wleave/icons";
in
{
programs.wlogout = {
enable = true;
enable = true;
package = pkgs.wlogout;
# Your button layout
layout = [
{ label = "lock"; action = "swaylock"; text = "Lock"; keybind = "l"; }
{ label = "hibernate"; action = "systemctl hibernate"; text = "Hibernate"; keybind = "h"; }
{ label = "logout"; action = "loginctl terminate-user $USER"; text = "Logout"; keybind = "e"; }
{ label = "shutdown"; action = "systemctl poweroff"; text = "Shutdown"; keybind = "s"; }
{ label = "suspend"; action = "systemctl suspend"; text = "Suspend"; keybind = "u"; }
{ label = "reboot"; action = "systemctl reboot"; text = "Reboot"; keybind = "r"; }
{
label = "lock";
action = "swaylock";
text = "Lock";
keybind = "l";
}
{
label = "hibernate";
action = "systemctl hibernate";
text = "Hibernate";
keybind = "h";
}
{
label = "logout";
action = "loginctl terminate-user $USER";
text = "Logout";
keybind = "e";
}
{
label = "shutdown";
action = "systemctl poweroff";
text = "Shutdown";
keybind = "s";
}
{
label = "suspend";
action = "systemctl suspend";
text = "Suspend";
keybind = "u";
}
{
label = "reboot";
action = "systemctl reboot";
text = "Reboot";
keybind = "r";
}
];
style = ''

View File

@@ -2,22 +2,27 @@
# 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, ... }:
{
config,
lib,
pkgs,
...
}:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/boot.nix
../../modules/displaymanager.nix
../../modules/nix.nix
../../secrets/sops.nix
../../modules/sound.nix
../../modules/gunalx.nix
../../modules/pam.nix
];
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/boot.nix
../../modules/displaymanager.nix
../../modules/nix.nix
../../secrets/sops.nix
../../modules/sound.nix
../../modules/gunalx.nix
../../modules/pam.nix
];
networking.hostName = "legolas";
networking.hostName = "legolas";
networking.networkmanager.enable = true;
time.timeZone = "Europe/Amsterdam";
# Select internationalisation properties.
@@ -25,7 +30,7 @@
# Enable the X11 windowing system.
services.xserver.enable = true;
services.xserver.videoDrivers = ["modesetting"];
services.xserver.videoDrivers = [ "modesetting" ];
# Configure keymap in X11
# services.xserver.xkb.layout = "us";
@@ -57,7 +62,6 @@
# enableSSHSupport = true;
# };
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
@@ -67,8 +71,6 @@
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
@@ -89,4 +91,3 @@
system.stateVersion = "25.05"; # Did you read the comment?
}

View File

@@ -1,51 +1,68 @@
# 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, ... }:
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "uas" "rtsx_pci_sdmmc" ];
boot.initrd.availableKernelModules = [
"xhci_pci"
"nvme"
"uas"
"rtsx_pci_sdmmc"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-label/NIXROOT";
fsType = "ext4";
fileSystems."/" = {
device = "/dev/disk/by-label/NIXROOT";
fsType = "ext4";
};
boot.initrd.luks.devices = {
"luks_secure" = {
device = "/dev/disk/by-uuid/c21c8089-29a7-4266-a8a6-6e80ccca167c";
preLVM = true;
allowDiscards = true;
crypttabExtraOpts = [
"tpm2-device=auto"
"tpm2-measure-pcr=yes"
];
};
};
boot.initrd.luks.devices = {
"luks_secure" = {
device = "/dev/disk/by-uuid/c21c8089-29a7-4266-a8a6-6e80ccca167c";
preLVM = true;
allowDiscards = true;
crypttabExtraOpts = [
"tpm2-device=auto"
"tpm2-measure-pcr=yes"
];
};
};
fileSystems."/boot" =
{ device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
options = [
"fmask=0022"
"dmask=0022"
];
};
swapDevices = [ ];
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [ vpl-gpu-rt intel-media-sdk vaapiIntel intel-media-driver];
};
enable = true;
extraPackages = with pkgs; [
vpl-gpu-rt
intel-media-sdk
vaapiIntel
intel-media-driver
];
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -1,4 +1,9 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}:
{
imports = [ ];
@@ -6,10 +11,15 @@
boot = {
consoleLogLevel = 0;
kernelParams = [
"quiet" "splash" "loglevel=0"
"udev.log_priority=3" "vt.global_cursor_default=0"
"rd.systemd.show_status=auto" "rd.udev.log_level=3"
"boot.shell_on_fail" "console=tty1"
"quiet"
"splash"
"loglevel=0"
"udev.log_priority=3"
"vt.global_cursor_default=0"
"rd.systemd.show_status=auto"
"rd.udev.log_level=3"
"boot.shell_on_fail"
"console=tty1"
];
initrd = {
@@ -25,7 +35,10 @@
};
};
fonts.packages = with pkgs; [ dejavu_fonts hack-font ];
fonts.packages = with pkgs; [
dejavu_fonts
hack-font
];
# Integrate with Lanzaboote
boot.loader.systemd-boot.enable = lib.mkForce false;
@@ -52,6 +65,8 @@
tctiEnvironment.enable = true;
};
environment.systemPackages = with pkgs; [ sbctl tpm2-tools ];
environment.systemPackages = with pkgs; [
sbctl
tpm2-tools
];
}

View File

@@ -1,4 +1,9 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}:
{
imports = [ ];

View File

@@ -1,10 +1,19 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}:
{
imports = [ ];
users.users.gunalx = {
users.users.gunalx = {
isNormalUser = true;
extraGroups = [ "wheel" "tss" "networking" ]; # Enable sudo for the user.
extraGroups = [
"wheel"
"tss"
"networking"
]; # Enable sudo for the user.
packages = with pkgs; [
];
};

View File

@@ -1,15 +1,20 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}:
{
imports = [ ];
system.rebuild.enableNg = true;
nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [
# example "python3.11-youtube-dl-2021.12.17"
];
sops.secrets."github/api" = {
sops.secrets."github/api" = {
mode = "0444";
group = "root";
};
@@ -20,8 +25,14 @@
!include ${config.sops.secrets."github/api".path}
'';
settings = {
trusted-users = [ "gunalx" "root" ];
experimental-features = [ "nix-command" "flakes" ];
trusted-users = [
"gunalx"
"root"
];
experimental-features = [
"nix-command"
"flakes"
];
substituters = [
"https://cache.nixos.org/"
"https://cuda-maintainers.cachix.org"
@@ -31,55 +42,58 @@
];
trusted-public-keys = [
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixos-rocm.cachix.org-1:VEpsf7pRIijjd8csKjFNBGzkBqOmw8H9PRmgAq14LnE="
"nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs="
];
};
};
buildMachines = [
{
hostName = "localhost";
system = "x86_64-linux";
maxJobs = 4;
speedFactor = 8000;
supportedFeatures = [ ];
mandatoryFeatures = [ ];
}
{
hostName = "aragon";
system = "x86_64-linux";
# if the builder supports building for multiple architectures,
# replace the previous line by, e.g.,
# systems = ["x86_64-linux" "aarch64-linux"];
maxJobs = 6;
speedFactor = 6001;
supportedFeatures = [ ];
mandatoryFeatures = [ ];
}
{
hostName = "galadriel";
system = "x86_64-linux";
maxJobs = 4;
speedFactor = 4001;
supportedFeatures = [ "cuda" ];
mandatoryFeatures = [ ];
}
{
hostName = "bolle.pbsds.net";
system = "x86_64-linux";
maxJobs = 6;
speedFactor = 6000;
}
{
hostName = "garp.pbsds.net";
system = "x86_64-linux";
maxJobs = 4;
# i7-6700
speedFactor = 4000;
}
buildMachines = [
{ hostName = "localhost";
system = "x86_64-linux";
maxJobs = 4;
speedFactor = 8000;
supportedFeatures = [ ];
mandatoryFeatures = [ ];
}
{ hostName = "aragon";
system = "x86_64-linux";
# if the builder supports building for multiple architectures,
# replace the previous line by, e.g.,
# systems = ["x86_64-linux" "aarch64-linux"];
maxJobs = 6;
speedFactor = 6001;
supportedFeatures = [ ];
mandatoryFeatures = [ ];
}
{ hostName = "galadriel";
system = "x86_64-linux";
maxJobs = 4;
speedFactor = 4001;
supportedFeatures = [ "cuda" ];
mandatoryFeatures = [ ];
}
{ hostName = "bolle.pbsds.net";
system = "x86_64-linux";
maxJobs = 6;
speedFactor = 6000;
}
{ hostName = "garp.pbsds.net";
system = "x86_64-linux";
maxJobs = 4;
# i7-6700
speedFactor = 4000;
}
];
];
distributedBuilds = true;
};
system.autoUpgrade = {
enable = true;
@@ -90,5 +104,4 @@
];
};
}

View File

@@ -1,11 +1,16 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}:
{
imports = [ ];
security.polkit.enable = true;
security.pam.services.swaylock = {};
security.pam.services.swaylock-effects = {};
security.pam.services.swaylock = { };
security.pam.services.swaylock-effects = { };
}

View File

@@ -1,9 +1,13 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}:
{
imports = [ ];
services.pulseaudio.enable = lib.mkDefault false;
security.rtkit.enable = lib.mkDefault true;
services.pipewire = lib.mkDefault {
@@ -21,6 +25,6 @@
easyeffects
];
programs.dconf.enable = lib.mkDefault true; #needed for easyeffects for some reason
programs.dconf.enable = lib.mkDefault true; # needed for easyeffects for some reason
}

View File

@@ -4,7 +4,7 @@
pkgs.ssh-to-age
pkgs.sops
];
# This will add secrets.yaml to the nix store
# You can avoid this by adding a string to the full path instead, i.e.
# sops.defaultSopsFile = "/root/.sops/secrets/example.yaml";
@@ -12,12 +12,12 @@
sops = {
defaultSopsFile = ./secrets.yaml;
validateSopsFiles = false;
# This will automaticx-sopsally import SSH keys as age keys
age.sshKeyPaths = [
"/etc/ssh/nixos"
"/root/.ssh/nixos"
];
"/etc/ssh/nixos"
"/root/.ssh/nixos"
];
#This is using an age key that is expected to already be in the filesystem
age.keyFile = "/var/lib/sops-nix/key.txt";
#age.keyFile = "/root/.config/sops/age/key.txt";