diff --git a/flake.lock b/flake.lock
index 16a783a..2f5cc99 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,5 +1,21 @@
{
"nodes": {
+ "base16-schemes": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1696158499,
+ "narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=",
+ "owner": "tinted-theming",
+ "repo": "base16-schemes",
+ "rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "base16-schemes",
+ "type": "github"
+ }
+ },
"flake-compat": {
"locked": {
"lastModified": 1696426674,
@@ -133,6 +149,25 @@
"type": "github"
}
},
+ "nix-colors": {
+ "inputs": {
+ "base16-schemes": "base16-schemes",
+ "nixpkgs-lib": "nixpkgs-lib"
+ },
+ "locked": {
+ "lastModified": 1707825078,
+ "narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=",
+ "owner": "misterio77",
+ "repo": "nix-colors",
+ "rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1",
+ "type": "github"
+ },
+ "original": {
+ "owner": "misterio77",
+ "repo": "nix-colors",
+ "type": "github"
+ }
+ },
"nix-darwin": {
"inputs": {
"nixpkgs": [
@@ -200,6 +235,21 @@
"type": "indirect"
}
},
+ "nixpkgs-lib": {
+ "locked": {
+ "lastModified": 1697935651,
+ "narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=",
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "type": "github"
+ }
+ },
"nixvim": {
"inputs": {
"flake-compat": "flake-compat",
@@ -256,6 +306,7 @@
"root": {
"inputs": {
"home-manager": "home-manager",
+ "nix-colors": "nix-colors",
"nix-flatpak": "nix-flatpak",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
diff --git a/flake.nix b/flake.nix
index f789c53..0ceeef2 100644
--- a/flake.nix
+++ b/flake.nix
@@ -5,6 +5,7 @@
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
nixpkgs.url = "nixpkgs/nixos-unstable";
nix-flatpak.url = "github:gmodena/nix-flatpak";
+ nix-colors.url = "github:misterio77/nix-colors";
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
@@ -15,28 +16,38 @@
};
};
- outputs = { self, nixos-hardware, nixpkgs, nix-flatpak, nixvim, home-manager, ... }@inputs:
+ outputs = {
+ self,
+ nixos-hardware,
+ nixpkgs,
+ nix-flatpak,
+ nixvim,
+ home-manager,
+ ...
+ }@inputs:
+
let
system = "x86_64-linux";
currentSystem = system;
pkgs = import nixpkgs {
inherit system;
};
-
lib = nixpkgs.lib;
-
in {
# Laptop NixOS configuration
nixosConfigurations = {
default = lib.nixosSystem {
inherit system;
modules = [
+ ./system
+ ./programs
+ ./hertog/user.nix
home-manager.nixosModules.home-manager {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users = {
- hertog = import ./Users/Hertog/homeFull.nix;
+ hertog = import hertog/home.nix;
};
};
}
@@ -48,7 +59,7 @@
};
};
packages."${system}" = {
- default = nixvim.legacyPackages."${system}".makeNixvimWithModule {
+ vim = nixvim.legacyPackages."${system}".makeNixvimWithModule {
module = import ./programs/vim;
};
};
diff --git a/hertog/home.nix b/hertog/home.nix
new file mode 100644
index 0000000..ed7ca66
--- /dev/null
+++ b/hertog/home.nix
@@ -0,0 +1,70 @@
+{ pkgs, inputs }:
+
+{
+ programs.home-manage.enable = true;
+
+ imports = [
+ inputs.nix-colors.homeManagerModules.default
+ ../assets/colorScheme.nix
+ ../programs/sway
+ ../programs/dconf.nix
+ ../programs/zsh.nix
+ ../programs/git.nix
+ ../programs/firefox.nix
+ ../programs/obs.nix
+ ];
+
+ home = {
+ stateVersion = "23.05";
+ username = "hertog";
+ homeDirectory = "/home/hertog";
+ packages = with pkgs; [
+ # Base
+ epiphany
+ thunderbird
+ deltachat-desktop
+ vlc
+ bottles
+ pavucontrol
+ qbittorrent
+ floorp
+ # Office
+ slack
+ onlyoffice-bin
+ marker
+ # Security
+ keepassxc
+ # Entertainment
+ cartridges
+ prismlauncher-qt5
+ qFlipper
+ protonup-qt
+ stremio
+ spotify
+ r2modman
+ # Art
+ inkscape
+ gimp
+ loupe
+ # Shell
+ thefuck
+ pmbootstrap
+ wally-cli
+ # Programming
+ godot_4
+ unityhub
+ lapce
+ signal-desktop
+ blanket
+ bookworm
+ retroarch
+ libretro.flycast
+ endeavour
+ R
+ rstudio
+ qemu
+ qemu_kvm
+ nixos-generators
+ ];
+ };
+}
diff --git a/hertog/user.nix b/hertog/user.nix
new file mode 100644
index 0000000..5ea5f9c
--- /dev/null
+++ b/hertog/user.nix
@@ -0,0 +1,11 @@
+{
+ users.users.hertog = {
+ initialPassword = "";
+ isNormalUser = true;
+ description = "Johannes Hendrik Gerard van der Weide";
+ extraGroups = [ "networkmanager" "wheel" "sudo" "adm" "video" "audio" ];
+ openssh.authorizedKeys.keys = [
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEjpvCSpIUMsZ8pmz2LbvsJUdYroenTp6PYXw9ACiYBq hertog@fsfe.org"
+ ];
+ };
+}
diff --git a/programs/dconf.nix b/programs/dconf.nix
new file mode 100644
index 0000000..807de43
--- /dev/null
+++ b/programs/dconf.nix
@@ -0,0 +1,6 @@
+{
+ dconf = {
+ enable = true;
+ settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
+ };
+}
diff --git a/programs/default.nix b/programs/default.nix
new file mode 100644
index 0000000..4c9bff6
--- /dev/null
+++ b/programs/default.nix
@@ -0,0 +1,5 @@
+{
+ imports = [
+ ./steam.nix
+ ];
+}
diff --git a/programs/firefox.nix b/programs/firefox.nix
new file mode 100644
index 0000000..c63e388
--- /dev/null
+++ b/programs/firefox.nix
@@ -0,0 +1,11 @@
+{
+ programs.firefox = {
+ enable = true;
+ profiles.hertog = {
+ isDefault = true;
+ name = "Hertog";
+ path = "/home/hertog/.mozilla/firefox/7p5jc0z4.default";
+
+ };
+ };
+}
diff --git a/programs/git.nix b/programs/git.nix
new file mode 100644
index 0000000..b86fc58
--- /dev/null
+++ b/programs/git.nix
@@ -0,0 +1,7 @@
+{
+ programs.git = {
+ enable = true;
+ userName = "Johannes Hendrik Gerard van der Weide";
+ userEmail = "hertog@fsfe.org";
+ };
+}
diff --git a/programs/hyfetch.nix b/programs/hyfetch.nix
new file mode 100644
index 0000000..6b4ee7a
--- /dev/null
+++ b/programs/hyfetch.nix
@@ -0,0 +1,12 @@
+{
+ programs.hyfetch = {
+ enable = true;
+ settings = {
+ preset = "bisexual";
+ mode = "rgb";
+ color_align = {
+ mode = "horizontal";
+ };
+ };
+ };
+}
diff --git a/programs/obs.nix b/programs/obs.nix
new file mode 100644
index 0000000..0997e28
--- /dev/null
+++ b/programs/obs.nix
@@ -0,0 +1,5 @@
+{
+ programs.obs-studio = {
+ enable = true;
+ };
+}
diff --git a/programs/steam.nix b/programs/steam.nix
new file mode 100644
index 0000000..145c195
--- /dev/null
+++ b/programs/steam.nix
@@ -0,0 +1,7 @@
+{
+ programs.steam = {
+ enable = true;
+ remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
+ dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
+ };
+}
diff --git a/programs/sway/default.nix b/programs/sway/default.nix
new file mode 100644
index 0000000..a1f9d89
--- /dev/null
+++ b/programs/sway/default.nix
@@ -0,0 +1,7 @@
+{
+ imports = [
+ ./wofi.nix
+ ./waybar.nix
+ ./sway.nix
+ ];
+}
diff --git a/programs/sway/sway.nix b/programs/sway/sway.nix
new file mode 100644
index 0000000..b1f51b5
--- /dev/null
+++ b/programs/sway/sway.nix
@@ -0,0 +1,74 @@
+{ config, nix-colors, lib }:
+let
+ config = import ../../theming/colorScheme.nix;
+ modifierKey = config.wayland.windowManager.sway.config.modifier;
+in
+{
+ wayland.windowManager.sway = {
+ enable = true;
+ wrapperFeatures.gtk = true;
+ config = rec {
+ modifier = "Mod4";
+ terminal = "alacritty";
+ menu = "wofi --show drun";
+ startup = [
+ {command = "exec --no-startup-id /usr/lib/xdg-desktop-portal -r";}
+ {command = "export XDG_CURRENT_DESKTOP=sway";}
+ {command = "export QT_QPA_PLATFORM=wayland";}
+ {command = "swaybg -i /etc/nixos/theming/background.svg";}
+ {command = "keepassxc /home/hertog/Documents/Belangrijk/Wachtwoorden.kdbx";}
+ ];
+ keybindings = lib.mkOptionDefault {
+ "XF86MonBrightnessUp" = "exec light -A 5";
+ "XF86MonBrightnessDown" = "exec light -U 5";
+ "XF86AudioMute" = "exec pamixer -t";
+ "XF86AudioRaiseVolume" = "exec pamixer -i 5";
+ "XF86AudioLowerVolume" = "exec pamixer -d 5";
+ };
+ colors = {
+ background = "${config.colorScheme.palette.base00}";
+ focused = {
+ indicator = "#b30000";
+ background = "#b30000";
+ border = "#b30000";
+ childBorder = "#b30000";
+ text = "${config.colorScheme.pallete.base09}";
+ };
+ focusedInactive = {
+ indicator = "#303030";
+ background = "#303030";
+ border = "#303030";
+ childBorder = "#303030";
+ text = "${config.colorScheme.pallete.base09}";
+ };
+ unfocused = {
+ indicator = "#1e1e1e";
+ background = "#1e1e1e";
+ border = "#1e1e1e";
+ childBorder = "#1e1e1e";
+ text = "${config.colorScheme.pallete.base09}";
+ };
+ };
+ bars = [
+ {
+ command = "waybar";
+ }
+ ];
+ window = {
+ titlebar = false;
+ };
+ input = {
+ "type:touchpad" = {
+ dwt = "enabled";
+ tap = "enabled";
+ middle_emulation = "enabled";
+ };
+ };
+ output = {
+ eDP-1 = {
+ scale = "1";
+ };
+ };
+ };
+ };
+}
diff --git a/programs/sway/waybar.nix b/programs/sway/waybar.nix
new file mode 100644
index 0000000..94ad9db
--- /dev/null
+++ b/programs/sway/waybar.nix
@@ -0,0 +1,82 @@
+{
+ programs.waybar = {
+ enable = true;
+
+ settings = {
+ mainBar = {
+ layer = "top";
+ position = "top";
+ height = 20;
+
+ modules-left = [ "sway/workspaces" "sway/mode" ];
+
+ "sway/workspaces" = {
+ disable-scroll = true;
+ all-outputs = true;
+ };
+
+ modules-center = [ "clock" ];
+
+ "clock" = {
+ interval = 1;
+ format = "{:%H:%M:%S}";
+ format-alt = "{ %A, %d %B, %Y}";
+ tooltip-format = "{:%d %B, %Y}\n{calendar}";
+ };
+
+ modules-right = [ "backlight" "pulseaudio" "network" "battery" ];
+
+ "backlight" = {
+ format = "L{percent}% ";
+ scroll-step = 1.0;
+ };
+ "pulseaudio" = {
+ format = "A{volume}% ";
+ format-muted = "Muted ";
+ on-scroll-up = "pamixer -i 1";
+ on-scroll-down = "pamixer -d 1";
+ };
+ "network" = {
+ format-wifi = "W{signalStrength} ";
+ format-ethernet = "E{signalStrength} ";
+ format-disconnected = "Offline ";
+ tooltip-format = "{ifname}: {ipaddr}";
+ tooltip-format-wifi = "{essid} ({signalStrength}%): {ipaddr}";
+ };
+ "battery" = {
+ states = {
+ warning = 30;
+ critical = 15;
+ };
+ format = "B{capacity}% ";
+ format-alt = "{time} {icon}";
+ };
+ };
+ };
+
+ style = ''
+ * {
+ border: none;
+ border-radius: 0;
+ font-family: monospace;
+ }
+ window#waybar {
+ background: #242424;
+ color: #ffffff;
+ }
+ #workspaces button {
+ padding: 0 5px;
+ background-color: #1e1e1e;
+ color: #ffffff;
+ }
+ #workspaces button:hover {
+ background: #303030;
+ color: #ffffff;
+ }
+ #workspaces button.focused {
+ background: #b30000;
+ color: #ffffff;
+ }
+ '';
+ };
+}
diff --git a/programs/sway/wofi.nix b/programs/sway/wofi.nix
new file mode 100644
index 0000000..e5f94a8
--- /dev/null
+++ b/programs/sway/wofi.nix
@@ -0,0 +1,49 @@
+{
+ programs.wofi = {
+ enable = true;
+
+ settings = {
+ gtk_dark = true;
+ location = "left";
+ allow_markup = true;
+ width = 250;
+ };
+
+ style = ''
+ * {
+ font-family: monospace;
+ }
+
+ window {
+ background-color: #242424;
+ }
+
+ #input {
+ margin: 5px;
+ border: none;
+ color: #ffffff;
+ background-color: #b30000;
+ }
+
+ #text {
+ margin: 5px;
+ border: none;
+ color: #ffffff;
+ }
+
+ #entry {
+ border: none;
+ }
+
+ #entry:focus {
+ border: none;
+ }
+
+ #entry:selected {
+ background-color: #b30000;
+ border-radius: 5px;
+ border: none;
+ }
+ '';
+ };
+}
diff --git a/programs/vim/colorScheme.nix b/programs/vim/colorScheme.nix
index 41ece4d..ac85880 100644
--- a/programs/vim/colorScheme.nix
+++ b/programs/vim/colorScheme.nix
@@ -1,7 +1,29 @@
+{ config, nix-colors, inputs, ... }:
+let
+ config = import ../../theming/colorScheme.nix;
+in
{
colorschemes = {
- nord = {
+ base16 = {
enable = true;
+ customColorScheme = {
+ base00 = "${config.colorScheme.palette.base00}";
+ base01 = "${config.colorScheme.palette.base01}";
+ base02 = "${config.colorScheme.palette.base02}";
+ base03 = "${config.colorScheme.palette.base03}";
+ base04 = "${config.colorScheme.palette.base04}";
+ base05 = "${config.colorScheme.palette.base05}";
+ base06 = "${config.colorScheme.palette.base06}";
+ base07 = "${config.colorScheme.palette.base07}";
+ base08 = "${config.colorScheme.palette.base08}";
+ base09 = "${config.colorScheme.palette.base09}";
+ base0A = "${config.colorScheme.palette.base0A}";
+ base0B = "${config.colorScheme.palette.base0B}";
+ base0C = "${config.colorScheme.palette.base0C}";
+ base0D = "${config.colorScheme.palette.base0D}";
+ base0E = "${config.colorScheme.palette.base0E}";
+ base0F = "${config.colorScheme.palette.base0F}";
+ };
};
};
}
diff --git a/programs/vim/default.nix b/programs/vim/default.nix
index 035dfb7..419077f 100644
--- a/programs/vim/default.nix
+++ b/programs/vim/default.nix
@@ -1,5 +1,5 @@
+
{
- # Import the nixVim modules
imports = [
./extraLua.nix
./lsp.nix
diff --git a/programs/zsh.nix b/programs/zsh.nix
new file mode 100644
index 0000000..6767490
--- /dev/null
+++ b/programs/zsh.nix
@@ -0,0 +1,40 @@
+{ pkgs }:
+
+{
+ # Zsh config
+ programs.zsh = {
+ enable = true;
+ initExtra = "
+ hyfetch
+ ";
+ shellAliases = {
+ ll = "ls -l";
+ please = "sudo";
+ update = "sudo nixos-rebuild switch --flake /etc/nixos/#laptop";
+ vim = "nix run git+https://git.saragerretsen.nl/Hertog/HertogVim";
+ vimUpdate = "nix run --refresh git+https://git.saragerretsen.nl/Hertog/HertogVim";
+ sudovim = "sudo nix run git+https://git.saragerretsen.nl/Hertog/HertogVim";
+ };
+ plugins = [
+ {
+ name = "zsh-nix-shell";
+ file = "nix-shell.plugin.zsh";
+ src = pkgs.fetchFromGitHub {
+ owner = "chisui";
+ repo = "zsh-nix-shell";
+ rev = "v0.7.0";
+ sha256 = "149zh2rm59blr2q458a5irkfh82y3dwdich60s9670kl3cl5h2m1";
+ };
+ }
+ ];
+ oh-my-zsh = {
+ enable = true;
+ plugins = [
+ "git"
+ "thefuck"
+ "sudo"
+ ];
+ theme = "mh";
+ };
+ };
+}
diff --git a/system/appliances.nix b/system/appliances.nix
new file mode 100644
index 0000000..be67b15
--- /dev/null
+++ b/system/appliances.nix
@@ -0,0 +1,20 @@
+{
+ services = {
+ printing = {
+ enable = true;
+ browsing = true;
+ browsedConf = ''
+ BrowseDNSSDSubTypes _cups,_print
+ BrowseLocalProtocols all
+ BrowseRemoteProtocols all
+ CreateIPPPrinterQueues All
+
+ BrowseProtocols all
+ '';
+ };
+ };
+ hardware = {
+ keyboard.zsa.enable = true;
+ flipperzero.enable = true;
+ };
+}
diff --git a/system/default.nix b/system/default.nix
new file mode 100644
index 0000000..126ad08
--- /dev/null
+++ b/system/default.nix
@@ -0,0 +1,26 @@
+{
+ imports = [
+ ./environment.nix
+ ./locale.nix
+ ./networking.nix
+ ./xserver.nix
+ ./services.nix
+ ./appliances.nix
+ ./hardware-configuration.nix
+ ];
+
+ nix = {
+ settings = {
+ # Enable flakes and new 'nix' command
+ experimental-features = "nix-command flakes";
+ # Deduplicate and optimize nix store
+ auto-optimise-store = true;
+ };
+ };
+
+ nixpkgs.config = {
+ allowUnfree = true;
+ };
+
+ system.stateVersion = "23.05";
+}
diff --git a/system/environment.nix b/system/environment.nix
new file mode 100644
index 0000000..892ece6
--- /dev/null
+++ b/system/environment.nix
@@ -0,0 +1,72 @@
+{ pkgs, nix-flatpak }:
+let
+ mini-text = pkgs.callPackage ../../Programs/MiniText { };
+ hyperplane = pkgs.callPackage ../../Programs/Hyperplane { };
+in
+{
+ # Set zsh (config is still per user)
+ programs.zsh.enable = true;
+ users.defaultUserShell = pkgs.zsh;
+ environment = {
+ # Default shell
+ shells = [ pkgs.zsh ];
+ # Other defaults
+ variables = {
+ EDITOR = "vi";
+ SYSTEMD_EDITOR = "vi";
+ VISUAL = "vi";
+ };
+ # Nixos default installed packages (this is set to get rid of nano >:3 )
+ defaultPackages = with pkgs; [
+ nvi
+ perl
+ rsync
+ strace
+ ];
+ # Systemwide installed packages
+ systemPackages = with pkgs; [
+ ffmpeg
+ ranger
+ parted
+ util-linux
+ bottom
+ curl
+ wget
+ git
+ gitui
+ lynx
+ # System
+ gnome.gnome-control-center
+ gnome.nautilus
+ gnome.file-roller
+ alacritty
+ gnome-text-editor
+ warp
+ tor-browser-bundle-bin
+ pamixer
+ hyperplane
+ mini-text
+ # Sway nees this
+ swaybg
+ xdg-desktop-portal
+ xdg-desktop-portal-wlr
+ ];
+ };
+
+ services.flatpak = {
+ enable = true;
+ packages = [
+ "com.kristianduske.TrenchBroom"
+ ];
+ };
+ nixpkgs.config = {
+ permittedInsecurePackages = [
+ "electron-24.8.6"
+ "electron-22.3.27"
+ ];
+ };
+ # Fonts
+ fonts.packages = [
+ pkgs.ibm-plex
+ ];
+}
diff --git a/system/hardware-configuration.nix b/system/hardware-configuration.nix
new file mode 100644
index 0000000..9c00619
--- /dev/null
+++ b/system/hardware-configuration.nix
@@ -0,0 +1,42 @@
+# 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 = [ "xhci_pci" "thunderbolt" "nvme" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/e59c3434-c3fe-473d-9b21-8d3902eb979e";
+ fsType = "ext4";
+ };
+
+ boot.initrd.luks.devices."luks-169925e5-1b60-431c-8844-45f2dee3ddf9".device = "/dev/disk/by-uuid/169925e5-1b60-431c-8844-45f2dee3ddf9";
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/84F4-B0F5";
+ fsType = "vfat";
+ };
+
+ swapDevices =
+ [
+ ];
+
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+ # (the default) this is the recommended approach. When using systemd-networkd it's
+ # still possible to use this option, but it's recommended to use it in conjunction
+ # with explicit per-interface declarations with `networking.interfaces..useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/system/locale.nix b/system/locale.nix
new file mode 100644
index 0000000..7462d13
--- /dev/null
+++ b/system/locale.nix
@@ -0,0 +1,19 @@
+{
+ # Set your time zone.
+ time.timeZone = "Europe/Amsterdam";
+
+ # Select internationalisation properties.
+ i18n.defaultLocale = "nl_NL.UTF-8";
+
+ i18n.extraLocaleSettings = {
+ LC_ADDRESS = "nl_NL.UTF-8";
+ LC_IDENTIFICATION = "nl_NL.UTF-8";
+ LC_MEASUREMENT = "nl_NL.UTF-8";
+ LC_MONETARY = "nl_NL.UTF-8";
+ LC_NAME = "nl_NL.UTF-8";
+ LC_NUMERIC = "nl_NL.UTF-8";
+ LC_PAPER = "nl_NL.UTF-8";
+ LC_TELEPHONE = "nl_NL.UTF-8";
+ LC_TIME = "nl_NL.UTF-8";
+ };
+}
diff --git a/system/networking.nix b/system/networking.nix
new file mode 100644
index 0000000..07b02c1
--- /dev/null
+++ b/system/networking.nix
@@ -0,0 +1,3 @@
+{
+ networking.hostName = "puter";
+}
diff --git a/system/services.nix b/system/services.nix
new file mode 100644
index 0000000..95a4fda
--- /dev/null
+++ b/system/services.nix
@@ -0,0 +1,43 @@
+{ pkgs }:
+
+{
+ security = {
+ polkit.enable = true;
+ rtkit.enable = true;
+ };
+
+ services = {
+ xserver.displayManager.sessionPackages = [ pkgs.sway ];
+ pipewire = {
+ enable = true;
+ alsa = {
+ enable = true;
+ support32Bit = true;
+ };
+ pulse.enable = true;
+ jack.enable = true;
+ };
+ };
+
+ programs = {
+ light.enable = true;
+ };
+
+ boot = {
+ kernelParams = [ "i915.force_probe=9a49" ];
+ loader = {
+ efi.canTouchEfiVariables = true;
+ systemd-boot = {
+ enable = true;
+ editor = false;
+ };
+ };
+ };
+
+ hardware = {
+ opengl = {
+ enable = true;
+ driSupport32Bit = true;
+ };
+ };
+}
diff --git a/system/xserver.nix b/system/xserver.nix
new file mode 100644
index 0000000..841e2d4
--- /dev/null
+++ b/system/xserver.nix
@@ -0,0 +1,20 @@
+{ pkgs }:
+
+{
+ services.xserver = {
+ enable = true;
+ xkb.variant = "us";
+ xkb.layout = "nl";
+ libinput.enable = true;
+ displayManager.gdm.enable = true;
+ desktopManager = {
+ gnome.enable = true;
+ xterm.enable = false;
+ };
+ };
+ # Disable gnome default apps while keeping the gnome settings daemon
+ services.gnome = {
+ core-utilities.enable = false;
+ };
+ services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ];
+}
diff --git a/theming/background.svg b/theming/background.svg
new file mode 100644
index 0000000..5d910a8
--- /dev/null
+++ b/theming/background.svg
@@ -0,0 +1,840 @@
+
+
+
+
diff --git a/theming/colorScheme.nix b/theming/colorScheme.nix
new file mode 100644
index 0000000..0f48ae7
--- /dev/null
+++ b/theming/colorScheme.nix
@@ -0,0 +1,25 @@
+{
+ colorScheme = {
+ slug = "icy";
+ name = "Icy Dark";
+ author = "icyphox.ga";
+ palette = {
+ base00 = "#021012"; # Default Background
+ base01 = "#031619"; # Lighter Background (Used for status bars, line number and folding marks)
+ base02 = "#041f23"; # Selection Background
+ base03 = "#052e34"; # Comments, Invisibles, Line Highlighting
+ base04 = "#064048"; # Dark Foreground (Used for status bars)
+ base05 = "#095b67"; # Default Foreground, Caret, Delimiters, Operators
+ base06 = "#0c7c8c"; # Light Foreground (Not often used)
+ base07 = "#109cb0"; # Light Background (Not often used)
+ base08 = "#16c1d9"; # Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted
+ base09 = "#b3ebf2"; # Integers, Boolean, Constants, XML Attributes, Markup Link Url
+ base0A = "#80deea"; # Classes, Markup Bold, Search Text Background
+ base0B = "#4dd0e1"; # Strings, Inherited Class, Markup Code, Diff Inserted
+ base0C = "#26c6da"; # Support, Regular Expressions, Escape Characters, Markup Quotes
+ base0D = "#00bcd4"; # Functions, Methods, Attribute IDs, Headings
+ base0E = "#00acc1"; # Keywords, Storage, Selector, Markup Italic, Diff Changed
+ base0F = "#0097a7"; # Deprecated, Opening/Closing Embedded Language Tags, e.g.
+ };
+ };
+}