diff --git a/flake.lock b/flake.lock index ca4dc70..a15059b 100644 --- a/flake.lock +++ b/flake.lock @@ -1,161 +1,5 @@ { "nodes": { - "base16": { - "inputs": { - "fromYaml": "fromYaml" - }, - "locked": { - "lastModified": 1708890466, - "narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=", - "owner": "SenchoPens", - "repo": "base16.nix", - "rev": "665b3c6748534eb766c777298721cece9453fdae", - "type": "github" - }, - "original": { - "owner": "SenchoPens", - "repo": "base16.nix", - "type": "github" - } - }, - "base16-fish": { - "flake": false, - "locked": { - "lastModified": 1622559957, - "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", - "owner": "tomyun", - "repo": "base16-fish", - "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", - "type": "github" - }, - "original": { - "owner": "tomyun", - "repo": "base16-fish", - "type": "github" - } - }, - "base16-helix": { - "flake": false, - "locked": { - "lastModified": 1725860795, - "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=", - "owner": "tinted-theming", - "repo": "base16-helix", - "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-helix", - "type": "github" - } - }, - "base16-vim": { - "flake": false, - "locked": { - "lastModified": 1716150083, - "narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=", - "owner": "tinted-theming", - "repo": "base16-vim", - "rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-vim", - "type": "github" - } - }, - "darwin": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729982130, - "narHash": "sha256-HmLLQbX07rYD0RXPxbf3kJtUo66XvEIX9Y+N5QHQ9aY=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "2eb472230a5400c81d9008014888b4bff23bcf44", - "type": "github" - }, - "original": { - "owner": "lnl7", - "repo": "nix-darwin", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-utils": { - "inputs": { - "systems": [ - "stylix", - "systems" - ] - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "fromYaml": { - "flake": false, - "locked": { - "lastModified": 1689549921, - "narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=", - "owner": "SenchoPens", - "repo": "fromYaml", - "rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84", - "type": "github" - }, - "original": { - "owner": "SenchoPens", - "repo": "fromYaml", - "type": "github" - } - }, - "gnome-shell": { - "flake": false, - "locked": { - "lastModified": 1713702291, - "narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=", - "owner": "GNOME", - "repo": "gnome-shell", - "rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934", - "type": "github" - }, - "original": { - "owner": "GNOME", - "ref": "46.1", - "repo": "gnome-shell", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -177,27 +21,6 @@ "type": "github" } }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "stylix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1724435763, - "narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, "nix-index-database": { "inputs": { "nixpkgs": [ @@ -268,109 +91,11 @@ }, "root": { "inputs": { - "darwin": "darwin", "home-manager": "home-manager", "nix-index-database": "nix-index-database", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", - "nixpkgs-stable": "nixpkgs-stable", - "stylix": "stylix" - } - }, - "stylix": { - "inputs": { - "base16": "base16", - "base16-fish": "base16-fish", - "base16-helix": "base16-helix", - "base16-vim": "base16-vim", - "flake-compat": "flake-compat", - "flake-utils": "flake-utils", - "gnome-shell": "gnome-shell", - "home-manager": "home-manager_2", - "nixpkgs": [ - "nixpkgs" - ], - "systems": "systems", - "tinted-foot": "tinted-foot", - "tinted-kitty": "tinted-kitty", - "tinted-tmux": "tinted-tmux" - }, - "locked": { - "lastModified": 1729963473, - "narHash": "sha256-uGjTjvvlGQfQ0yypVP+at0NizI2nrb6kz4wGAqzRGbY=", - "owner": "danth", - "repo": "stylix", - "rev": "04afcfc0684d9bbb24bb1dc77afda7c1843ec93b", - "type": "github" - }, - "original": { - "owner": "danth", - "repo": "stylix", - "type": "github" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "tinted-foot": { - "flake": false, - "locked": { - "lastModified": 1696725948, - "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", - "owner": "tinted-theming", - "repo": "tinted-foot", - "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "tinted-foot", - "type": "github" - } - }, - "tinted-kitty": { - "flake": false, - "locked": { - "lastModified": 1716423189, - "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", - "owner": "tinted-theming", - "repo": "tinted-kitty", - "rev": "eb39e141db14baef052893285df9f266df041ff8", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "tinted-kitty", - "rev": "eb39e141db14baef052893285df9f266df041ff8", - "type": "github" - } - }, - "tinted-tmux": { - "flake": false, - "locked": { - "lastModified": 1696725902, - "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", - "owner": "tinted-theming", - "repo": "tinted-tmux", - "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "tinted-tmux", - "type": "github" + "nixpkgs-stable": "nixpkgs-stable" } } }, diff --git a/flake.nix b/flake.nix index 666dee6..77747be 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,5 @@ { - description = - "Mine very own Nix(OS) / home-manager / nix-darwin configuration"; + description = "Mine very own Nix(OS) / home-manager configuration"; inputs = { # Nixpkgs @@ -15,10 +14,6 @@ nix-index-database.url = "github:nix-community/nix-index-database"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; - # stylix - stylix.url = "github:danth/stylix"; - stylix.inputs.nixpkgs.follows = "nixpkgs"; - # nix-hardware nixos-hardware.url = "github:NixOS/nixos-hardware/master"; }; diff --git a/home/enoko.nix b/home/enoko.nix index 0ce4ad9..9a8bc1b 100644 --- a/home/enoko.nix +++ b/home/enoko.nix @@ -1,6 +1,14 @@ # enoko is my framework 13-inch AMD laptop, running nixos { pkgs, ... }: { - imports = [ ./global.nix ./global.linux.nix ./features/desktop ]; + imports = [ + ./global.nix + ./global.linux.nix + ./features/desktop + ./features/devel/js.nix + ./features/devel/java.nix + ./features/devel/rust.nix + ./features/devel/dbs.nix + ]; config.monitors = [{ name = "eDP-1"; @@ -13,10 +21,4 @@ }]; config.home.packages = with pkgs; [ easyroam-connect-desktop ]; - - # Fix HiDPI scaling - # config.wayland.windowManager.hyprland = { - # settings.xwayland.force_zero_scaling = true; - # settings.env = "GDK_SCALE,2"; - # }; } diff --git a/home/features/cli/default.nix b/home/features/cli/default.nix index 5221c0b..4d3d574 100644 --- a/home/features/cli/default.nix +++ b/home/features/cli/default.nix @@ -9,8 +9,10 @@ # stuff that doesn't fit into any other files home.packages = with pkgs; [ - comma # nix-shell a package by prefixing it with `,` ripgrep # well, it's grep fastfetch # gotta show system information somehow! + flyctl # cli for a hosting service i use + httpie # good for inspecting APIs + exercism # cli for a great learning website! ]; } diff --git a/home/features/cli/fish.nix b/home/features/cli/fish.nix index d1e0078..dcc337e 100644 --- a/home/features/cli/fish.nix +++ b/home/features/cli/fish.nix @@ -19,13 +19,12 @@ setpath ~/.cabal/bin setpath ~/.local/bin setpath ~/.bun/bin - setpath ~/Projects/Checkouts/arcanist/bin setpath ~/.config/emacs/bin ''; shellAliases = { # General aliases - c = "clear"; + cl = "clear"; ll = "ls -lahF --color=always"; e = "$EDITOR"; se = "sudoedit"; @@ -46,7 +45,7 @@ j = "z"; # cargoes and rust-s - ca = "cargo"; + c = "cargo"; cr = "cargo run"; cb = "cargo build"; ct = "cargo test"; diff --git a/home/features/desktop/default.nix b/home/features/desktop/default.nix index c0bf0b0..2f95fec 100644 --- a/home/features/desktop/default.nix +++ b/home/features/desktop/default.nix @@ -5,20 +5,19 @@ ./alacritty.nix ./vscode.nix ./1password.nix - ./obs.nix ./irc.nix ./emacs.nix ]; home.packages = with pkgs; [ + # my primary note-taking tool obsidian - kdenlive - audacity + # a video player mpv + # a music player spotify - tidal-hifi + # for watching stuff w/ friends syncplay - chatterino2 ]; home.sessionVariables = { @@ -26,6 +25,4 @@ QT_QPA_PLATFORM = "wayland"; LIBSEAT_BACKEND = "logind"; }; - - xdg.mimeApps.enable = true; } diff --git a/home/features/desktop/games/default.nix b/home/features/desktop/games/default.nix index e427d38..c802c3e 100644 --- a/home/features/desktop/games/default.nix +++ b/home/features/desktop/games/default.nix @@ -1,6 +1,8 @@ { pkgs, ... }: { home.packages = with pkgs; [ + # FFXIV xivlauncher + # Minecraft (prismlauncher.override { jdks = [ temurin-bin-21 temurin-bin-17 temurin-bin-8 ]; }) diff --git a/home/features/desktop/hyprland/default.nix b/home/features/desktop/hyprland/default.nix deleted file mode 100644 index 99fe515..0000000 --- a/home/features/desktop/hyprland/default.nix +++ /dev/null @@ -1,183 +0,0 @@ -{ lib, config, pkgs, ... }: { - imports = [ ../default.nix ../wlr ./swaylock.nix ./swayidle.nix ]; - - home.packages = with pkgs; [ grimblast pamixer playerctl ]; - - wayland.windowManager.hyprland = { - enable = true; - systemd = { enable = true; }; - - settings = { - general = { - gaps_in = 15; - gaps_out = 20; - border_size = 1; - }; - cursor.inactive_timeout = 4; - - device = [{ - name = "royuan-akko-keyboard"; - kb_layout = "us_intl"; - }]; - - dwindle = { - split_width_multiplier = 1.35; - pseudotile = true; - }; - - layerrule = [ - "animation fade,hyprpicker" - "animation fade,selection" - "blur,^(wofi)$" - "ignorezero,^(wofi)$" - ]; - - windowrulev2 = let steam = "title:^()$,class:^(steam)$"; - in [ "stayfocused, ${steam}" "minsize 1 1, ${steam}" ]; - - decoration = { - active_opacity = 1.0; - inactive_opacity = 0.85; - fullscreen_opacity = 1.0; - rounding = 7; - blur = { - enabled = true; - size = 4; - passes = 3; - new_optimizations = true; - ignore_opacity = true; - }; - drop_shadow = true; - shadow_range = 12; - shadow_offset = "3 3"; - }; - - animations = { - enabled = true; - bezier = [ - "easein,0.1, 0, 0.5, 0" - "easeinback,0.35, 0, 0.95, -0.3" - - "easeout,0.5, 1, 0.9, 1" - "easeoutback,0.35, 1.35, 0.65, 1" - - "easeinout,0.45, 0, 0.55, 1" - ]; - - animation = [ - "fadeIn,1,3,easeout" - "fadeLayersIn,1,3,easeoutback" - "layersIn,1,3,easeoutback,slide" - "windowsIn,1,3,easeoutback,slide" - - "fadeLayersOut,1,3,easeinback" - "fadeOut,1,3,easein" - "layersOut,1,3,easeinback,slide" - "windowsOut,1,3,easeinback,slide" - - "border,1,3,easeout" - "fadeDim,1,3,easeinout" - "fadeShadow,1,3,easeinout" - "fadeSwitch,1,3,easeinout" - "windowsMove,1,3,easeoutback" - "workspaces,1,2.6,easeoutback,slide" - ]; - }; - - bindm = [ "SUPER,mouse:272,movewindow" "SUPER,mouse:273,resizewindow" ]; - - bind = let - terminal = "${pkgs.alacritty}/bin/alacritty"; - grimblast = lib.getExe pkgs.grimblast; - workspaces = [ "1" "2" "3" "4" "5" ]; - directions = rec { - left = "l"; - right = "r"; - up = "u"; - down = "d"; - h = left; - l = right; - k = up; - j = down; - }; - in [ - "SUPER,Return,exec,${terminal}" - "SUPERSHIFT,q,killactive" # exit program - "SUPERSHIFT,e,exit" # exit hyprland - "SUPERSHIFT,r,exec,hyprctl reload" # reload currently running hyprland - - "SUPER,s,togglesplit" # horizontal split - "SUPER,f,fullscreen,1" # borderless window - "SUPERSHIFT,f,fullscreen,0" # proper fullscreen - "ALTSHIFT,space,togglefloating" # floating window - - "SUPER,minus,splitratio,-0.25" # split gets slightly smaller - "SUPERSHIFT,minus,splitratio,-0.3333333" # split gets smaller - "SUPER,equal,splitratio,0.25" # split gets slightly larger - "SUPERSHIFT,equal,splitratio,0.3333333" # split gets larger - - "SUPER,g,togglegroup" # make a window group - "SUPER,t,lockactivegroup,toggle" # lock/unlock the current group - "SUPER,tab,changegroupactive,f" # switch to next window in group - "SUPERSHIFT,tab,changegroupactive,p" # switch to prev window in group - - "SUPER,dead_grave,workspace,previous" # prev workspace - "SUPER,dead_grave,workspace,next" # next workspace - - "SUPER,u,togglespecialworkspace" # toggle special workspace - "SUPERSHIFT,u,movetoworkspacesilent,special" # move to special workspace - - ",Print,exec,${grimblast} --notify --freeze copy area" # screenshot area - "SHIFT,Print,exec,${grimblast} --notify --freeze copy output" # screenshot all - - ",XF86AudioRaiseVolume,exec,pamixer -i 5" # raise volume - ",XF86AudioLowerVolume,exec,pamixer -d 5" # lower volume - ",XF86AudioPlay,exec,playerctl play-pause" # play/pause - ",XF86AudioNext,exec,playerctl next" # next song - ",XF86AudioPrev,exec,playerctl previous" # previous song - ] ++ - # change workspace - (map (n: "SUPER,${n},workspace,name:${n}") workspaces) ++ - # move window to workspace - (map (n: "SUPERSHIFT,${n},movetoworkspacesilent,name:${n}") workspaces) ++ - # move focus - (lib.mapAttrsToList - (key: direction: "SUPER,${key},movefocus,${direction}") directions) ++ - # swap windows - (lib.mapAttrsToList - (key: direction: "SUPERSHIFT,${key},swapwindow,${direction}") - directions) ++ - # move windows - (lib.mapAttrsToList - (key: direction: "SUPERCONTROL,${key},movewindoworgroup,${direction}") - directions) ++ - # move monitor focus - (lib.mapAttrsToList - (key: direction: "SUPERALT,${key},focusmonitor,${direction}") - directions) ++ - # move workspace to other monitor - (lib.mapAttrsToList (key: direction: - "SUPERALTSHIFT,${key},movecurrentworkspacetomonitor,${direction}") - directions) ++ - # launcher - (let wofi = lib.getExe pkgs.wofi; - in lib.optionals config.programs.wofi.enable [ - "SUPER,Space,exec,${wofi} -S drun -W 20% -H 15%" - "SHIFTSUPER,Space,exec,${wofi} -S run -W 20% -H 15%" - ]); - - monitor = map (m: - "${m.name},${ - if m.enabled then - "${toString m.width}x${toString m.height}@${ - toString m.refreshRate - },${m.position},${m.scale}" - else - "disable" - }") config.monitors; - - workspace = map (m: "name:${m.workspace},monitor:${m.name}") - (lib.filter (m: m.enabled && m.workspace != null) config.monitors); - }; - }; -} diff --git a/home/features/desktop/hyprland/swayidle.nix b/home/features/desktop/hyprland/swayidle.nix deleted file mode 100644 index e9012b6..0000000 --- a/home/features/desktop/hyprland/swayidle.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ config, ... }: -let swaylock = "${config.programs.swaylock.package}/bin/swaylock"; -in { - services.swayidle = { - enable = true; - systemdTarget = "graphical-session.target"; - events = [{ - event = "before-sleep"; - command = "${swaylock} --daemonize"; - }]; - # timeouts = [ - # { - # timeout = 4 * 60; - # command = "${swaylock} --daemonize --grace 15"; - # } - # ]; - }; -} diff --git a/home/features/desktop/hyprland/swaylock.nix b/home/features/desktop/hyprland/swaylock.nix deleted file mode 100644 index c6058ae..0000000 --- a/home/features/desktop/hyprland/swaylock.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: { - programs.swaylock = { - enable = true; - package = pkgs.swaylock-effects; - settings = { effect-blur = "20x3"; }; - }; -} diff --git a/home/features/desktop/wlr/default.nix b/home/features/desktop/wlr/default.nix deleted file mode 100644 index 5aa1955..0000000 --- a/home/features/desktop/wlr/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ pkgs, ... }: { - imports = [ ./mako.nix ./wofi.nix ./waybar.nix ]; - - home.packages = with pkgs; [ - wf-recorder - wl-clipboard - xdg-utils - nautilus - adwaita-icon-theme - ]; - - programs.imv.enable = true; - - xdg.portal = { - enable = true; - extraPortals = [ pkgs.xdg-desktop-portal-wlr ]; - config = { common = { default = [ "wlr" ]; }; }; - }; -} diff --git a/home/features/desktop/wlr/mako.nix b/home/features/desktop/wlr/mako.nix deleted file mode 100644 index 2b72c1e..0000000 --- a/home/features/desktop/wlr/mako.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, lib, ... }: { - services.mako = { - enable = true; - font = lib.mkForce "${config.fontProfiles.regular.family} 12"; - padding = "10,20"; - anchor = "top-center"; - width = 400; - height = 150; - borderSize = 1; - defaultTimeout = 12000; - layer = "overlay"; - }; -} diff --git a/home/features/desktop/wlr/waybar.nix b/home/features/desktop/wlr/waybar.nix deleted file mode 100644 index 30bb6ff..0000000 --- a/home/features/desktop/wlr/waybar.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ config, pkgs, ... }: { - # additional deps for cava support - home.packages = with pkgs; [ iniparser fftw ]; - - systemd.user.services.waybar = { - Unit.StartLimitBurst = 30; - # this fixes fonts for some reason - Service.Environment = "PATH=${config.home.profileDirectory}/bin"; - }; - programs.waybar = { - enable = true; - systemd.enable = true; - settings = { - primary = { - height = 30; - position = "top"; - margin-top = 10; - margin-left = 20; - margin-right = 20; - modules-left = [ "hyprland/workspaces" "hyprland/language" ]; - - modules-center = [ "cpu" "clock" "memory" ]; - - modules-right = [ "mpris" "network" "pulseaudio" "battery" "tray" ]; - - cpu = { format = "CPU {usage}%"; }; - - memory = { format = "MEM {}%"; }; - - tray = { spacing = 10; }; - - pulseaudio = { format = "AUD {volume}%"; }; - - network = { - format = "NET {ipaddr}"; - format-disconnected = "NET X"; - }; - - mpris = { - format = "{dynamic}"; - interval = 1; - }; - - "hyprland/language" = { - format = "KBD {}"; - format-en = "EN"; - format-de = "DE"; - }; - }; - }; - - style = let inherit (config.lib.stylix.colors) withHashtag; - in '' - * { - font-family: ${config.fontProfiles.bitmap.family}, ${config.fontProfiles.monospace.family}; - font-size: 11pt; - padding: 0; - } - - window#waybar { - padding: 0; - border-radius: 0.5em; - } - - #workspaces { - transition: background-color .5s, color .5s; - } - - #workspaces button { - padding: 0 6px; - } - - #workspaces button.active, - #workspaces button.focused { - background-color: ${withHashtag.base05}; - color: ${withHashtag.base00}; - } - - #cpu, - #memory { - color: ${withHashtag.base04}; - } - - #mpris { - font-size: 10pt; - margin-right: 6px; - } - - #tray { - padding: 0 5px; - background-color: ${withHashtag.base02}; - } - - #pulseaudio { - color: ${withHashtag.base0D}; - } - - #network { - color: ${withHashtag.base0C}; - } - - #language { - color: ${withHashtag.base02}; - margin-left: 10px; - } - ''; - }; -} diff --git a/home/features/desktop/wlr/wofi.nix b/home/features/desktop/wlr/wofi.nix deleted file mode 100644 index 02bf678..0000000 --- a/home/features/desktop/wlr/wofi.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ config, lib, ... }: { - programs.wofi = { - enable = true; - settings = { - insensitive = true; - allow_markup = true; - run-always_parse_args = true; - run-cache_file = "/dev/null"; - run-exec_search = true; - matching = "multi-contains"; - }; - style = '' - #window { - border: 1px solid ${config.lib.stylix.colors.withHashtag.base05}; - font-family: ${config.fontProfiles.bitmap.family}; - } - - #input { - border-radius: 0; - border: 1px solid ${config.lib.stylix.colors.withHashtag.base05}; - border-bottom: 0; - } - ''; - }; -} diff --git a/home/features/devel/base.nix b/home/features/devel/base.nix new file mode 100644 index 0000000..072e12d --- /dev/null +++ b/home/features/devel/base.nix @@ -0,0 +1,16 @@ +# Basic development utilities for every system. Equivalent to something +# like `build-essential` on other systems, ideally. +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + gcc + gnumake + unzip + openssl + autoconf + pkg-config + cmake + inotify-tools + ]; +} diff --git a/home/features/devel/clojure.nix b/home/features/devel/clojure.nix deleted file mode 100644 index ef4b56e..0000000 --- a/home/features/devel/clojure.nix +++ /dev/null @@ -1 +0,0 @@ -{ pkgs, ... }: { home.packages = with pkgs; [ clojure clojure-lsp leiningen ]; } diff --git a/home/features/devel/dbs.nix b/home/features/devel/dbs.nix new file mode 100644 index 0000000..2e161a8 --- /dev/null +++ b/home/features/devel/dbs.nix @@ -0,0 +1,6 @@ +# DB management interfaces +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ beekeeper-studio ]; +} diff --git a/home/features/devel/default.nix b/home/features/devel/default.nix index be45b22..091082f 100644 --- a/home/features/devel/default.nix +++ b/home/features/devel/default.nix @@ -1,44 +1 @@ -{ pkgs, ... }: { - imports = [ ./php.nix ./clojure.nix ./langs.nix ]; - - home.packages = with pkgs; [ - gcc - gnumake - unzip - openssl - autoconf - pkg-config - bun - rustup - cmake - - # haskell stuff - haskell.compiler.ghc910 - cabal-install - stack - - # nix stuff - nixpkgs-fmt - nixfmt-classic - nix-tree - nil - nixd - - # elixir stuff - elixir - elixir-ls - inotify-tools - - # python - python3 - uv - basedpyright - - # misc - flyctl - httpie - beekeeper-studio - exercism - neil - ]; -} +{ ... }: { imports = [ ./base.nix ]; } diff --git a/home/features/devel/elixir.nix b/home/features/devel/elixir.nix new file mode 100644 index 0000000..c8290ef --- /dev/null +++ b/home/features/devel/elixir.nix @@ -0,0 +1,6 @@ +# It's Elixir, a BEAM language. +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ elixir elixir-ls ]; +} diff --git a/home/features/devel/haskell.nix b/home/features/devel/haskell.nix new file mode 100644 index 0000000..c4ab649 --- /dev/null +++ b/home/features/devel/haskell.nix @@ -0,0 +1,6 @@ +# The _smartest_ programming language. +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ haskell.compiler.ghc910 cabal-install stack ]; +} diff --git a/home/features/devel/java.nix b/home/features/devel/java.nix new file mode 100644 index 0000000..7f7204e --- /dev/null +++ b/home/features/devel/java.nix @@ -0,0 +1,14 @@ +# Java and it's sub-Javas (Clojure, etc) +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + # java + jdk + + # clojure + clojure + clojure-lsp + neil + ]; +} diff --git a/home/features/devel/js.nix b/home/features/devel/js.nix new file mode 100644 index 0000000..c111a69 --- /dev/null +++ b/home/features/devel/js.nix @@ -0,0 +1,6 @@ +# NodeJS, JavaScript, and more! +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ bun nodejs_22 ]; +} diff --git a/home/features/devel/langs.nix b/home/features/devel/langs.nix deleted file mode 100644 index 1589529..0000000 --- a/home/features/devel/langs.nix +++ /dev/null @@ -1 +0,0 @@ -{ pkgs, ... }: { home.packages = with pkgs; [ nodejs_22 ruby_3_3 jdk ]; } diff --git a/home/features/devel/python.nix b/home/features/devel/python.nix new file mode 100644 index 0000000..b3c4e2b --- /dev/null +++ b/home/features/devel/python.nix @@ -0,0 +1,14 @@ +# Everyone needs a Python setup, right? +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + python3 + # catch-all replacement for _most_ other python stuff + uv + # linter + ruff + # lsp(?) + basedpyright + ]; +} diff --git a/home/features/devel/rust.nix b/home/features/devel/rust.nix new file mode 100644 index 0000000..b3a6d65 --- /dev/null +++ b/home/features/devel/rust.nix @@ -0,0 +1,8 @@ +# Rust and other adjacent tools. +{ pkgs, ... }: + +{ + # I use rustup to manage my Rust toolchains, but I may override it + # per-project in a local flake. + home.packages = with pkgs; [ rustup cargo-watch ]; +} diff --git a/home/global.linux.nix b/home/global.linux.nix deleted file mode 100644 index 3dc15ee..0000000 --- a/home/global.linux.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ ... }: { - systemd.user.startServices = "sd-switch"; - xdg.mime.enable = true; -} diff --git a/home/global.nix b/home/global.nix index d5b5b98..1eeae52 100644 --- a/home/global.nix +++ b/home/global.nix @@ -1,11 +1,13 @@ { inputs, lib, pkgs, config, outputs, ... }: { imports = [ + # home-manager inputs.nix-index-database.hmModules.nix-index - inputs.stylix.homeManagerModules.stylix + # Basic CLI tools and environment ./features/cli ./features/devel ] ++ (builtins.attrValues outputs.homeManagerModules); + # Configure nixpkgs nixpkgs = { overlays = builtins.attrValues outputs.overlays; config = { @@ -14,6 +16,7 @@ }; }; + # Configure nix nix = { package = lib.mkDefault pkgs.nixVersions.nix_2_22; settings = { @@ -22,6 +25,20 @@ }; }; + # Add some additional packages for Nix-centric development + home.packages = with pkgs; [ + # formatting + nixpkgs-fmt + nixfmt-classic + # inspecting derivations + nix-tree + # lsps + nil + nixd + # once-off command execution + comma + ]; + programs = { home-manager.enable = true; }; programs.git = { @@ -51,22 +68,6 @@ sessionVariables = { FLAKE = "$HOME/nix-config"; }; }; - stylix = { - enable = true; - base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; - image = pkgs.fetchurl { - url = - "https://lds-img.finalfantasyxiv.com/h/d/gGA_a8kMXpsxZEOfW_MadG07_E.jpg"; - sha256 = "0d8b4031dnlrcd3wx63p19w5h5zc8z5fk2yqz0wv20m7gr62h8r0"; - }; - fonts = { - monospace = { - name = config.fontProfiles.monospace.family; - package = config.fontProfiles.monospace.package; - }; - }; - targets.wofi.enable = false; - targets.kde.enable = false; - targets.gtk.enable = false; - }; + systemd.user.startServices = "sd-switch"; + xdg.mime.enable = true; } diff --git a/home/koishi.nix b/home/koishi.nix deleted file mode 100644 index da384f6..0000000 --- a/home/koishi.nix +++ /dev/null @@ -1 +0,0 @@ -{ ... }: { imports = [ ./global.nix ./features/desktop/font.nix ]; } diff --git a/home/yukari.nix b/home/yukari.nix index 4ad63ed..dd651ec 100644 --- a/home/yukari.nix +++ b/home/yukari.nix @@ -2,13 +2,20 @@ { pkgs, ... }: { imports = [ ./global.nix - ./global.linux.nix ./features/desktop ./features/desktop/games + ./features/desktop/obs.nix + ./features/devel/js.nix + ./features/devel/java.nix + ./features/devel/rust.nix + ./features/devel/python.nix + ./features/devel/dbs.nix ]; - # Install Solaar, a management application for Logitech dongle devices - home.packages = with pkgs; [ solaar ]; + # Install: + # - Solaar, a management application for Logitech dongle devices + # - Chatterino, for checking chat when live streaming + home.packages = with pkgs; [ solaar chatterino2 ]; # ---------- ------ # | HDMI-A-5 | | DP-5 | diff --git a/nixos/common/default.nix b/nixos/common/default.nix index 3178dd2..eeaceec 100644 --- a/nixos/common/default.nix +++ b/nixos/common/default.nix @@ -35,7 +35,6 @@ # set up a keyring services.gnome.gnome-keyring.enable = true; - security.pam.services.hyprland.enableGnomeKeyring = true; # set up ausweisapp for online german government login programs.ausweisapp = { diff --git a/nixos/desktop/default.nix b/nixos/desktop/default.nix index df558cd..562a663 100644 --- a/nixos/desktop/default.nix +++ b/nixos/desktop/default.nix @@ -1 +1 @@ -{ ... }: { imports = [ ./steam.nix ./flatpak.nix ]; } +{ ... }: { imports = [ ./flatpak.nix ]; } diff --git a/nixos/desktop/hyprland.nix b/nixos/desktop/hyprland.nix deleted file mode 100644 index 1ff66e9..0000000 --- a/nixos/desktop/hyprland.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ ... }: { - security.pam.services.swaylock = { }; - services.blueman.enable = true; -} diff --git a/nixos/yukari/configuration.nix b/nixos/yukari/configuration.nix index 5e40b60..50e451c 100644 --- a/nixos/yukari/configuration.nix +++ b/nixos/yukari/configuration.nix @@ -5,6 +5,7 @@ ../services/postgres.nix ../desktop ../desktop/plasma.nix + ../desktop/steam.nix ]; nixpkgs = { config = { allowUnfree = true; }; }; @@ -70,9 +71,6 @@ }; }; - # hyprland stuff - programs.hyprland = { enable = true; }; - # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion system.stateVersion = "23.11"; }