Files
nixos-config/nixos-configurations/shared.nix

264 lines
6.1 KiB
Nix
Raw Normal View History

2023-06-05 12:49:13 +02:00
{ pkgs, ... }:
2023-03-27 12:44:37 +02:00
{
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
time.timeZone = "Europe/Amsterdam";
2023-06-19 17:54:47 +02:00
nixpkgs.config.allowUnfree = true;
2023-05-11 19:18:17 +02:00
networking.networkmanager.enable = true;
2023-05-11 18:17:42 +02:00
2023-06-03 10:10:49 +02:00
hardware.pulseaudio.enable = false;
2023-05-25 12:45:19 +02:00
2023-06-03 10:10:49 +02:00
virtualisation.docker.enable = true;
2023-05-23 19:50:38 +02:00
2023-04-08 01:04:52 +02:00
services = {
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
2023-03-27 12:44:37 +02:00
};
};
sound.enable = true;
2023-06-12 13:49:43 +02:00
hardware.opengl.enable = true;
security = {
rtkit.enable = true;
polkit.enable = true;
};
# Make swaylock work
security.pam.services.swaylock = {
text = ''
auth include login
'';
};
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
];
};
2023-03-27 12:44:37 +02:00
2023-06-03 08:31:08 +02:00
fonts = {
fonts = with pkgs; [
2023-06-06 00:19:37 +02:00
noto-fonts
noto-fonts-emoji
noto-fonts-cjk-sans
nerdfonts
roboto
2023-06-03 08:31:08 +02:00
jetbrains-mono
2023-06-21 00:40:46 +02:00
open-sans
2023-06-03 08:31:08 +02:00
];
};
2023-04-15 00:28:20 +02:00
2023-03-27 12:44:37 +02:00
users.users.thiloho = {
isNormalUser = true;
2023-05-23 19:50:38 +02:00
extraGroups = [ "wheel" "networkmanager" "docker" ];
2023-03-27 12:44:37 +02:00
};
2023-05-15 22:45:58 +02:00
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
2023-06-03 04:58:58 +02:00
pinentryFlavor = "gtk2";
2023-05-15 22:45:58 +02:00
};
2023-03-27 12:44:37 +02:00
# Home manager configuration
2023-06-12 18:00:12 +02:00
home-manager.users.thiloho = { pkgs, lib, config, ... }: {
2023-06-12 13:49:43 +02:00
wayland.windowManager.sway = {
enable = true;
wrapperFeatures.gtk = true;
config = {
modifier = "Mod1";
terminal = "alacritty";
menu = ''
tofi-run --width "100%" --height "100%" --border-width 0 --outline-width 0 --padding-left "35%" --padding-top "35%" --result-spacing 25 --num-results 5 --font "monospace" --background-color "#000A" | xargs swaymsg exec --
'';
bars = [
{ command = "waybar"; }
];
2023-06-12 18:00:12 +02:00
keybindings = let
modifier = config.wayland.windowManager.sway.config.modifier;
in lib.mkOptionDefault {
"${modifier}+Shift+S" = ''exec grim -g "$(slurp)" - | swappy -f -'';
};
2023-06-12 13:49:43 +02:00
};
xwayland = false;
};
2023-03-27 12:44:37 +02:00
programs = {
2023-06-12 13:49:43 +02:00
waybar = {
enable = true;
settings = [
{
modules-left = [ "sway/workspaces" ];
modules-center = [ "sway/window" ];
modules-right = [ "user" "memory" "disk" "cpu" "clock" ];
user = {
format = "{user} - Uptime: {work_H}:{work_M}h";
};
memory = {
format = "Memory: {used}GiB";
};
disk = {
format = "Disk: {free}";
};
cpu = {
format = "CPU: {usage}%";
};
clock = {
interval = 60;
format = "{:%Y-%m-%d - %H:%M}";
};
}
];
style = ''
* {
border: none;
border-radius: 0;
2023-06-21 00:40:46 +02:00
font-family: "Open Sans";
font-size: 0.875rem;
2023-06-24 20:17:33 +02:00
font-weight: 600;
2023-06-12 13:49:43 +02:00
}
window#waybar {
background-color: #1a1a1a;
color: #e6e6e6;
}
#workspaces button, #user, #memory, #disk, #cpu, #clock {
padding-top: 0.125rem;
padding-bottom: 0.125rem;
padding-left: 0.5rem;
padding-right: 0.5rem;
background-color: #262626;
border: 0.0625rem solid #404040;
}
'';
};
2023-06-15 20:09:00 +02:00
swaylock = {
enable = true;
settings = let
wallpaper = pkgs.callPackage ./wallpaper.nix {};
in {
image = "${wallpaper}";
};
};
2023-06-06 00:19:37 +02:00
bash = {
enable = true;
shellAliases = {
rbs = "sudo nixos-rebuild switch --flake .";
2023-06-15 18:09:00 +02:00
off = "sudo systemctl poweroff";
2023-06-22 00:11:29 +02:00
cleanup = "nix store optimise && nix-collect-garbage -d && sudo nix store optimise && sudo nix-collect-garbage -d";
2023-06-06 00:19:37 +02:00
};
};
helix = {
2023-04-09 23:13:55 +02:00
enable = true;
settings = {
2023-06-05 17:00:34 +02:00
theme = "gruvbox_transparent";
editor = {
line-number = "relative";
cursorline = true;
cursor-shape = {
normal = "block";
insert = "bar";
select = "underline";
};
};
2023-06-11 11:08:33 +02:00
editor.file-picker = {
hidden = false;
};
};
2023-06-05 17:00:34 +02:00
themes = {
gruvbox_transparent = {
"inherits" = "gruvbox";
"ui.background" = "{}";
};
};
2023-04-09 23:13:55 +02:00
};
2023-06-03 08:31:08 +02:00
alacritty = {
enable = true;
settings = {
2023-06-12 19:49:59 +02:00
window.opacity = 0.75;
2023-06-03 08:31:08 +02:00
font = {
normal = {
family = "JetBrainsMono";
style = "regular";
};
bold = {
family = "JetBrainsMono";
style = "regular";
};
italic = {
family = "JetBrainsMono";
style = "regular";
};
bold_italic = {
family = "JetBrainsMono";
style = "regular";
};
size = 11.00;
};
};
};
2023-06-24 21:03:32 +02:00
firefox.enable = true;
2023-03-27 12:44:37 +02:00
git = {
enable = true;
userName = "thiloho";
userEmail = "123883702+thiloho@users.noreply.github.com";
signing = {
signByDefault = true;
};
2023-03-27 12:44:37 +02:00
};
2023-06-12 13:49:43 +02:00
};
gtk = {
enable = true;
theme = {
package = pkgs.gnome.gnome-themes-extra;
name = "Adwaita-dark";
};
2023-03-27 12:44:37 +02:00
};
home = {
2023-06-16 14:33:48 +02:00
sessionVariables = {
2023-06-22 00:11:29 +02:00
NIXOS_OZONE_WL = "1";
2023-06-16 14:33:48 +02:00
EDITOR = "hx";
};
2023-06-12 13:49:43 +02:00
packages = with pkgs; [
libreoffice
airshipper
prismlauncher
nil
rust-analyzer
marksman
nodePackages.typescript-language-server
nodePackages.svelte-language-server
nodePackages.vscode-langservers-extracted
postgresqlJitPackages.plpgsql_check
dconf
tofi
wl-clipboard
xdg-utils
slurp
2023-06-12 18:00:12 +02:00
grim
swappy
2023-06-23 14:52:35 +02:00
kooha
2023-06-24 21:03:32 +02:00
ventoy
2023-06-12 13:49:43 +02:00
];
2023-06-24 21:03:32 +02:00
};
2023-03-27 12:44:37 +02:00
};
}