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 /users/kassouni | |
X11 is so back
Diffstat (limited to 'users/kassouni')
| -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 |
11 files changed, 430 insertions, 0 deletions
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; + }; + }; + }; + }; +} |
