diff --git a/flake.lock b/flake.lock index 03ac8a2..dc9ec42 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,206 @@ { "nodes": { + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1732200724, + "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "153d52373b0fb2d343592871009a286ec8837aec", + "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": 1736852337, + "narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1736899990, + "narHash": "sha256-S79Hqn2EtSxU4kp99t8tRschSifWD4p/51++0xNWUxw=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "91ca1f82d717b02ceb03a3f423cbe8082ebbb26d", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": [ + "stylix", + "systems" + ] + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "stylix", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1735882644, + "narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "stylix", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gnome-shell": { + "flake": false, + "locked": { + "lastModified": 1732369855, + "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "dadd58f630eeea41d645ee225a63f719390829dc", + "type": "github" + }, + "original": { + "owner": "GNOME", + "ref": "47.2", + "repo": "gnome-shell", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -7,11 +208,11 @@ ] }, "locked": { - "lastModified": 1735925111, - "narHash": "sha256-/NptDI4njO5hH0ZVQ2yzbvTXmBOabZaGYkjhnMJ37TY=", + "lastModified": 1738789832, + "narHash": "sha256-HdlMPfObPu5y7oDfH/w3vvlU3UTQ/bQjSULChZARm5M=", "owner": "nix-community", "repo": "home-manager", - "rev": "ef64efdbaca99f9960f75efab991e4c49e79a5f1", + "rev": "30ea6fed4e4b41693cebc2263373dd810de4de49", "type": "github" }, "original": { @@ -20,13 +221,92 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1736785676, + "narHash": "sha256-TY0jUwR3EW0fnS0X5wXMAVy6h4Z7Y6a3m+Yq++C9AyE=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "fc52a210b60f2f52c74eac41a8647c1573d2071d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1738770770, + "narHash": "sha256-nfapp7C4BbdvHTRA1HSRVYjD5Fk2FCKoyxQLzcL5X50=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "83abbde7c8164ee4b42a8647e4e61015c3f45816", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1736614405, + "narHash": "sha256-AJ1rlgNOPb3/+DbS5hkhm21t6Oz8IgqLllwmZt0lyzk=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "e05bc269e678ecf828b96ae79c991c13b00b38a5", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.01", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, + "locked": { + "lastModified": 1738768006, + "narHash": "sha256-56jDYr/vqX4fobMJO2nWLjih03i6UV5bKtxI0nR4ZZA=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "690d6355057ebeba03cbd8ce4905145b834c72f8", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, "nixos-hardware": { "locked": { - "lastModified": 1735388221, - "narHash": "sha256-e5IOgjQf0SZcFCEV/gMGrsI0gCJyqOKShBQU0iiM3Kg=", + "lastModified": 1738638143, + "narHash": "sha256-ZYMe4c4OCtIUBn5hx15PEGr0+B1cNEpl2dsaLxwY2W0=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "7c674c6734f61157e321db595dbfcd8523e04e19", + "rev": "9bdd53f5908453e4d03f395eb1615c3e9a351f70", "type": "github" }, "original": { @@ -38,11 +318,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1735834308, - "narHash": "sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk=", + "lastModified": 1738680400, + "narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6df24922a1400241dae323af55f30e4318a6ca65", + "rev": "799ba5bffed04ced7067a91798353d360788b30d", "type": "github" }, "original": { @@ -51,11 +331,178 @@ "type": "indirect" } }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1738702386, + "narHash": "sha256-nJj8f78AYAxl/zqLiFGXn5Im1qjFKU8yBPKoWEeZN5M=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "030ba1976b7c0e1a67d9716b17308ccdab5b381e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", + "niri": "niri", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "stylix": "stylix" + } + }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "git-hooks": "git-hooks", + "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", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1738611626, + "narHash": "sha256-IgjqlYPaS8Bg+jc6a691w27XDFhBeM7gkP4eDcR2EBs=", + "owner": "danth", + "repo": "stylix", + "rev": "d513f59da5856978c363d2f82103f708f4a6024d", + "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": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "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": 1735737224, + "narHash": "sha256-FO2hRBkZsjlIRqzNHCPc/52yxg11kHGA8MEtSun9RwE=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "aead506a9930c717ebf81cc83a2126e9ca08fa64", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1725758778, + "narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "122c9e5c0e6f27211361a04fae92df97940eccf9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1730166465, + "narHash": "sha256-nq7bouXQXaaPPo/E+Jbq+wNHnatD4dY8OxSrRqzvy6s=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "a713cf46cb7db84a0d1b57c3a397c610cad3cf98", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.5", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "xwayland-satellite-unstable": { + "flake": false, + "locked": { + "lastModified": 1737837494, + "narHash": "sha256-wIMowP8Juas4ZwMRcpc+58sZ0kKTDu8fm13THPmv/F8=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "3944c9a0e40e5629f16ad023bbc90dac80d35a0f", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index cd1773e..13b3cb3 100644 --- a/flake.nix +++ b/flake.nix @@ -3,6 +3,17 @@ inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; + stylix = { + url = "github:danth/stylix"; + #url = "github:trueNAHO/stylix/stylix-downgrade-and-lock-base16-vim-input"; + #url = "github:danth/stylix/2985ee9b2836a725b04628d24f934212b96eacbe"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + niri = { + url = "github:sodiboo/niri-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -10,9 +21,30 @@ nixos-hardware.url = "github:NixOS/nixos-hardware/master"; }; - outputs = { self, nixpkgs, home-manager, nixos-hardware }@attrs: + outputs = { self, nixpkgs, stylix, niri, home-manager, nixos-hardware }@attrs: let system = "x86_64-linux"; + make_besley = pkgs:(lib: (pkgs.stdenvNoCC.mkDerivation rec { + pname = "besley"; + version = "4.0"; + src = pkgs.fetchFromGitHub { + owner = "indestructible-type"; + repo = "Besley"; + rev = "99d5b97fcb863c4a667571ac8f86f745c345d3ab"; + sha256 = "sha256-N6QU3Pd6EnIrdbRtDT3mW5ny683DBWo0odADJBSdA2E="; + }; + installPhase = '' + install -D -t $out/share/fonts/opentype/ $(find $src -type f -name '*.otf') + install -D -t $out/share/fonts/truetype/ $(find $src -type f -name '*.ttf') + ''; + meta = with lib; { + homepage = "https://indestructibletype.com/Besley.html"; + description = "by indestructable-type"; + license = licenses.ofl; + maintainers = [ ]; + platforms = platforms.all; + }; + })); homeManagerSharedModule = { home-manager.useGlobalPkgs = true; home-manager.users.nathan = { config, pkgs, lib, ... }:{ @@ -27,7 +59,10 @@ home.stateVersion = "22.11"; fonts.fontconfig.enable = true; - home.packages = with pkgs; [ fira-code jetbrains-mono iosevka monoid recursive ]; + home.packages = with pkgs; [ + fira-code jetbrains-mono iosevka monoid recursive inter (make_besley pkgs lib) + xwayland-satellite swww + ]; systemd.user.services.mpris-proxy = { Unit.Description = "Mpris proxy"; @@ -36,12 +71,274 @@ Install.WantedBy = [ "default.target" ]; }; + programs.fuzzel.enable = true; + + programs.waybar = { + # This is to fix backlight if it freaking worked + # remove when upgraded from 0.11 + # PR this is based on is https://github.com/Alexays/Waybar/pull/3808 + package = pkgs.waybar.overrideAttrs (old: { + postUnpack = (builtins.elemAt old.postUnpack 0) + '' + pushd "$sourceRoot" + sed -i 's#/org/freedesktop/login1/session/self#/org/freedesktop/login1/session/auto#' ./src/util/backlight_backend.cpp + popd + ''; + }); + + enable = true; + settings = { + mainBar = { + layer = "top"; + position = "top"; + height = 18; + modules-left = [ "memory" "disk" "network" ]; + modules-center = [ "clock" ]; + modules-right = [ "battery" "power-profiles-daemon" "backlight" "pulseaudio" ]; + reload_style_on_change = true; + }; + }; + style = '' + /* + * { + border: none; + border-radius: 0; + font-family: Recursive; + } + */ + window#waybar { + background: transparent; + color: #ffffff; + } + button { + box-shadow: none; + border: none; + border-radius: 0; + transition-property: none; + } + #workspaces button { + padding: 0 5px; + background-color: transparent; + color: #ffffff; + } + #mode { + background-color: #64829D; + border-bottom: 3px solid #ffffff; + } + #memory, #disk, #network, #pulseaudio, #battery, #power-profiles-daemon, #backlight, #clock { + padding: 0 10px; + color: #f0f0ff; + background-color: rgba(30,30,46,0.6); + border-radius: 99px; + margin-left: 4px; + } + #window, #workspaces { + margin: 0 4px; + } + #clock { + font-weight: bold; + } + #battery { + margin-left: 4px; + } + /* + #pulseaudio { + color: #000000; + background-color: #f1c40f; + } + */ + ''; + }; + + programs.niri.settings = { + prefer-no-csd = true; + input.keyboard.xkb = { + options = "ctrl:nocaps"; + }; + environment = { + DISPLAY = ":0"; # xwayland-satellite + }; + spawn-at-startup = [ + { command = [ "swww-daemon" ]; } + { command = [ "swww" "img" "${config.stylix.image}" ]; } + { command = [ "waybar" ]; } + { command = [ "xwayland-satellite" ]; } + ]; + window-rules = [ + { + draw-border-with-background = false; + geometry-corner-radius = let r = 4.0; in { + top-left = r; + top-right = r; + bottom-left = r; + bottom-right = r; + }; + clip-to-geometry = true; + } + { + matches = [{is-focused = false;}]; + opacity = 0.95; + } + ]; + layout = { + #gaps = 8; + gaps = 16; + center-focused-column = "never"; + preset-column-widths = [ + { proportion = 1.0 / 3.0; } + { proportion = 1.0 / 2.0; } + { proportion = 2.0 / 3.0; } + ]; + #If you leave the brackets empty, the windows themselves will decide their initial width. + #preset-window-heights = {}; + default-column-width = { proportion = 1.0 / 2.0; }; + #focus-ring = { + # enable = false; + # width = 8; + # # Color of the ring on the active monitor. + # active.color = "#7fc8ff"; + # # Color of the ring on inactive monitors. + # inactive.color = "#505050"; + #}; + #border = { + # enable = true; + # width = 4; + # active = { + # gradient = { + # angle = 130; + # relative-to = "workspace-view"; + # from = "#90F090"; + # to = "#909090"; + # }; + # }; + # inactive = { + # gradient = { + # angle = 130; + # relative-to = "workspace-view"; + # from = "#409040"; + # to = "#404040"; + # }; + # }; + #}; + #struts = { + #left = 64; + #right = 64; + #top = 64; + #bottom = 64; + #}; + }; + binds = with config.lib.niri.actions; { + #"Alt+P".action = spawn "bemenu-run"; + "Alt+P".action = spawn "fuzzel"; + "Alt+Return".action = spawn "ghostty"; + "Alt+Shift+Return".action = spawn "foot"; + "Alt+Shift+Slash".action = show-hotkey-overlay; + + "Alt+Shift+C".action = close-window; + + "Alt+Left" .action = focus-column-left; + "Alt+Down" .action = focus-window-down; + "Alt+Up" .action = focus-window-up; + "Alt+Right" .action = focus-column-right; + "Alt+H" .action = focus-column-left; + #"Alt+J" .action = focus-window-down; + #"Alt+K" .action = focus-window-up; + "Alt+L" .action = focus-column-right; + + "Alt+Shift+Left" .action = move-column-left; + "Alt+Shift+Down" .action = move-window-down; + "Alt+Shift+Up" .action = move-window-up; + "Alt+Shift+Right" .action = move-column-right; + "Alt+Shift+H" .action = move-column-left; + #"Alt+Shift+J" .action = move-window-down; + #"Alt+Shift+K" .action = move-window-up; + "Alt+Shift+L" .action = move-column-right; + + # Nice alts + "Alt+J" .action = focus-window-or-workspace-down; + "Alt+K" .action = focus-window-or-workspace-up; + "Alt+Shift+J".action = move-window-down-or-to-workspace-down; + "Alt+Shift+K".action = move-window-up-or-to-workspace-up; + + + "Alt+Ctrl+Left" .action = focus-monitor-left; + "Alt+Ctrl+Down" .action = focus-monitor-down; + "Alt+Ctrl+Up" .action = focus-monitor-up; + "Alt+Ctrl+Right".action = focus-monitor-right; + "Alt+Ctrl+H" .action = focus-monitor-left; + "Alt+Ctrl+J" .action = focus-monitor-down; + "Alt+Ctrl+K" .action = focus-monitor-up; + "Alt+Ctrl+L" .action = focus-monitor-right; + + "Alt+Shift+Ctrl+Left" .action = move-column-to-monitor-left; + "Alt+Shift+Ctrl+Down" .action = move-column-to-monitor-down; + "Alt+Shift+Ctrl+Up" .action = move-column-to-monitor-up; + "Alt+Shift+Ctrl+Right" .action = move-column-to-monitor-right; + "Alt+Shift+Ctrl+H" .action = move-column-to-monitor-left; + "Alt+Shift+Ctrl+J" .action = move-column-to-monitor-down; + "Alt+Shift+Ctrl+K" .action = move-column-to-monitor-up; + "Alt+Shift+Ctrl+L" .action = move-column-to-monitor-right; + + + #... + "Alt+1".action = focus-workspace 1; + "Alt+2".action = focus-workspace 2; + "Alt+3".action = focus-workspace 3; + "Alt+4".action = focus-workspace 4; + "Alt+5".action = focus-workspace 5; + "Alt+6".action = focus-workspace 6; + "Alt+7".action = focus-workspace 7; + "Alt+8".action = focus-workspace 8; + "Alt+9".action = focus-workspace 9; + "Alt+Shift+1".action = move-column-to-workspace 1; + "Alt+Shift+2".action = move-column-to-workspace 2; + "Alt+Shift+3".action = move-column-to-workspace 3; + "Alt+Shift+4".action = move-column-to-workspace 4; + "Alt+Shift+5".action = move-column-to-workspace 5; + "Alt+Shift+6".action = move-column-to-workspace 6; + "Alt+Shift+7".action = move-column-to-workspace 7; + "Alt+Shift+8".action = move-column-to-workspace 8; + "Alt+Shift+9".action = move-column-to-workspace 9; + + #Consume one window from the right into the focused column. + "Alt+Comma" .action = consume-window-into-column; + #Expel one window from the focused column to the right. + "Alt+Period" .action = expel-window-from-column; + + #There are also commands that consume or expel a single window to the side. + "Alt+BracketLeft" .action = consume-or-expel-window-left; + "Alt+BracketRight" .action = consume-or-expel-window-right; + + "Alt+R".action = switch-preset-column-width; + "Alt+Shift+R".action = switch-preset-window-height; + "Alt+Ctrl+R".action = reset-window-height; + "Alt+F".action = maximize-column; + "Alt+Shift+F".action = fullscreen-window; + "Alt+C".action = center-column; + + "Alt+Minus".action = set-column-width "-10%"; + "Alt+Equal".action = set-column-width "+10%"; + + "Alt+Shift+Minus".action = set-window-height "-10%"; + "Alt+Shift+Equal".action = set-window-height "+10%"; + + #"Print".action = screenshot; + #"Ctrl+Print".aciton = screenshot-screen; + #"Alt+Print".action = screenshot-window; + + "Alt+Shift+E".action = quit; + "Ctrl+Alt+Delete".action = quit; + + "Alt+Shift+P".action = power-off-monitors; + }; + }; + programs.ghostty = { enable = true; settings = { window-decoration = false; - font-family = "Recursive Mono Linear Static"; - font-size = 16; + minimum-contrast = 1.5; + #font-family = "Recursive Mono Linear Static"; + #font-size = 11; #theme = "GruvboxDarkHard"; #theme = "Horizon"; #theme = "IC_Green_PPL"; @@ -61,7 +358,9 @@ #theme = "MonaLisa"; #theme = "Monokai Remastered"; #theme = "Monokai Soda"; - theme = "NightLion v2"; + + #theme = "NightLion v2"; + #theme = "niji"; #theme = "Nocturnal Winter"; #theme = "nord"; @@ -114,7 +413,7 @@ #font = "JetBrainsMono:size=8"; #font = "Iosevka:size=18"; #font = "Monoid:size=6"; - font = "Recursive:size=16"; # seems to be Recursive Mono Linear Static in Ghostty + #font = "Recursive:size=16"; # seems to be Recursive Mono Linear Static in Ghostty #dpi-aware = "yes"; }; mouse = { @@ -334,6 +633,31 @@ services.printing.enable = true; services.printing.drivers = [ pkgs.brlaser ]; + stylix = { + enable = true; + #image = /home/nathan/Wallpapers/walls/green-tea.jpg; + #image = ./cherry_tree.jpg; + #image = ./skyscraper.jpg; + #image = ./village.jpg; + image = ./stones-water.jpg; + #image = pkgs.fetchurl { + # url = "https://raw.githubusercontent.com/kiedtl/walls/refs/heads/master/green-tea.jpg"; + # sha256 = "sha256-+NcZMBnbEWurmkOkzdrxGwBlxzUO3Sitt6Uoq9plc7o="; + #}; + polarity = "dark"; + fonts = { + # hehe casual as serif + serif = { package = (make_besley pkgs lib); name = "Besley"; }; + #sansSerif = { package = pkgs.recursive; name = "Recursive Sans Linear Static"; }; + sansSerif = { package = pkgs.inter; name = "Inter"; }; + monospace = { package = pkgs.recursive; name = "Recursive Mono Linear Static"; }; + emoji = { package = pkgs.noto-fonts-emoji; name = "Noto Color Emoji"; }; + }; + }; + programs.niri = { + enable = true; + package = pkgs.niri; + }; programs.sway = { enable = true; wrapperFeatures.gtk = true; @@ -402,7 +726,6 @@ ''; }) ] ++ specificPkgs; - programs.waybar.enable = true; # kanshi systemd service systemd.user.services.kanshi = { @@ -429,6 +752,8 @@ specialArgs = attrs; modules = [ nixos-hardware.nixosModules.framework-13-7040-amd + stylix.nixosModules.stylix + niri.nixosModules.niri home-manager.nixosModules.home-manager homeManagerSharedModule ({ config, lib, pkgs, modulesPath, ... }@innerArgs: (lib.recursiveUpdate (commonConfigFunc innerArgs [ pkgs.light pkgs.gpodder pkgs.evince pkgs.wezterm pkgs.vulkan-tools pkgs.discord]) { @@ -473,7 +798,7 @@ networking.hostName = "nixos-framework"; # Define your hostname. system.stateVersion = "22.11"; # Did you read the comment? programs.fuse.userAllowOther = true; - services.jellyfin.enable = true; + #services.jellyfin.enable = true; services.fwupd.enable = true; #services.xserver = { # enable = true; @@ -487,6 +812,7 @@ inherit system; specialArgs = attrs; modules = [ + niri.nixosModules.niri home-manager.nixosModules.home-manager homeManagerSharedModule ({ config, lib, pkgs, modulesPath, ... }@innerArgs: (lib.recursiveUpdate (commonConfigFunc innerArgs [ pkgs.light pkgs.gpodder pkgs.evince ]) { @@ -551,6 +877,7 @@ inherit system; specialArgs = attrs; modules = [ + niri.nixosModules.niri home-manager.nixosModules.home-manager homeManagerSharedModule ({ config, lib, pkgs, modulesPath, ... }@innerArgs: (lib.recursiveUpdate (commonConfigFunc innerArgs []) { @@ -577,7 +904,7 @@ networking.hostName = "nixos-desktop"; # Define your hostname. system.stateVersion = "22.11"; - services.jellyfin.enable = true; + #services.jellyfin.enable = true; })) ]; }; @@ -585,6 +912,7 @@ inherit system; specialArgs = attrs; modules = [ + niri.nixosModules.niri home-manager.nixosModules.home-manager homeManagerSharedModule ({ config, lib, pkgs, modulesPath, ... }@innerArgs: (lib.recursiveUpdate (commonConfigFunc innerArgs []) { @@ -938,17 +1266,17 @@ proxyWebsockets = true; }; }; - virtualHosts."drop.room409.xyz" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:9009"; - proxyWebsockets = true; - extraConfig = '' - client_max_body_size 500M; - ''; - }; - }; + #virtualHosts."drop.room409.xyz" = { + #forceSSL = true; + #enableACME = true; + #locations."/" = { + #proxyPass = "http://localhost:9009"; + #proxyWebsockets = true; + #extraConfig = '' + #client_max_body_size 500M; + #''; + #}; + #}; #virtualHosts."www.kraken-lang.org" = { # forceSSL = true; # enableACME = true; @@ -1117,11 +1445,10 @@ # enableACME = true; # locations."/".proxyPass = "http://10.100.0.7:80"; #}; - virtualHosts."neel.room409.xyz" = { + virtualHosts."batou-jf.room409.xyz" = { forceSSL = true; enableACME = true; - basicAuth = { neel = "el_psy_congroo"; }; - locations."/".proxyPass = "http://100.64.0.1:8080"; + locations."/".proxyPass = "http://100.64.0.1:8096"; }; }; diff --git a/village.jpg b/village.jpg new file mode 100644 index 0000000..bed1b59 Binary files /dev/null and b/village.jpg differ