diff options
| author | Alexander Kassouni <alex@kassouni.net> | 2026-07-14 22:45:47 -0700 |
|---|---|---|
| committer | Alexander Kassouni <alex@kassouni.net> | 2026-07-14 22:45:47 -0700 |
| commit | 23ba623e405d0aa8d554274aacd019d7a015aa9d (patch) | |
| tree | fec751fc63de4ec026d04144c30ce95d8dba80ad | |
X11 is so back
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | Makefile | 7 | ||||
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | flake.lock | 189 | ||||
| -rw-r--r-- | flake.nix | 66 | ||||
| -rw-r--r-- | machines/hierophant/configuration.nix | 145 | ||||
| -rw-r--r-- | machines/hierophant/hardware-configuration.nix | 31 | ||||
| -rw-r--r-- | users/kassouni/ayu.nix | 156 | ||||
| -rw-r--r-- | users/kassouni/cursor.nix | 7 | ||||
| -rw-r--r-- | users/kassouni/firefox.nix | 55 | ||||
| -rw-r--r-- | users/kassouni/fuzzel.nix | 23 | ||||
| -rw-r--r-- | users/kassouni/ghostty.nix | 10 | ||||
| -rw-r--r-- | users/kassouni/git.nix | 14 | ||||
| -rw-r--r-- | users/kassouni/home.nix | 61 | ||||
| -rw-r--r-- | users/kassouni/neovim.nix | 44 | ||||
| -rw-r--r-- | users/kassouni/scripts/default.nix | 20 | ||||
| -rw-r--r-- | users/kassouni/ssh.nix | 13 | ||||
| -rw-r--r-- | users/kassouni/theme.nix | 27 |
18 files changed, 872 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..54b5801 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.direnv/ +.envrc +result diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..71c223b --- /dev/null +++ b/Makefile @@ -0,0 +1,7 @@ +.PHONY: rebuild format + +rebuild: + sudo nixos-rebuild switch --flake . + +format: + nix fmt diff --git a/README.md b/README.md new file mode 100644 index 0000000..41e63e0 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# kassouni's NixOS Configuration diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..8d94949 --- /dev/null +++ b/flake.lock @@ -0,0 +1,189 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1778716662, + "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1769996383, + "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1783740085, + "narHash": "sha256-qajyHfZY29G2oEQk+uHxmsJcRoBUBXP9maTpFlwP/dI=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "3cd22efe6471dc7365c822bd9ad73a21e55f38fb", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-26.05", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1784011430, + "narHash": "sha256-lDebytrYdd47IBLwvNOD+6AGeoqZ78CIKlp70hzW280=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "8eeec934ae0dbeca3d7868c059568a65c08b2fc3", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-26.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1769909678, + "narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "72716169fe93074c333e8d0173151350670b824c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1781216227, + "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-26.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1771848320, + "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2fc6539b481e1d2569f25f8799236694180c0993", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixvim": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs_2", + "systems": "systems" + }, + "locked": { + "lastModified": 1782919967, + "narHash": "sha256-pRwjfB5HQJ3m8J8bOR43pPHtHI7VUJSqwLA3P06cOY0=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "667c8471f4a0fb24d702d1a61af8609f1a5f1ba6", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "nixos-26.05", + "repo": "nixvim", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs", + "nixvim": "nixvim", + "xmonad-config": "xmonad-config" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "xmonad-config": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1784093981, + "narHash": "sha256-r+/nuaYsLs8fAFkjUUX7AbrRRkPK9iRj5INDiF6tuWQ=", + "path": "/home/kassouni/xmonad-config", + "type": "path" + }, + "original": { + "path": "/home/kassouni/xmonad-config", + "type": "path" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..6fd69cd --- /dev/null +++ b/flake.nix @@ -0,0 +1,66 @@ +{ + description = "kassouni's NixOS configs"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; + home-manager.url = "github:nix-community/home-manager/release-26.05"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + nixvim.url = "github:nix-community/nixvim/nixos-26.05"; + xmonad-config.url = "path:/home/kassouni/xmonad-config"; + }; + + outputs = + { + self, + nixpkgs, + home-manager, + nixvim, + xmonad-config, + ... + }@inputs: + let + systems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + forAllSystems = nixpkgs.lib.genAttrs systems; + in + { + + nixosConfigurations = { + hierophant = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./machines/hierophant/configuration.nix + ./machines/hierophant/hardware-configuration.nix + xmonad-config.nixosModules.default + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.kassouni = { + imports = [ + ./users/kassouni/home.nix + nixvim.homeModules.nixvim + ]; + }; + } + ]; + }; + }; + + devShells = forAllSystems (system: { + default = + let + pkgs = nixpkgs.legacyPackages.${system}; + in + pkgs.mkShell { + buildInputs = [ ]; + }; + }); + + formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt-tree); + }; +} diff --git a/machines/hierophant/configuration.nix b/machines/hierophant/configuration.nix new file mode 100644 index 0000000..6377cef --- /dev/null +++ b/machines/hierophant/configuration.nix @@ -0,0 +1,145 @@ +# 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 + ]; + + security.polkit.enable = true; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; + + services.tailscale.enable = true; + services.tailscale.extraSetFlags = [ "--ssh" ]; + + services.gnome.gnome-keyring.enable = true; + + nixpkgs.config.allowUnfree = true; + + hardware.graphics.enable = true; + services.xserver.enable = true; + services.xserver.videoDrivers = [ "nvidia" ]; + hardware.nvidia.open = true; # see the note above + + services.displayManager.sddm.enable = true; + + networking.hostName = "hierophant"; # Define your hostname. + # Pick only one of the below networking options. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + # networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + + # Set your time zone. + time.timeZone = "America/Los_Angeles"; + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + # console = { + # font = "Lat2-Terminus16"; + # keyMap = "us"; + # useXkbConfig = true; # use xkb.options in tty. + # }; + + # Configure keymap in X11 + # services.xserver.xkb.layout = "us"; + # services.xserver.xkb.options = "eurosign:e,caps:escape"; + + # Enable CUPS to print documents. + # services.printing.enable = true; + + # Enable sound. + # services.pulseaudio.enable = true; + # OR + services.pipewire = { + enable = true; + pulse.enable = true; + alsa.enable = true; + }; + + # Enable touchpad support (enabled default in most desktopManager). + # services.libinput.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.kassouni = { + isNormalUser = true; + home = "/home/kassouni"; + extraGroups = [ + "wheel" + "video" + "input" + "audio" + ]; # Enable 'sudo' for the user. + }; + + fonts.packages = with pkgs; [ + dejavu_fonts + ]; + + # programs.firefox.enable = true; + + # List packages installed in system profile. + # You can use https://search.nixos.org/ to find more packages (and options). + environment.systemPackages = with pkgs; [ ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + # 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. + # + # Most users should NEVER change this value after the initial install, for any reason, + # even if you've upgraded your system to a new NixOS release. + # + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how + # to actually do that. + # + # This value being lower than the current NixOS release does NOT mean your system is + # out of date, out of support, or vulnerable. + # + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, + # and migrated your data accordingly. + # + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "25.05"; # Did you read the comment? + +} diff --git a/machines/hierophant/hardware-configuration.nix b/machines/hierophant/hardware-configuration.nix new file mode 100644 index 0000000..fec933d --- /dev/null +++ b/machines/hierophant/hardware-configuration.nix @@ -0,0 +1,31 @@ +# 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" "ahci" "thunderbolt" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/20be168c-8032-4eb3-975c-a6cedbc292c2"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/34EF-0D81"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/users/kassouni/ayu.nix b/users/kassouni/ayu.nix new file mode 100644 index 0000000..37ff83f --- /dev/null +++ b/users/kassouni/ayu.nix @@ -0,0 +1,156 @@ +{ config, lib, ... }: + +with lib; + +{ + options.colorScheme = { + palette = mkOption { + type = types.attrs; + default = { + range = { + min = 0.675; + max = 0.875; + }; + steps = 5; + gray = "#5A6673"; + red = "#F07178"; + pink = "#F29668"; + orange = "#FF8F40"; + peach = "#E6C08A"; + yellow = "#FFB454"; + green = "#AAD94C"; + teal = "#95E6CB"; + indigo = "#39BAE6"; + blue = "#59C2FF"; + purple = "#D2A6FF"; + }; + }; + + syntax = mkOption { + type = types.attrs; + default = { + tag = "#39BAE6"; + func = "#FFB454"; + entity = "#59C2FF"; + string = "#AAD94C"; + regexp = "#95E6CB"; + markup = "#F07178"; + keyword = "#FF8F40"; + special = "#E6C08A"; + comment = "#5A6673"; + constant = "#D2A6FF"; + operator = "#F29668"; + }; + }; + + terminal = mkOption { + type = types.attrs; + default = { + black = "#0A0000"; + red = "#E0656E"; + green = "#9DC842"; + yellow = "#F5A94A"; + blue = "#4FB8F5"; + magenta = "#C89CF5"; + cyan = "#8BDCC1"; + white = "#FFFFFF"; + brightBlack = "#0A0000"; + brightRed = "#F07178"; + brightGreen = "#AAD94C"; + brightYellow = "#FFB454"; + brightBlue = "#59C2FF"; + brightMagenta = "#D2A6FF"; + brightCyan = "#95E6CB"; + brightWhite = "#FFFFFF"; + }; + }; + + vcs = mkOption { + type = types.attrs; + default = { + added = "#70BF56"; + modified = "#73B8FF"; + removed = "#F26D78"; + }; + }; + + surface = mkOption { + type = types.attrs; + default = { + sunk = "#030609"; + base = "#0D1017"; + lift = "#10141C"; + over = "#FFFFFF"; + }; + }; + + editor = mkOption { + type = types.attrs; + default = { + fg = "#BFBDB6"; + bg = "#10141C"; + line = "#161A24"; + selection = { + active = "#3388FF"; + activeAlpha = "#40"; + inactive = "#80B5FF"; + inactiveAlpha = "#26"; + }; + findMatch = { + active = "#4C4126"; + activeAlpha = "#FF"; + inactive = "#4C4126"; + inactiveAlpha = "#80"; + }; + lineNumber = { + active = "#5A6378"; + activeAlpha = "#FF"; + normal = "#5A6378"; + normalAlpha = "#A6"; + }; + indentGuide = { + active = "#5A6378"; + activeAlpha = "#A1"; + normal = "#5A6378"; + normalAlpha = "#42"; + }; + }; + }; + + ui = mkOption { + type = types.attrs; + default = { + fg = "#5A6378"; + bg = "#0D1017"; + line = "#1B1F29"; + selection = { + active = "#475266"; + activeAlpha = "#40"; + normal = "#475266"; + normalAlpha = "#33"; + }; + panel = { + bg = "#141821"; + shadow = "#000000"; + shadowAlpha = "#80"; + }; + popup = { + bg = "#0F131A"; + shadow = "#000000"; + shadowAlpha = "#80"; + }; + }; + }; + + common = mkOption { + type = types.attrs; + default = { + accent = { + tint = "#E6B450"; + on = "#9E7833"; + }; + error = "#D95757"; + }; + }; + }; +} diff --git a/users/kassouni/cursor.nix b/users/kassouni/cursor.nix new file mode 100644 index 0000000..5708aca --- /dev/null +++ b/users/kassouni/cursor.nix @@ -0,0 +1,7 @@ +{pkgs, ...}: { +home.pointerCursor = { + package = pkgs.apple-cursor; + name = "macOS"; + }; +} + diff --git a/users/kassouni/firefox.nix b/users/kassouni/firefox.nix new file mode 100644 index 0000000..42dd583 --- /dev/null +++ b/users/kassouni/firefox.nix @@ -0,0 +1,55 @@ +{ pkgs, ... }: +{ + programs.firefox = { + enable = true; + profiles.kassouni = { + isDefault = true; + bookmarks = { + force = true; + settings = [ + { + name = "wikipedia"; + tags = [ "wiki" ]; + keyword = "wiki"; + url = "https://en.wikipedia.org/wiki/Special:Search?search=%s&go=Go"; + } + { + name = "Nix sites"; + toolbar = true; + bookmarks = [ + { + name = "homepage"; + url = "https://nixos.org/"; + } + { + name = "wiki"; + tags = [ + "wiki" + "nix" + ]; + url = "https://wiki.nixos.org/"; + } + ]; + } + ]; + }; + settings = { + "browser.startup.homepage" = "about:blank"; + "startup.homepage_welcome_url" = "about:blank"; + "extensions.autoDisableScopes" = 0; + "browser.newtabpage.enabled" = false; + "identity.fxaccounts.enabled" = false; + "browser.newtabpage.activity-stream.discoverystream.enabled" = false; + "browser.newtabpage.activity-stream.enabled" = false; + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + "browser.newtabpage.activity-stream.widgets.enabled" = false; + "browser.newtabpage.activity-stream.discoverystream.sections.enabled" = false; + }; + search = { + force = true; + default = "google"; + }; + }; + }; +} diff --git a/users/kassouni/fuzzel.nix b/users/kassouni/fuzzel.nix new file mode 100644 index 0000000..a716b2b --- /dev/null +++ b/users/kassouni/fuzzel.nix @@ -0,0 +1,23 @@ +{ + pkgs, + lib, + config, + ... +}: +{ + programs.fuzzel = { + enable = true; + settings = { + main = { + font = lib.mkForce "${config.theme.font.family}:size=${toString config.theme.font.size}"; + }; + + + + border = { + radius = 0; + }; + }; + }; + +} diff --git a/users/kassouni/ghostty.nix b/users/kassouni/ghostty.nix new file mode 100644 index 0000000..b25d8d0 --- /dev/null +++ b/users/kassouni/ghostty.nix @@ -0,0 +1,10 @@ +{ config, ... }: +{ + programs.ghostty = { + enable = true; + settings = { + theme = "Ayu"; + font-family = config.theme.font.family; + }; + }; +} diff --git a/users/kassouni/git.nix b/users/kassouni/git.nix new file mode 100644 index 0000000..03579cd --- /dev/null +++ b/users/kassouni/git.nix @@ -0,0 +1,14 @@ +{ ... }: { + programs.git = { + enable = true; + settings = { + user = { + name = "Alexander Kassouni"; + email = "alex@kassouni.net"; + }; + init = { + defaultBranch = "main"; + }; + }; + }; +} diff --git a/users/kassouni/home.nix b/users/kassouni/home.nix new file mode 100644 index 0000000..f268413 --- /dev/null +++ b/users/kassouni/home.nix @@ -0,0 +1,61 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + imports = [ + ./neovim.nix + ./fuzzel.nix + ./ssh.nix + ./ayu.nix + ./git.nix + ./ghostty.nix + ./theme.nix + ./firefox.nix + ./cursor.nix + ./sway.nix + ./waybar.nix + ./scripts + ]; + + home.sessionVariables = { + "TEST_VAR" = "asdf"; + }; + + home.packages = with pkgs; [ + btop + wget + tree + nerd-fonts.blex-mono + ripgrep + curl + bat + lsd + yazi + claude-code + tldr + curl + _1password-gui + opencode + spotify + prismlauncher + ]; + + programs.fzf = { + enable = true; + enableBashIntegration = true; + }; + + services.syncthing.enable = true; + + programs.bash.enable = true; + + programs.direnv = { + enable = true; + enableBashIntegration = true; + }; + + home.stateVersion = "25.05"; +} diff --git a/users/kassouni/neovim.nix b/users/kassouni/neovim.nix new file mode 100644 index 0000000..b601ff9 --- /dev/null +++ b/users/kassouni/neovim.nix @@ -0,0 +1,44 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + programs.nixvim = { + enable = true; + defaultEditor = true; + + opts = { + number = true; + relativenumber = true; + }; + + colorschemes.ayu.enable = true; + + plugins = { + # Existing plugins + sleuth.enable = true; + telescope.enable = true; + highlight-colors.enable = true; + web-devicons.enable = true; + + # LSP + lsp = { + enable = true; + servers = { + # Add your language servers here, e.g.: + # nixd.enable = true; + # lua_ls.enable = true; + # pyright.enable = true; + }; + }; + + # Auto-completion + cmp = { + enable = true; + autoEnableSources = true; + }; + }; + }; +} diff --git a/users/kassouni/scripts/default.nix b/users/kassouni/scripts/default.nix new file mode 100644 index 0000000..5a74f30 --- /dev/null +++ b/users/kassouni/scripts/default.nix @@ -0,0 +1,20 @@ +{ pkgs, ... }: +{ + home.packages = [ + (pkgs.writers.writeBashBin "rn" '' + set -e + set -u + + date "+%l:%M%p on %A, %B %e, %Y" + echo + ${pkgs.util-linux}/bin/cal | ${pkgs.gnugrep}/bin/grep -E "\b$(date '+%e')\b| " + '') + (pkgs.writers.writeBashBin "r" '' + set -e + set -u + + cd "$(git rev-parse --show-toplevel)" + exec "$@" + '') + ]; +} diff --git a/users/kassouni/ssh.nix b/users/kassouni/ssh.nix new file mode 100644 index 0000000..f496406 --- /dev/null +++ b/users/kassouni/ssh.nix @@ -0,0 +1,13 @@ +{ ... }: let + # onePassPath = "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"; + onePassPath = "~/.1password/agent.sock"; +in { + programs.ssh = { + enable = true; + extraConfig = '' + Host * + IdentityAgent ${onePassPath} + ''; + }; +} + diff --git a/users/kassouni/theme.nix b/users/kassouni/theme.nix new file mode 100644 index 0000000..9d049e7 --- /dev/null +++ b/users/kassouni/theme.nix @@ -0,0 +1,27 @@ +{ config, lib, pkgs, ... }: + +{ + options = { + theme = { + font = { + size = lib.mkOption { + type = lib.types.float; + default = 12.0; + description = "Global font size for all applications"; + }; + + family = lib.mkOption { + type = lib.types.str; + default = "BlexMono Nerd Font"; + }; + }; + + desktop = { + gap-size = lib.mkOption { + default = 10; + type = lib.types.int; + }; + }; + }; + }; +} |
