Compare commits

..

21 Commits

Author SHA1 Message Date
autumn-the-kitty-cat 1fe42be1b4 docs: screenshots/preview.png up to date 2025-12-08 02:30:23 -05:00
autumn-the-kitty-cat 4324799e60 build: update flake.lock 2025-12-08 02:27:59 -05:00
autumn-the-kitty-cat 82fb86c945 feat: improve the waybar clock module's format 2025-12-08 02:27:40 -05:00
autumn-the-kitty-cat 52639559e3 style: make the colours in the comments in home/pc/common/stylix.nix proper hex codes forcolorizer.nvim 2025-12-08 02:27:11 -05:00
autumn-the-kitty-cat 50db8aec2c feat: change git from a package to a program, and declare git configuration in home/pc/common/programs/git.nix 2025-12-08 02:25:07 -05:00
autumn-the-kitty-cat 6a6f2fc67f refactor: home-manager directories for each machine 2025-12-01 18:33:37 -05:00
autumn-the-kitty-cat 6696d0a56a refactor: multi-system configuration in host 2025-12-01 17:55:12 -05:00
autumn-the-kitty-cat 9b216cf609 refactor: home-manager to home/autumn 2025-12-01 17:54:36 -05:00
autumn-the-kitty-cat c76b681700 feat: add a hyprland layer rule so slurp border is not present in screenshots, add monitor rule so portal works on a 1440p monitor 2025-11-28 18:07:05 -05:00
autumn-the-kitty-cat d55b2ef3d2 feat: install bitwarden-desktop, imagemagick, jellycli, live-server, localsend 2025-11-28 18:06:27 -05:00
autumn-the-kitty-cat c7ba15d42a fix: refactor flake.nix, home-manager/home.nix, nixos/configuration.nix to avoid home-manager.useGlobalPkgs conflict error 2025-11-28 18:06:06 -05:00
autumn-the-kitty-cat 629929b657 feat: change the colour of the selected workspace in waybar 2025-11-28 18:05:06 -05:00
autumn-the-kitty-cat 92e9b70b04 feat: no more nitro nonsense in discord 2025-11-28 18:04:38 -05:00
autumn-the-kitty-cat 3c404ce97c feat: add emmet.nvim and ts-autotag 2025-11-28 18:04:26 -05:00
autumn-the-kitty-cat 93784a1909 style: organize neovim lsp servers alphabetically 2025-11-28 18:04:08 -05:00
autumn-the-kitty-cat 158f5a744e refactor: use a function to reduce repitition in zen configuration 2025-11-17 23:04:01 -05:00
autumn-the-kitty-cat e4a5dd8061 refactor: switch to hostName variable | style: reorganize environment.systemPackages | style: fix whitespace formatting for udev rules | feat: add cloudflared to environment.systemPackages 2025-11-17 23:03:24 -05:00
autumn-the-kitty-cat e109b48cf6 refactor: hostName variable in flake.nix 2025-11-17 23:01:23 -05:00
autumn-the-kitty-cat b5549d2629 feat: add juggling lab to home-manager packages 2025-11-17 23:00:50 -05:00
autumn-the-kitty-cat ffe63a7a0d init: init 2025-11-17 22:58:39 -05:00
autumn-the-kitty-cat ae221986c7 Initial commit 2025-11-17 22:55:37 -05:00
54 changed files with 1369 additions and 1861 deletions
Generated
+184 -129
View File
@@ -21,28 +21,28 @@
"base16-fish": { "base16-fish": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1765809053, "lastModified": 1754405784,
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=", "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"owner": "tomyun", "owner": "tomyun",
"repo": "base16-fish", "repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tomyun", "owner": "tomyun",
"repo": "base16-fish", "repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github" "type": "github"
} }
}, },
"base16-helix": { "base16-helix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1776754714, "lastModified": 1760703920,
"narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=", "narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-helix", "repo": "base16-helix",
"rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581", "rev": "d646af9b7d14bff08824538164af99d0c521b185",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -68,32 +68,14 @@
"type": "github" "type": "github"
} }
}, },
"base16_2": {
"inputs": {
"fromYaml": "fromYaml_2"
},
"locked": {
"lastModified": 1755819240,
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1776136500, "lastModified": 1764724327,
"narHash": "sha256-r0gN2brVWA351zwMV0Flmlcd6SGMvYqFbvC3DfKFM8Y=", "narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "0f8ba203d475587f477e7ae12661bd8459e225b7", "rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -121,16 +103,16 @@
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"neovim-nightly-overlay", "nixvim",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1778716662, "lastModified": 1763759067,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -147,11 +129,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775087534, "lastModified": 1763759067,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -178,23 +160,25 @@
"type": "github" "type": "github"
} }
}, },
"fromYaml": { "flake-utils_2": {
"flake": false, "inputs": {
"systems": "systems_2"
},
"locked": { "locked": {
"lastModified": 1731966426, "lastModified": 1731533236,
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "SenchoPens", "owner": "numtide",
"repo": "fromYaml", "repo": "flake-utils",
"rev": "106af9e2f715e2d828df706c386a685698f3223b", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "SenchoPens", "owner": "numtide",
"repo": "fromYaml", "repo": "flake-utils",
"type": "github" "type": "github"
} }
}, },
"fromYaml_2": { "fromYaml": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1731966426, "lastModified": 1731966426,
@@ -235,18 +219,20 @@
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1767737596, "host": "gitlab.gnome.org",
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=", "lastModified": 1764524476,
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49", "rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
"type": "github" "type": "gitlab"
}, },
"original": { "original": {
"host": "gitlab.gnome.org",
"owner": "GNOME", "owner": "GNOME",
"ref": "gnome-49",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49", "type": "gitlab"
"type": "github"
} }
}, },
"home-manager": { "home-manager": {
@@ -256,11 +242,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1779507042, "lastModified": 1764891212,
"narHash": "sha256-7wOwi8B6D0BYsieZCnHZZj2sNUzgJhLoIVSfkwB7lxQ=", "narHash": "sha256-74ZPvCEmT5JatN227aSBOnORAtW3RWcMjjAkeiHp8UE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "509ed3c603349a9d43de9e2ae6613baea6bd5b34", "rev": "df7bac2b2bdbaae8f9100be4e4cd21c7155611e9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -277,11 +263,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1778805320, "lastModified": 1762964643,
"narHash": "sha256-nGFJ01m2CTBKD4ABtcY4vLhHrRN91LKr/pn41PcU78A=", "narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "9846abe15e7d0d36b8acbd4d05f2b87461744c92", "rev": "827f2a23373a774a8805f84ca5344654c31f354b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -290,39 +276,31 @@
"type": "github" "type": "github"
} }
}, },
"neovim-nightly-overlay": { "ixx": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-utils": [
"neovim-src": "neovim-src", "nixvim",
"nixpkgs": "nixpkgs" "nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1779494629, "lastModified": 1754860581,
"narHash": "sha256-VuZJ76qmY90clvY6RQfAPL5JHwhcf1jmyqBfKR7WQ7Q=", "narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
"owner": "nix-community", "owner": "NuschtOS",
"repo": "neovim-nightly-overlay", "repo": "ixx",
"rev": "9b46852004ed151b36e424de6d529a231c622561", "rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "NuschtOS",
"repo": "neovim-nightly-overlay", "ref": "v0.1.1",
"type": "github" "repo": "ixx",
}
},
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1779493669,
"narHash": "sha256-09xuVobnmU/uZLUZLr/lb3tir2v0lwWEj92gGuJIdKU=",
"owner": "neovim",
"repo": "neovim",
"rev": "f53d9ac90b7a5a0eefb22398a8ce4e249a3fc732",
"type": "github"
},
"original": {
"owner": "neovim",
"repo": "neovim",
"type": "github" "type": "github"
} }
}, },
@@ -335,11 +313,11 @@
"pre-commit-hooks": "pre-commit-hooks" "pre-commit-hooks": "pre-commit-hooks"
}, },
"locked": { "locked": {
"lastModified": 1769821964, "lastModified": 1750526611,
"narHash": "sha256-WcfoLCZbo32Psw2mP9bF8uHCF50SMAhQFkWq+/+Z9B0=", "narHash": "sha256-RuP01U7zaS9S3zTNw4R0P87PY0A1szG8K5NTlOrqG18=",
"owner": "lunik1", "owner": "lunik1",
"repo": "nix-wallpaper", "repo": "nix-wallpaper",
"rev": "f658947fdc9ab85be9003deb26632a464bd41e5d", "rev": "fb2a848f01cd1b08c5d9029984f034eb883e318a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -350,27 +328,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1779414690, "lastModified": 1764667669,
"narHash": "sha256-gOTcX/9MZVMUE0Xvb4IEcv+0TQJkZFNEnL757ljU360=", "narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6dedf69f94d03cbe7bdde106f2d4c23ae2a853bf", "rev": "418468ac9527e799809c900eda37cbff999199b6",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1779357205,
"narHash": "sha256-cCO8aTqss5x9Ky8GWkpY0Hy5fyTZEbtifSUV8QjSzic=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -380,6 +342,29 @@
"type": "github" "type": "github"
} }
}, },
"nixvim": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_3"
},
"locked": {
"lastModified": 1764775759,
"narHash": "sha256-NZKVrj5mOPZVOVZ6wU5FcGsPUY6W12dNgVsctkjO3tY=",
"owner": "jfredett",
"repo": "nixvim",
"rev": "bfeca2ce13d46ea96fd306b61fb81095b5258266",
"type": "github"
},
"original": {
"owner": "jfredett",
"repo": "nixvim",
"type": "github"
}
},
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": [ "flake-parts": [
@@ -392,11 +377,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1777598946, "lastModified": 1764773531,
"narHash": "sha256-X239dAGaU1+gfDj8jKH8GzlqKMcxaVfXOio+uzBOkeE=", "narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "5d55af01c0f86be583931fe99207fc56c14134b3", "rev": "1d9616689e98beded059ad0384b9951e967a17fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -405,6 +390,29 @@
"type": "github" "type": "github"
} }
}, },
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils_2",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1761730856,
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
"owner": "NuschtOS",
"repo": "search",
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@@ -430,18 +438,17 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"base16": "base16",
"home-manager": "home-manager", "home-manager": "home-manager",
"neovim-nightly-overlay": "neovim-nightly-overlay",
"nix-wallpaper": "nix-wallpaper", "nix-wallpaper": "nix-wallpaper",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs",
"nixvim": "nixvim",
"stylix": "stylix", "stylix": "stylix",
"zen-browser": "zen-browser" "zen-browser": "zen-browser"
} }
}, },
"stylix": { "stylix": {
"inputs": { "inputs": {
"base16": "base16_2", "base16": "base16",
"base16-fish": "base16-fish", "base16-fish": "base16-fish",
"base16-helix": "base16-helix", "base16-helix": "base16-helix",
"base16-vim": "base16-vim", "base16-vim": "base16-vim",
@@ -452,18 +459,19 @@
"nixpkgs" "nixpkgs"
], ],
"nur": "nur", "nur": "nur",
"systems": "systems_2", "systems": "systems_4",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux", "tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1779378391, "lastModified": 1764860352,
"narHash": "sha256-IsDb9erotvx9npI94UDosvMeYQK17p7/vmU2v9batrY=", "narHash": "sha256-bWrh2T6EPiiZC7jY0jK5cWRwkG0hltnPT1etfHIHiXM=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "c1456cc4ba3c9485e7b4158c909eeca5a752cd59", "rev": "61a01b75f0a7e58dac486ddf022c628a71528399",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -502,6 +510,53 @@
"type": "github" "type": "github"
} }
}, },
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_4": {
"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": { "tinted-kitty": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -521,11 +576,11 @@
"tinted-schemes": { "tinted-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1777041405, "lastModified": 1763914658,
"narHash": "sha256-BAGZ7ObFV/9Z61OJZun7ifPyhkuHqNuW1QIhQ8LuzCo=", "narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "5f868b3a338b6904c47f3833b9c411be641983a8", "rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -537,11 +592,11 @@
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1777169200, "lastModified": 1764465359,
"narHash": "sha256-h7dDbIzP5hDr9v97w9PL6jdAgXawmj6krcH+959rqpU=", "narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "f798c2dce44ef815bb6b8f05a82135c7942d35ac", "rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -553,11 +608,11 @@
"tinted-zed": { "tinted-zed": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1777463218, "lastModified": 1764464512,
"narHash": "sha256-Bhkozqtq3BKLqWTlmKm8uAptfX4aRGI8QX3eEL54Vpc=", "narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-zed", "repo": "base16-zed",
"rev": "5768d08ed2e7944a26a958868cdb073cb8856dae", "rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -574,11 +629,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1779455631, "lastModified": 1764825646,
"narHash": "sha256-svU6Ro4xiMxMA1KJGwQ/nfKwz3yXE/SONCw2Z1qTXHA=", "narHash": "sha256-QkKEkj3GXpkPxJz9S1RgaMlxstkyaj5IKVWvxIbtC8w=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "5bcdfcef664bf62831dcb4b947004d9c5fbf7201", "rev": "8c9284cc227a5c7cd8f1e1fa7a6882b0907187c8",
"type": "github" "type": "github"
}, },
"original": { "original": {
+6 -12
View File
@@ -6,14 +6,14 @@
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = { stylix = {
url = "github:danth/stylix"; url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
base16 = {
url = "github:SenchoPens/base16.nix";
};
zen-browser = { zen-browser = {
url = "github:0xc000022070/zen-browser-flake"; url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -25,15 +25,11 @@
}; };
outputs = outputs =
{ ... }@inputs: { ... }@inputs:
let
userName = "autumn";
in
{ {
nixosConfigurations = { nixosConfigurations = {
"january" = inputs.nixpkgs.lib.nixosSystem { "january" = inputs.nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
hostName = "january"; hostName = "january";
inherit userName;
inherit inputs; inherit inputs;
}; };
@@ -43,16 +39,14 @@
"february" = inputs.nixpkgs.lib.nixosSystem { "february" = inputs.nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
hostName = "february"; hostName = "february";
inherit userName;
inherit inputs; inherit inputs;
};
modules = [ ./host/pc/february/configuration.nix ]; modules = [ ./host/pc/february/configuration.nix ];
};
}; };
"march" = inputs.nixpkgs.lib.nixosSystem { "march" = inputs.nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
inherit userName;
hostName = "march"; hostName = "march";
}; };
+35 -9
View File
@@ -1,11 +1,37 @@
{ pkgs, ... }: {pkgs, ...}:
{ {
home.file.".clang-format".text = '' home.packages = with pkgs; [
--- clang
BasedOnStyle: LLVM ];
ColumnLimit: 80
IndentCaseLabels: true home.file.".clang-format".text = ''
InsertBraces: true ---
IndentWidth: 4 BasedOnStyle: WebKit
''; AlignAfterOpenBracket: Align
BraceWrapping:
AfterCaseLabel: true
AfterClass: true
AfterControlStatement: Always
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: true
BeforeCatch: true
BeforeElse: true
BeforeLambdaBody: true
BeforeWhile: true
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBraces: Custom
ColumnLimit: 80
IndentCaseLabels: true
InsertBraces: true
TabWidth: 4
'';
} }
+9 -36
View File
@@ -1,42 +1,22 @@
{ inputs, lib, pkgs, ... }: { inputs, pkgs, ... }:
let
cursorTheme = {
name = "Bibata-Modern-Ice";
package = pkgs.bibata-cursors;
size = 3;
};
in
{ {
imports = [ imports = [
inputs.nixvim.homeModules.nixvim
inputs.stylix.homeModules.stylix
inputs.zen-browser.homeModules.default inputs.zen-browser.homeModules.default
./programs ./programs
./clangd.nix ./clangd.nix
./hyprland.nix
./packages.nix ./packages.nix
./stylix.nix
./xdg.nix ./xdg.nix
./river
]; ];
home.username = "autumn"; home.username = "autumn";
home.homeDirectory = "/home/autumn"; home.homeDirectory = "/home/autumn";
home.stateVersion = "26.05"; home.stateVersion = "25.05";
# programs.ghostty.enable = true;
# programs.ghostty.settings.font-size = 24;
programs.foot = {
enable = true;
settings.main.font = lib.mkForce "Caskaydia Cove Mono:size=24";
};
stylix = {
targets.waybar.enable = false;
targets.zathura.enable = false;
targets.vesktop.enable = false;
targets.zen-browser.profileNames = [ "default" ];
targets.gnome.enable = false;
};
nixpkgs.config = { nixpkgs.config = {
allowUnfree = true; allowUnfree = true;
@@ -44,16 +24,9 @@ in
}; };
home.pointerCursor = { home.pointerCursor = {
name = cursorTheme.name; name = "Adwaita";
package = cursorTheme.package; package = pkgs.adwaita-icon-theme;
size = cursorTheme.size; size = 12;
x11.enable = true;
gtk.enable = true;
};
gtk = {
enable = true;
inherit cursorTheme;
}; };
programs.home-manager.enable = true; programs.home-manager.enable = true;
+149
View File
@@ -0,0 +1,149 @@
{ config, pkgs, ... }:
{
home.packages = with pkgs; [
hyprpicker
swww
];
home.file.".config/hypr/hyprland.conf".text = ''
$mainMod=SUPER
$menu=rofi -show drun
$powerMenu=rofi -show power-menu -modi "power-menu:rofi-power-menu --choices lockscreen/suspend/reboot/shutdown"
$screenshot=slurp | grim -g - - | wl-copy
$terminal=foot
animations {
bezier=myBezier, 0.05, 0.9, 0.1, 1.05
animation=windows, 1, 7, myBezier
animation=windowsOut, 1, 7, default, popin 80%
animation=border, 1, 10, default
animation=borderangle, 1, 8, default
animation=fade, 1, 7, default
animation=workspaces, 1, 6, default
enabled=true
}
decoration {
blur {
enabled=yes
ignore_opacity=on
new_optimizations=on
passes=3
size=6
special=true
xray=false
}
# active_opacity=1.000000
# inactive_opacity=1.000000
rounding=10
shadow {
color=rgba(00000099)
enabled=true
range=4
render_power=3
}
}
dwindle {
preserve_split=true
pseudotile=true
}
xwayland {
force_zero_scaling=true
}
general {
allow_tearing=false
border_size=2
col.active_border=rgb(${config.stylix.base16Scheme.palette.base0D})
col.inactive_border=rgba(595959aa)
gaps_in=5
gaps_out=10
layout=dwindle
resize_on_border=false
}
input {
touchpad {
natural_scroll=true
disable_while_typing=0
}
kb_layout=us
}
misc {
disable_hyprland_logo=true
force_default_wallpaper=0
}
monitor = DP-2, 2560x1440@180, 0x0, 1#, bitdepth, 10, cm, hdr
#monitor = DP-2, 1920x1080@180, 0x0, 1#, bitdepth, 10, cm, hdr
monitor = HDMI-A-1, 1920x1080@60, 2560x0, 1
bind=$mainMod, Q, exec, $terminal
bind=$mainMod, C, killactive
bind=$mainMod, M, exit
bind=$mainMod, V, togglefloating
bind=$mainMod, D, exec, $menu
bind=$mainMod, P, pseudo
bind=$mainMod, T, togglesplit
bind=$mainMod, S, exec, $screenshot
bind=$mainMod SHIFT, P, exec, $powerMenu
bind=$mainMod SHIFT, S, exec, $screenshot
bind=$mainMod, F, fullscreen
bind=$mainMod, left, movefocus, l
bind=$mainMod, right, movefocus, r
bind=$mainMod, up, movefocus, u
bind=$mainMod, down, movefocus, d
bind=$mainMod, H, movefocus, l
bind=$mainMod, L, movefocus, r
bind=$mainMod, K, movefocus, u
bind=$mainMod, J, movefocus, d
bind=$mainMod SHIFT, H, movewindow, l
bind=$mainMod SHIFT, L, movewindow, r
bind=$mainMod SHIFT, K, movewindow, u
bind=$mainMod SHIFT, J, movewindow, d
bind=$mainMod SHIFT, left, movewindow, l
bind=$mainMod SHIFT, right, movewindow, r
bind=$mainMod SHIFT, up, movewindow, u
bind=$mainMod SHIFT, down, movewindow, d
bind=$mainMod, 1, workspace, 1
bind=$mainMod, 2, workspace, 2
bind=$mainMod, 3, workspace, 3
bind=$mainMod, 4, workspace, 4
bind=$mainMod, 5, workspace, 5
bind=$mainMod, 6, workspace, 6
bind=$mainMod, 7, workspace, 7
bind=$mainMod, 8, workspace, 8
bind=$mainMod, 9, workspace, 9
bind=$mainMod, 0, workspace, 10
bind=$mainMod SHIFT, 1, movetoworkspace, 1
bind=$mainMod SHIFT, 2, movetoworkspace, 2
bind=$mainMod SHIFT, 3, movetoworkspace, 3
bind=$mainMod SHIFT, 4, movetoworkspace, 4
bind=$mainMod SHIFT, 5, movetoworkspace, 5
bind=$mainMod SHIFT, 6, movetoworkspace, 6
bind=$mainMod SHIFT, 7, movetoworkspace, 7
bind=$mainMod SHIFT, 8, movetoworkspace, 8
bind=$mainMod SHIFT, 9, movetoworkspace, 9
bind=$mainMod SHIFT, 0, movetoworkspace, 10
bind=$mainMod, mouse_down, workspace, e+1
bind=$mainMod, mouse_up, workspace, e-1
bindm=$mainMod, mouse:272, movewindow
bindm=$mainMod, mouse:273, resizewindow
env=XCURSOR_SIZE,24
env=HYPRCURSOR_SIZE,24
exec-once=swww-daemon
exec=swww img ${config.stylix.image}
exec-once=waybar
exec=pkill waybar; waybar
windowrulev2=suppressevent maximize, class:.*
#windowrulev2 = opacity 0.9, class:(com.mitchellh.ghostty)
layerrule = noanim, selection
'';
}
+11 -13
View File
@@ -1,31 +1,29 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
audacity
bitwarden-desktop bitwarden-desktop
cava
cmus cmus
fd
file file
ffmpeg ffmpeg
fzf fzf
jellyfin-desktop gimp3-with-plugins
krita grim
killall
lazygit lazygit
lmms libresprite
man-pages man-pages
man-pages-posix man-pages-posix
obs-studio python3
projectm-sdl-cpp
ripgrep ripgrep
signal-desktop rusty-man
slurp
tor-browser tor-browser
unzip
vial vial
vlc vlc
wl-clipboard wl-clipboard
xdg-desktop-portal
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
libdrm
fcft
]; ];
} }
+5 -5
View File
@@ -1,7 +1,7 @@
{ ... }: {...}:
{ {
programs.carapace = { programs.carapace = {
enable = true; enable = true;
enableFishIntegration = true; enableNushellIntegration = true;
}; };
} }
+10 -4
View File
@@ -1,19 +1,25 @@
{...}:
{ {
imports = [ imports = [
./eww
./nvim ./nvim
./rofi ./rofi
./zen
./btop.nix ./btop.nix
./carapace.nix ./carapace.nix
./fastfetch.nix
./foot.nix ./foot.nix
./git.nix ./git.nix
./hyfetch.nix
./mako.nix ./mako.nix
./tcsh.nix ./ncspot.nix
./nix-search-tv.nix
./nushell.nix
./starship.nix
./tmux.nix ./tmux.nix
./vesktop.nix ./vesktop.nix
./waybar.nix
./yazi.nix
./zathura.nix ./zathura.nix
./zen.nix
./zoxide.nix
]; ];
} }
-18
View File
@@ -1,18 +0,0 @@
{ config, lib, pkgs, ... }:
{
home.packages = [
pkgs.eww
pkgs.playerctl
pkgs.pamixer
pkgs.alsa-utils
];
xdg.configFile."eww/eww.yuck".source = ./eww.yuck;
xdg.configFile."eww/eww.scss".source =
let
colors = with config.lib.stylix.colors; {
inherit base00 base01 base02 base03 base04 base05 base06 base07 base08 base09 base0A base0B base0C base0D base0E base0F;
};
in
pkgs.replaceVars ./eww.scss colors;
}
-66
View File
@@ -1,66 +0,0 @@
$base00: #@base00@;
$base01: #@base01@;
$base02: #@base02@;
$base03: #@base03@;
$base04: #@base04@;
$base05: #@base05@;
$base06: #@base06@;
$base07: #@base07@;
$base08: #@base08@;
$base09: #@base09@;
$base0A: #@base0A@;
$base0B: #@base0B@;
$base0C: #@base0C@;
$base0D: #@base0D@;
$base0E: #@base0E@;
$base0F: #@base0F@;
* {
all: unset; // Unsets everything so you can style everything from scratch
}
// Global Styles
.bar {
background-color: $base01;
color: $base05;
padding: 5px;
font-size: large;
}
// Styles on classes (see eww.yuck for more information)
.sidestuff slider {
all: unset;
color: $base0D;
}
.metric scale trough highlight {
all: unset;
background-color: $base0D;
border-radius: 10px;
}
.metric scale trough {
all: unset;
background-color: $base04;
border-radius: 50px;
min-height: 3px;
min-width: 50px;
margin-left: 10px;
margin-right: 20px;
}
tooltip.background {
background-color: $base01;
font-size: large;
border: 2px solid $base0D;
}
.label-ram {
font-size: large;
}
.workspaces button:hover {
color: $base0D;
}
-76
View File
@@ -1,76 +0,0 @@
; https://github.com/elkowar/eww/blob/master/examples/eww-bar/
(defwidget bar []
(centerbox :orientation "h"
(workspaces)
(time)
(sidestuff)))
(defwidget sidestuff []
(box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
(metric :label " "
:tooltip "${volume}% volume"
:value {volume}
:onchange "wpctl set-volume @DEFAULT_SINK@ {}%")
(metric :label "󰍛"
:tooltip "${round(EWW_RAM.used_mem_perc, 0)}% of RAM used"
:value {EWW_RAM.used_mem_perc}
:onchange "")
(metric :label "󰻠"
:tooltip "${round(EWW_CPU.avg, 0)}% average CPU usage"
:value {round((EWW_CPU.avg), 0)}
:onchange "")
(metric :label "󱈑"
:tooltip "${round((EWW_BATTERY["BAT0"].capacity + EWW_BATTERY["BAT1"].capacity) / 2, 0)}% battery life"
:value {round((EWW_BATTERY["BAT0"].capacity + EWW_BATTERY["BAT1"].capacity) / 2, 0)}
:onchange "")))
(defwidget workspaces []
(box :class "workspaces"
:orientation "h"
:space-evenly true
:halign "start"
:spacing 10
(button :onclick "riverctl set-focused-tags 1" 1)
(button :onclick "riverctl set-focused-tags 2" 2)
(button :onclick "riverctl set-focused-tags 4" 3)
(button :onclick "riverctl set-focused-tags 8" 4)
(button :onclick "riverctl set-focused-tags 16" 5)
(button :onclick "riverctl set-focused-tags 32" 6)
(button :onclick "riverctl set-focused-tags 64" 7)
(button :onclick "riverctl set-focused-tags 128" 8)
(button :onclick "riverctl set-focused-tags 256" 9)))
(defwidget metric [?tooltip label value onchange]
(box :orientation "h"
:tooltip tooltip
:class "metric"
:space-evenly false
(box :class "label" label)
(scale :min 0
:max 101
:active {onchange != ""}
:value value
:onchange onchange)))
(defpoll volume :interval "1s"
"wpctl get-volume @DEFAULT_SINK@ | awk -F' ' '{print 100 * $2}'")
(defwidget time []
(label :text time-poll))
(defpoll time-poll :interval "10s"
"date '+%H:%M %b %d, %Y'")
(defwindow bar
:monitor 0
:exclusive true
:focusable "none"
:geometry (geometry :x "0%"
:y "0%"
:width "100%"
:height "10px"
:anchor "top center")
:reserve (struts :side "top" :distance "4%")
(bar))
-49
View File
@@ -1,49 +0,0 @@
{ pkgs, ... }:
{
home.packages = [
pkgs.nix-your-shell
pkgs.lolcat
pkgs.kittysay
];
programs.fish = {
enable = true;
shellInit = ''
function fish_prompt
if test -z $IN_NIX_SHELL
printf '%s%s λ %s' (set_color magenta) $(prompt_pwd) (set_color normal)
else
printf '%s%s%s [nix-shell %s]%s λ%s ' (set_color magenta) $(prompt_pwd) (set_color yellow) $IN_NIX_SHELL (set_color magenta) (set_color normal)
end
end
function fish_greeting
end
function nix-shell --description "Start an interactive shell based on a Nix expression"
nix-your-shell fish nix-shell -- $argv
end
function nix --description "Reproducible and declarative configuration management"
nix-your-shell fish nix -- $argv
end
'';
shellInitLast = ''
set fish_color_normal green
set fish_color_command magenta --bold
set fish_color_quote yellow
set fish_color_redirection white
set fish_color_end magenta
set fish_color_error red --bold
set fish_color_param blue
set fish_color_valid_path blue
set fish_color_option blue
set fish_color_comment brblack --italics
set fish_color_operator yellow
set fish_color_escape blue --italics
set fish_color_autosuggestion brblack
set fish_color_cancel brblack
'';
};
}
+9 -5
View File
@@ -1,9 +1,13 @@
{ lib, ... }: {...}: {
{
programs.foot = { programs.foot = {
enable = true; enable = true;
settings.main.font = lib.mkForce "Caskaydia Cove Mono:size=24"; settings = {
settings.main.font-size-adjustment = 1; cursor = {
settings.main.shell = "tcsh"; style = "beam";
};
key-bindings = {
spawn-terminal = "none";
};
};
}; };
} }
@@ -0,0 +1,8 @@
{ ... }:
{
programs.television.enable = true;
programs.nix-search-tv = {
enable = true;
enableTelevisionIntegration = true;
};
}
+223
View File
@@ -0,0 +1,223 @@
{ config, pkgs, ... }:
{
home.packages = [ pkgs.nix-your-shell ];
programs.nushell = {
enable = true;
plugins = with pkgs.nushellPlugins; [
formats
polars
gstat
query
];
settings = {
show_banner = false;
edit_mode = "vi";
cursor_shape = {
emacs = "line";
vi_insert = "line";
vi_normal = "block";
};
};
shellAliases = {
c = "clear";
meow = "_meow";
hf = "nix flake update --flake ${config.home.homeDirectory}/.config/home-manager";
hs = "nh home switch ~/.config/home-manager";
hz = "z ~/.config/home-manager";
nsu = "_nsu";
ns = "sudo nixos-rebuild switch";
se = "sudoedit";
v = "nvim";
};
extraConfig = with config.stylix.base16Scheme.palette; ''
def _meow () {
clear
hyfetch
}
def _nsu () {
sudo nix-channel --add https://channels.nixos.org/nixos-unstable nixos
sudo nixos-rebuild switch --upgrade
}
def _nix_your_shell (command: string, args: list<string>) {
if not (which nix-your-shell | is-empty) {
let args = ["--"] ++ $args
run-external nix-your-shell nu $command ...$args
} else {
run-external $command ...$args
}
}
def --wrapped nix-shell (...args) {
_nix_your_shell nix-shell $args
}
def --wrapped nix (...args) {
_nix_your_shell nix $args
}
let theme = {
base00: "#${base00}"
base01: "#${base01}"
base02: "#${base02}"
base03: "#${base03}"
base04: "#${base04}"
base05: "#${base05}"
base06: "#${base06}"
base07: "#${base07}"
base08: "#${base08}"
base09: "#${base09}"
base0A: "#${base0A}"
base0B: "#${base0B}"
base0C: "#${base0C}"
base0D: "#${base0D}"
base0E: "#${base0E}"
base0F: "#${base0F}"
}
let scheme = {
recognized_command: $theme.base0D
unrecognized_command: $theme.base08
constant: $theme.base09
punctuation: $theme.base04
operator: $theme.base0C
string: $theme.base0B
virtual_text: $theme.base04
variable: { fg: $theme.base0F attr: i }
filepath: $theme.base0A
}
$env.config.color_config = {
separator: { fg: $theme.base04 attr: b }
leading_trailing_space_bg: { fg: $theme.base07 attr: u }
header: { fg: $theme.base05 attr: b }
row_index: $scheme.virtual_text
record: $theme.base05
list: $theme.base05
hints: $scheme.virtual_text
search_result: { fg: $theme.base00 bg: $theme.base0A }
shape_closure: $theme.base0C
closure: $theme.base0C
shape_flag: { fg: $theme.base08 attr: i }
shape_matching_brackets: { attr: u }
shape_garbage: $theme.base08
shape_keyword: $theme.base0E
shape_match_pattern: $theme.base0B
shape_signature: $theme.base0C
shape_table: $scheme.punctuation
cell-path: $scheme.punctuation
shape_list: $scheme.punctuation
shape_record: $scheme.punctuation
shape_vardecl: $scheme.variable
shape_variable: $scheme.variable
empty: { attr: n }
filesize: {||
if $in < 1kb {
$theme.base0C
} else if $in < 10kb {
$theme.base0B
} else if $in < 100kb {
$theme.base0A
} else if $in < 10mb {
$theme.base09
} else if $in < 100mb {
$theme.base08
} else if $in < 1gb {
$theme.base08
} else {
$theme.base0E
}
}
duration: {||
if $in < 1day {
$theme.base0C
} else if $in < 1wk {
$theme.base0B
} else if $in < 4wk {
$theme.base0A
} else if $in < 12wk {
$theme.base09
} else if $in < 24wk {
$theme.base08
} else if $in < 52wk {
$theme.base08
} else {
$theme.base0E
}
}
date: {|| (date now) - $in |
if $in < 1day {
$theme.base0C
} else if $in < 1wk {
$theme.base0B
} else if $in < 4wk {
$theme.base0A
} else if $in < 12wk {
$theme.base09
} else if $in < 24wk {
$theme.base08
} else if $in < 52wk {
$theme.base08
} else {
$theme.base0E
}
}
shape_external: $scheme.unrecognized_command
shape_internalcall: $scheme.recognized_command
shape_external_resolved: $scheme.recognized_command
shape_block: $scheme.recognized_command
block: $scheme.recognized_command
shape_custom: $theme.base0F
custom: $theme.base0F
background: $theme.base00
foreground: $theme.base05
cursor: { bg: $theme.base06 fg: $theme.base00 }
shape_range: $scheme.operator
range: $scheme.operator
shape_pipe: $scheme.operator
shape_operator: $scheme.operator
shape_base08irection: $scheme.operator
glob: $scheme.filepath
shape_directory: $scheme.filepath
shape_filepath: $scheme.filepath
shape_glob_interpolation: $scheme.filepath
shape_globpattern: $scheme.filepath
shape_int: $scheme.constant
int: $scheme.constant
bool: $scheme.constant
float: $scheme.constant
nothing: $scheme.constant
binary: $scheme.constant
shape_nothing: $scheme.constant
shape_bool: $scheme.constant
shape_float: $scheme.constant
shape_binary: $scheme.constant
shape_datetime: $scheme.constant
shape_literal: $scheme.constant
string: $scheme.string
shape_string: $scheme.string
shape_string_interpolation: $theme.base0F
shape_raw_string: $scheme.string
shape_externalarg: $scheme.string
}
$env.config.highlight_resolved_externals = true
$env.config.explore = {
status_bar_background: { fg: $theme.base05, bg: $theme.base01 },
command_bar_text: { fg: $theme.base05 },
highlight: { fg: $theme.base00, bg: $theme.base0A },
status: {
error: $theme.base08,
warn: $theme.base0A,
info: $theme.base0D,
},
selected_cell: { bg: $theme.base0D fg: $theme.base00 },
}
'';
};
}
@@ -0,0 +1,6 @@
{...}: {
imports = [
./lsp.nix
./none-ls.nix
];
}
+125
View File
@@ -0,0 +1,125 @@
{ ... }:
{
programs.nixvim.plugins = {
lsp = {
enable = true;
inlayHints = true;
servers = {
asm_lsp.enable = true;
clangd = {
enable = true;
cmd = [
"clangd"
];
};
cssls.enable = true;
eslint.enable = true;
lua_ls = {
enable = true;
settings.telemetry.enable = false;
};
hls = {
enable = true;
installGhc = true;
settings.haskell = {
formattingProvider = "fourmolu";
};
};
html.enable = true;
jsonls.enable = true;
mlir_lsp_server.enable = true;
nil_ls.enable = true;
nixd.enable = true;
nushell.enable = true;
ocamllsp.enable = true;
pyright.enable = true;
ts_ls.enable = true;
zls.enable = true;
};
};
cmp-emoji = {
enable = true;
};
cmp = {
enable = true;
settings = {
autoEnableSources = true;
experimental = {
ghost_text = true;
};
performance = {
debounce = 60;
fetchingTimeout = 200;
};
snippet = {
expand = "luasnip";
};
formatting = {
fields = [
"kind"
"abbr"
"menu"
];
};
sources = [
{ name = "nvim_lsp"; }
{ name = "emoji"; }
{
name = "buffer"; # text within current buffer
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
keywordLength = 3;
}
{
name = "path"; # file system paths
keywordLength = 3;
}
{
name = "luasnip"; # snippets
keywordLength = 3;
}
];
window = {
completion.__raw = "cmp.config.window.bordered()";
documentation.__raw = "cmp.config.window.bordered()";
};
mapping = {
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
"<C-e>" = "cmp.mapping.abort()";
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<C-Space>" = "cmp.mapping.complete()";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<S-CR>" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })";
};
};
};
cmp-nvim-lsp = {
enable = true;
}; # lsp
cmp-buffer = {
enable = true;
};
cmp-path = {
enable = true;
}; # file system paths
cmp_luasnip = {
enable = true;
}; # snippets
cmp-cmdline = {
enable = false;
}; # autocomplete for cmdline
luasnip = {
enable = true;
settings = {
enable_autosnippets = true;
store_selection_keys = "<Tab>";
};
};
};
}
@@ -0,0 +1,10 @@
{ ... }:
{
programs.nixvim.plugins = {
lsp-format.enable = true;
none-ls = {
enable = true;
enableLspFormat = true;
};
};
}
-554
View File
@@ -1,554 +0,0 @@
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.cursorline = true
vim.opt.mouse = ""
vim.opt.breakindent = true
vim.opt.expandtab = true
vim.opt.smartcase = true
vim.opt.shiftwidth = 4
vim.opt.softtabstop = 4
vim.opt.wildmenu = true
vim.opt.undofile = true
vim.opt.termguicolors = true
vim.opt.shell = "@shell@"
vim.opt.splitbelow = true
vim.opt.splitright = true
vim.opt.winborder = "rounded"
vim.o.list = true
vim.o.listchars = "eol:"
vim.g.mapleader = " "
vim.keymap.set("n", "<leader>n", "<cmd>e .<cr>", {})
-- Per nixvim generated configuration
vim.diagnostic.config({
float = { border = "rounded", source = "always" },
virtual_lines = false,
virtual_text = true,
})
vim.keymap.set("n", "<leader>q", function()
vim.cmd("hori term")
vim.cmd("startinsert")
end, {})
vim.keymap.set("t", "<esc><esc>", "", {})
vim.pack.add({
"https://github.com/nvim-treesitter/nvim-treesitter",
"https://github.com/hrsh7th/nvim-cmp",
"https://github.com/hrsh7th/cmp-nvim-lsp",
"https://github.com/L3MON4D3/LuaSnip",
"https://github.com/hrsh7th/cmp-emoji",
"https://github.com/windwp/nvim-autopairs",
"https://github.com/lukas-reineke/lsp-format.nvim",
"https://github.com/nvimtools/none-ls.nvim",
"https://github.com/nvim-lua/plenary.nvim",
"https://github.com/nvim-telescope/telescope.nvim",
"https://github.com/ej-shafran/compile-mode.nvim",
"https://github.com/m00qek/baleia.nvim",
"https://github.com/nvim-lualine/lualine.nvim",
"https://github.com/stevearc/oil.nvim",
"https://github.com/folke/lazydev.nvim",
"https://github.com/RRethy/base16-nvim",
})
require('base16-colorscheme').setup({
base00 = '#@base00@',
base01 = '#@base01@',
base02 = '#@base02@',
base03 = '#@base03@',
base04 = '#@base04@',
base05 = '#@base05@',
base06 = '#@base06@',
base07 = '#@base07@',
base08 = '#@base08@',
base09 = '#@base09@',
base0A = '#@base0A@',
base0B = '#@base0B@',
base0C = '#@base0C@',
base0D = '#@base0D@',
base0E = '#@base0E@',
base0F = '#@base0F@',
})
require("lazydev").setup({
ft = "lua",
})
require("oil").setup({
default_file_explorer = true,
columns = {
"permissions",
"size",
"user",
"mtime",
"icon",
},
view_options = {
show_hidden = true,
case_insensitive = true,
},
})
vim.g.compile_mode = {
default_command = "nix build",
recompile_no_fail = true,
buffer_name = "*compile*",
baleia_setup = true,
}
vim.keymap.set("n", "<leader>c", "<cmd>Recompile<cr>", { silent = true })
local file_types = { "rust", "zig", "haskell", "c", "cpp" }
require("nvim-treesitter").install(file_types)
vim.api.nvim_create_autocmd("FileType", {
pattern = file_types,
callback = function(ev)
vim.treesitter.start(ev.buf)
end,
})
local telescope = require("telescope.builtin")
vim.keymap.set("n", "<leader>b", telescope.buffers, {})
vim.keymap.set("n", "<leader>f", telescope.find_files, {})
vim.keymap.set("n", "<leader>t", telescope.live_grep, {})
vim.keymap.set("n", "<leader>m", function()
telescope.man_pages({
sections = { "2", "3", "4", "5" },
})
end, {})
require("nvim-autopairs").setup({})
require("null-ls").setup({ on_attach = require("lsp-format").on_attach })
require("lsp-format").setup({})
local luasnip = require("luasnip")
local cmp = require("cmp")
cmp.setup({
autoEnableSources = true,
experimental = { ghost_text = true },
formatting = { fields = { "kind", "abbr", "menu" } },
mapping = {
["<CR>"] = cmp.mapping.confirm({ select = true }),
["<S-Tab>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "s" }),
["<Tab>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "s" }),
},
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end
},
sources = {
{ name = "nvim_lsp" },
{ keywordLength = 3, name = "buffer", option = { get_bufnrs = vim.api.nvim_list_bufs } },
{ keywordLength = 3, name = "path" },
{ name = "lazydev" },
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
})
vim.lsp.inlay_hint.enable(true)
local __lspCapabilities = function()
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities())
return capabilities
end
local __setup = { capabilities = __lspCapabilities() }
local __wrapConfig = function(cfg)
if cfg == nil then
cfg = __setup
else
cfg = vim.tbl_extend("keep", cfg, __setup)
end
return cfg
end
vim.lsp.config("clangd", { cmd = { "clangd" }, filetypes = { "c", "cpp" } })
vim.lsp.enable("clangd")
vim.lsp.config("haskell-language-server",
{ cmd = { "haskell-language-server-wrapper", "--lsp" }, filetypes = { "haskell" } })
vim.lsp.enable("haskell-language-server")
vim.lsp.config("lua_ls", { cmd = { "lua-language-server" }, filetypes = { "lua" } })
vim.lsp.enable("lua_ls")
vim.lsp.config("nil_ls", { cmd = { "nil" }, filetypes = { "nix" } })
vim.lsp.enable("nil_ls")
vim.lsp.config("nixd", { cmd = { "nixd" }, filetypes = { "nix" } })
vim.lsp.enable("nixd")
vim.lsp.config("pyright", { cmd = { "pyright-langserver", "--stdio" }, filetypes = { "python" } })
vim.lsp.enable("pyright")
vim.lsp.config("rust-analyzer", { cmd = { "rust-analyzer" }, filetypes = { "rust" } })
vim.lsp.enable("rust-analyzer")
vim.lsp.config("zls", { cmd = { "zls" }, filetypes = { "zig" } })
vim.lsp.enable("zls")
-- -- https://github.com/catppuccin/nvim/blob/main/lua/catppuccin/palettes/mocha.lua
-- -- https://github.com/Ronxvier/ymir.nvim/blob/main/lua/ymir/palette.lua
-- local colors = {
-- red = "#f38ba8",
-- orange = "#fab387",
-- green = "#a6e3a1",
-- yellow = "#f9e2af",
-- pink = "#f5c2e7",
-- magenta = "#cba6f7",
-- cyan = "#94e2d5",
--
-- bg = "#11111b",
-- fg = "#cdd6f4",
-- cursorline = "#181825",
-- selection = "#313244",
-- linenr = "#45475a",
-- comment = "#585b70",
--
-- -- Syntax
-- keyword = "#cba6f7",
-- Function = "#cba6f7",
-- string = "#f9e2af",
-- constant = "#cba6f7",
-- type = "#94e2d5",
-- number = "#fab387",
-- boolean = "#fab387",
-- operator = "#cdd6f4",
-- variable = "#cdd6f4",
--
-- -- TODO
-- -- UI
-- cursor = "#f5a97f",
-- visual = "#2e3c55",
-- search = "#f5c2e7",
-- statusline = "#1e293b",
-- menu_bg = "#1a2535",
-- menu_sel = "#3b4252",
-- fold = "#3e4a5a",
-- split = "#334155",
--
-- -- TODO
-- -- Diagnostics
-- diag_error = "#f38ba8",
-- diag_warn = "#fab387",
-- diag_info = "#89dceb",
-- diag_hint = "#b4befe",
-- }
--
-- -- https://github.com/Ronxvier/ymir.nvim/blob/main/lua/ymir/groups.lua
-- local groups = {
-- Normal = { fg = colors.fg, bg = colors.bg },
-- NormalFloat = { fg = colors.fg, bg = colors.bg },
-- Comment = { fg = colors.comment, italic = true },
-- Constant = { fg = colors.constant },
-- String = { fg = colors.string },
-- Character = { fg = colors.string },
-- Number = { fg = colors.number },
-- Boolean = { fg = colors.boolean },
-- Float = { fg = colors.number },
-- FloatBorder = { fg = colors.number },
-- Operator = { fg = colors.operator },
-- Keyword = { fg = colors.keyword },
-- Keywords = { fg = colors.keyword },
-- Identifier = { fg = colors.variable },
-- Function = { fg = colors.Function },
-- Statement = { fg = colors.keyword },
-- Conditional = { fg = colors.keyword },
-- Repeat = { fg = colors.keyword },
-- Label = { fg = colors.keyword },
-- Exception = { fg = colors.keyword },
-- PreProc = { fg = colors.keyword },
-- Include = { fg = colors.keyword },
-- Define = { fg = colors.keyword },
-- Title = { fg = colors.magenta },
-- Macro = { fg = colors.keyword },
-- PreCondit = { fg = colors.yellow },
-- Type = { fg = colors.type, italic = true },
-- StorageClass = { fg = colors.type, italic = true },
-- Structure = { fg = colors.type, italic = true },
-- TypeDef = { fg = colors.type, italic = true },
-- Special = { fg = colors.keyword, italic = true },
-- SpecialComment = { fg = colors.comment, italic = true },
-- Error = { fg = colors.red },
-- Todo = { fg = colors.yellow, bold = true, italic = true },
-- Underlined = { fg = colors.cyan, underline = true },
--
-- Cursor = { fg = colors.cursor },
-- CursorLineNr = { fg = colors.fg, bold = true },
--
-- SignColumn = { bg = colors.bg },
--
-- Conceal = { fg = colors.comment },
-- -- CursorColumn = { bg = colors.selection},
-- CursorLine = { bg = colors.selection },
-- ColorColumn = { bg = colors.selection },
--
-- StatusLine = { fg = colors.statusline, bg = colors.black },
-- StatusLineNC = { fg = colors.comment },
-- StatusLineTerm = { fg = colors.fg, bg = colors.black },
-- StatusLineTermNC = { fg = colors.comment },
--
-- Directory = { fg = colors.cyan },
-- DiffAdd = { fg = colors.bg, bg = colors.green },
-- DiffChange = { fg = colors.orange },
-- DiffDelete = { fg = colors.red },
-- DiffText = { fg = colors.comment },
--
-- ErrorMsg = { fg = colors.red },
-- VertSplit = { fg = colors.fg },
-- WinSeparator = { fg = colors.fg },
-- Folded = { fg = colors.comment },
-- FoldColumn = {},
-- Search = { fg = colors.fg, bg = colors.selection },
-- IncSearch = { fg = colors.fg, bg = colors.selection },
-- LineNr = { fg = colors.comment },
-- MatchParen = { fg = colors.cyan, underline = true },
-- NonText = { fg = colors.comment },
-- Pmenu = { fg = colors.fg, bg = colors.bg },
-- PmenuSel = { fg = colors.bg, bg = colors.fg },
-- PmenuSbar = { bg = colors.bg },
-- PmenuThumb = { bg = colors.bg },
--
-- Question = { fg = colors.magenta },
-- QuickFixLine = { fg = colors.bg, bg = colors.yellow },
-- SpecialKey = { fg = colors.comment },
--
-- SpellBad = { fg = colors.red, underline = true },
-- SpellCap = { fg = colors.yellow },
-- SpellLocal = { fg = colors.yellow },
-- SpellRare = { fg = colors.yellow },
--
-- TabLine = { fg = colors.comment },
-- TabLineSel = { fg = colors.fg },
-- TabLineFill = { bg = colors.bg },
-- Terminal = { fg = colors.fg, bg = colors.black },
-- Visual = { bg = colors.visual },
-- VisualNOS = { fg = colors.visual },
-- WarningMsg = { fg = colors.yellow },
-- WildMenu = { fg = colors.black, bg = colors.white },
--
-- -- TreeSitter
-- ["@comment"] = { fg = colors.comment, italic = true },
-- ["@error"] = { fg = colors.red },
-- ["@punctuation.delimiter"] = { fg = colors.fg },
-- ["@punctuation.bracket"] = { fg = colors.fg },
-- ["@punctuation.special"] = { fg = colors.cyan },
--
-- ["@constant"] = { fg = colors.constant },
-- ["@constant.builtin"] = { fg = colors.constant },
-- ["@symbol"] = { fg = colors.operator },
--
-- ["@constant.macro"] = { fg = colors.keyword },
-- ["@string.regex"] = { fg = colors.string },
-- ["@string"] = { fg = colors.string },
-- ["@string.escape"] = { fg = colors.green },
-- ["@character"] = { fg = colors.string },
-- ["@number"] = { fg = colors.number },
-- ["@boolean"] = { fg = colors.boolean },
-- ["@float"] = { fg = colors.number },
-- ["@annotation"] = { fg = colors.yellow },
-- ["@attribute"] = { fg = colors.cyan },
-- ["@namespace"] = { fg = colors.cyan },
--
-- ["@function.builtin"] = { fg = colors.Function },
-- ["@function"] = { fg = colors.Function },
-- ["@function.macro"] = { fg = colors.Function },
-- ["@parameter"] = { fg = colors.number },
-- ["@parameter.reference"] = { fg = colors.number },
-- ["@method"] = { fg = colors.number },
-- ["@field"] = { fg = colors.number },
-- ["@property"] = { fg = colors.type },
-- ["@constructor"] = { fg = colors.cyan },
--
-- ["@conditional"] = { fg = colors.pink },
-- ["@repeat"] = { fg = colors.pink },
-- ["@label"] = { fg = colors.cyan },
--
-- ["@keyword"] = { fg = colors.keyword },
-- ["@keyword.function"] = { fg = colors.Function },
-- ["@keyword.function.ruby"] = { fg = colors.Function },
-- --["@keyword.operator"] = { fg = colors.pink },
-- --["@operator"] = { fg = colors.pink },
-- ["@exception"] = { fg = colors.magenta },
-- ["@type"] = { fg = colors.bright_cyan },
-- ["@type.builtin"] = { fg = colors.cyan, italic = true },
-- ["@type.qualifier"] = { fg = colors.pink },
-- ["@structure"] = { fg = colors.magenta },
-- ["@include"] = { fg = colors.pink },
--
-- ["@variable"] = { fg = colors.variable },
-- ["@variable.builtin"] = { fg = colors.variable },
--
-- ["@text"] = { fg = colors.number },
-- ["@text.strong"] = { fg = colors.number, bold = true }, -- bold
-- ["@text.emphasis"] = { fg = colors.yellow, italic = true }, -- italic
-- ["@text.underline"] = { fg = colors.number },
-- ["@text.title"] = { fg = colors.pink, bold = true }, -- title
-- ["@text.literal"] = { fg = colors.number }, -- inline code
-- ["@text.uri"] = { fg = colors.yellow, italic = true, underline = true }, -- urls
-- ["@text.reference"] = { fg = colors.number, bold = true },
--
-- ["@tag"] = { fg = colors.cyan },
-- ["@tag.attribute"] = { fg = colors.number },
-- ["@tag.delimiter"] = { fg = colors.pink },
--
-- -- Semantic
-- ["@class"] = { fg = colors.cyan },
-- ["@struct"] = { fg = colors.cyan },
-- ["@enum"] = { fg = colors.cyan },
-- ["@enumMember"] = { fg = colors.magenta },
-- ["@event"] = { fg = colors.cyan },
-- ["@interface"] = { fg = colors.cyan },
-- ["@modifier"] = { fg = colors.cyan },
-- ["@regexp"] = { fg = colors.yellow },
-- ["@typeParameter"] = { fg = colors.cyan },
-- ["@decorator"] = { fg = colors.cyan },
--
-- -- LSP Semantic (0.9+)
-- ["@lsp.type.class"] = { fg = colors.type },
-- ["@lsp.type.enum"] = { fg = colors.type },
-- ["@lsp.type.decorator"] = { fg = colors.number },
-- ["@lsp.type.enumMember"] = { fg = colors.type },
-- ["@lsp.type.function"] = { fg = colors.Function },
-- ["@lsp.type.interface"] = { fg = colors.keyword },
-- ["@lsp.type.macro"] = { fg = colors.keyword },
-- ["@lsp.type.method"] = { fg = colors.keyword },
-- ["@lsp.type.namespace"] = { fg = colors.keyword },
-- ["@lsp.type.parameter"] = { fg = colors.keyword },
-- ["@lsp.type.property"] = { fg = colors.keyword },
-- ["@lsp.type.struct"] = { fg = colors.type },
-- ["@lsp.type.type"] = { fg = colors.type },
-- ["@lsp.type.variable"] = { fg = colors.variable },
--
-- -- HTML
-- htmlArg = { fg = colors.orange },
-- htmlBold = { fg = colors.yellow, bold = true },
-- htmlEndTag = { fg = colors.cyan },
-- htmlH1 = { fg = colors.pink },
-- htmlH2 = { fg = colors.pink },
-- htmlH3 = { fg = colors.pink },
-- htmlH4 = { fg = colors.pink },
-- htmlH5 = { fg = colors.pink },
-- htmlH6 = { fg = colors.pink },
-- htmlItalic = { fg = colors.magenta, italic = true },
-- htmlLink = { fg = colors.magenta, underline = true },
-- htmlSpecialChar = { fg = colors.yellow },
-- htmlSpecialTagName = { fg = colors.cyan },
-- htmlTag = { fg = colors.cyan },
-- htmlTagN = { fg = colors.cyan },
-- htmlTagName = { fg = colors.cyan },
-- htmlTitle = { fg = colors.white },
-- }
--
-- for group, setting in pairs(groups) do
-- vim.api.nvim_set_hl(0, group, setting)
-- end
-- nixvim stuff
do
local __nixvim_autogroups = { nixvim_binds_LspAttach = { clear = true }, nixvim_lsp_on_attach = { clear = false } }
for group_name, options in pairs(__nixvim_autogroups) do
vim.api.nvim_create_augroup(group_name, options)
end
end
do
local __nixvim_autocommands = {
{
callback = function(event)
do
-- client and bufnr are supplied to the builtin `on_attach` callback,
-- so make them available in scope for our global `onAttach` impl
local client = vim.lsp.get_client_by_id(event.data.client_id)
local bufnr = event.buf
require("lsp-format").on_attach(client, bufnr)
end
end,
desc = "Run LSP onAttach",
event = "LspAttach",
group = "nixvim_lsp_on_attach",
},
{
callback = function(args)
do
local __nixvim_binds = {}
for i, map in ipairs(__nixvim_binds) do
local options = vim.tbl_extend("keep", map.options or {}, { buffer = args.buf })
vim.keymap.set(map.mode, map.key, map.action, options)
end
end
end,
desc = "Load keymaps for LspAttach",
event = "LspAttach",
group = "nixvim_binds_LspAttach",
},
{ command = ":set guicursor=a:ver90-blinkon0", event = { "VimLeave" } },
}
for _, autocmd in ipairs(__nixvim_autocommands) do
vim.api.nvim_create_autocmd(autocmd.event, {
group = autocmd.group,
pattern = autocmd.pattern,
buffer = autocmd.buffer,
desc = autocmd.desc,
callback = autocmd.callback,
command = autocmd.command,
once = autocmd.once,
nested = autocmd.nested,
})
end
end
-- }}
-- https://github.com/nvim-lualine/lualine.nvim/blob/master/examples/bubbles.lua
-- local bubbles_theme = {
-- normal = {
-- a = { fg = colors.bg, bg = colors.magenta },
-- b = { fg = colors.bg, bg = colors.magenta },
-- c = { fg = colors.bg, bg = colors.bg },
-- },
--
-- insert = { a = { fg = colors.bg, bg = colors.green } },
-- visual = { a = { fg = colors.bg, bg = colors.cyan } },
-- replace = { a = { fg = colors.bg, bg = colors.red } },
--
-- inactive = {
-- a = { fg = colors.fg, bg = colors.bg },
-- b = { fg = colors.fg, bg = colors.bg },
-- c = { fg = colors.fg },
-- },
-- }
require('lualine').setup {
options = {
-- theme = bubbles_theme,
component_separators = '',
section_separators = { left = '', right = '' },
},
sections = {
lualine_a = { { 'mode', separator = { left = '' }, right_padding = 2 } },
lualine_b = { 'filename', 'branch' },
lualine_c = {},
lualine_x = {},
lualine_y = { 'filetype', 'progress' },
lualine_z = {
{ 'location', separator = { right = '' }, left_padding = 2 },
},
},
inactive_sections = {
lualine_a = { 'filename' },
lualine_b = {},
lualine_c = {},
lualine_x = {},
lualine_y = {},
lualine_z = { 'location' },
},
tabline = {},
extensions = {},
}
+13 -14
View File
@@ -1,19 +1,18 @@
{ config, pkgs, inputs, ... }: { ... }:
{ {
programs.neovim = imports = [
let ./cmp
# colors = config.stylix.base16Scheme.palette; ./plugins
colors = with config.lib.stylix.colors; {
inherit base00 base01 base02 base03 base04 base05 base06 base07 base08 base09 base0A base0B base0C base0D base0E base0F; ./keymaps.nix
}; ./options.nix
in { ];
programs.nixvim = {
enable = true; enable = true;
package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default;
initLua = builtins.readFile (
pkgs.replaceVars ./config.lua ({
shell = "tcsh";
} // colors)
);
defaultEditor = true; defaultEditor = true;
viAlias = true;
vimAlias = true;
colorschemes.catppuccin.enable = true;
}; };
} }
+94
View File
@@ -0,0 +1,94 @@
{ ... }:
{
programs.nixvim = {
globals.mapleader = " ";
keymaps = [
{
mode = "n";
key = "<leader>n";
action = "<cmd>NvimTreeFindFileToggle<cr>";
}
{
mode = [
"n"
"i"
"v"
"t"
];
key = "<c-\\>";
action = "<cmd>ToggleTerm<cr>";
}
{
mode = [
"n"
"i"
"v"
];
key = "<c-l>";
action = "<cmd>BufferLineCycleNext<cr>";
}
{
mode = [
"n"
"i"
"v"
];
key = "<c-h>";
action = "<cmd>BufferLineCyclePrev<cr>";
}
{
mode = [
"n"
"i"
"v"
];
key = "<c-j>";
action = "<cmd>BufferLineGoToBuffer 1<cr>";
}
{
mode = [
"n"
"i"
"v"
];
key = "<c-k>";
action = "<cmd>BufferLineGoToBuffer -1<cr>";
}
{
mode = "n";
key = "<leader><leader>";
action = "<cmd>Yazi<cr>";
}
{
mode = "n";
key = "<leader>a";
action = "<cmd>AerialToggle<cr>";
}
{
mode = "n";
key = "{";
action = "<cmd>AerialPrev<cr>";
}
{
mode = "n";
key = "}";
action = "<cmd>AerialNext<cr>";
}
{
mode = "n";
key = "<leader>c";
action = ":hori term ";
}
];
};
}
+58
View File
@@ -0,0 +1,58 @@
{ ... }:
{
programs.nixvim = {
autoCmd = [
{
event = [ "VimLeave" ];
command = ":set guicursor=a:ver90-blinkon0";
}
];
diagnostic.settings = {
virtual_lines = {
current_line = true;
};
float = {
border = "rounded";
source = "always";
};
};
opts = {
shell = "nu";
fillchars = "eob: ";
number = true;
relativenumber = true;
tabstop = 4;
softtabstop = 4;
showtabline = 4;
shiftwidth = 4;
expandtab = true;
smartindent = true;
breakindent = true;
hlsearch = true;
incsearch = true;
ignorecase = true;
smartcase = true;
splitbelow = true;
splitright = true;
mouse = "a";
updatetime = 50;
swapfile = false;
backup = false;
undofile = true;
scrolloff = 10;
cursorline = true;
wildmenu = true;
};
};
}
@@ -0,0 +1,11 @@
{ ... }:
{
programs.nixvim.plugins.codesnap = {
enable = true;
settings = {
has_line_number = true;
bg_theme = "grape";
watermark = "";
};
};
}
@@ -0,0 +1,33 @@
{ ... }:
{
imports = [
./codesnap.nix
./emmet.nix
./rustaceanvim.nix
./telescope.nix
./toggleterm.nix
./treesitter.nix
];
programs.nixvim.plugins = {
aerial.enable = true;
bufferline.enable = true;
colorizer.enable = true;
comment.enable = true;
crates.enable = true;
fidget.enable = true;
lazygit.enable = true;
lsp-lines.enable = true;
lualine.enable = true;
nvim-tree.enable = true;
nvim-autopairs.enable = true;
quickmath.enable = true;
rainbow.enable = true;
render-markdown.enable = true;
treesj.enable = true;
ts-autotag.enable = true;
visual-multi.enable = true;
web-devicons.enable = true;
yazi.enable = true;
};
}
@@ -0,0 +1,8 @@
{ ... }:
{
programs.nixvim.plugins.emmet = {
enable = true;
settings.leader = "<C-Y>";
settings.mode = "a";
};
}
@@ -0,0 +1,26 @@
{ ... }:
{
programs.nixvim.plugins.rustaceanvim = {
enable = true;
settings = {
tools.enable_clippy = true;
server = {
default_settings = {
inlayHints = {
lifetimeElisionHints = {
enable = "always";
};
};
rust-analyzer = {
cargo = {
allFeatures = true;
};
check = {
command = "clippy";
};
};
};
};
};
};
}
@@ -0,0 +1,33 @@
{ ... }:
{
programs.nixvim.plugins.telescope = {
enable = true;
extensions = {
# file-browser.enable = true;
fzf-native.enable = true;
# media-files.enable = true;
};
settings = {
pickers.colorscheme.enable_preview = true;
defaults = {
layout_config = {
horizontal = {
prompt_position = "bottom";
};
};
sorting_strategy = "descending";
};
};
keymaps = {
# "<leader><space>" = {
# action = "find_files";
# options.desc = "Find Project Files";
# };
"<leader>f" = {
action = "live_grep";
options.desc = "Find Text";
};
};
};
}
@@ -0,0 +1,13 @@
{ ... }:
{
programs.nixvim.plugins.toggleterm = {
enable = true;
settings = {
direction = "horizontal";
float_opts = {
border = "curved";
};
shell = "nu";
};
};
}
@@ -0,0 +1,10 @@
{ ... }:
{
programs.nixvim.plugins.treesitter = {
enable = true;
settings = {
auto_install = true;
highlight.enable = true;
};
};
}
+10 -32
View File
@@ -1,47 +1,25 @@
{ config, pkgs, lib, ... }: { config, ... }:
{ {
home.packages = [ pkgs.libnotify ];
xdg.configFile."rofi/config.rasi".text = '' xdg.configFile."rofi/config.rasi".text = ''
configuration{ configuration{
modi: "run"; modi: "run,drun,window";
lines: 5; lines: 5;
cycle: false; cycle: false;
font: "CaskaydiaCove Nerd Font 14"; font: "${config.stylix.fonts.serif.name} 14";
show-icons: false; show-icons: true;
icon-theme: "Papirus-dark";
terminal: "foot"; terminal: "foot";
run-display-format: "{name}"; drun-display-format: "{icon} {name}";
location: 0; location: 0;
disable-history: true; disable-history: true;
hide-scrollbar: true; hide-scrollbar: true;
display-drun: " Apps ";
display-run: " Run "; display-run: " Run ";
display-window: " Window ";
/* display-Network: " Network"; */
sidebar-mode: true; sidebar-mode: true;
sorting-method: "fzf"; sorting-method: "fzf";
} }
@theme "theme"
'';
# xdg.configFile."rofi/config.rasi".text = '' @theme "theme"'';
# configuration{
# modi: "run,drun,window";
# lines: 5;
# cycle: false;
# font: "${config.stylix.fonts.serif.name} 14";
# show-icons: true;
# icon-theme: "Papirus-dark";
# terminal: "foot";
# drun-display-format: "{icon} {name}";
# location: 0;
# disable-history: true;
# hide-scrollbar: true;
# display-drun: " Apps ";
# display-run: " Run ";
# display-window: " Window ";
# /* display-Network: " Network"; */
# sidebar-mode: true;
# sorting-method: "fzf";
# }
#
# @theme "theme"'';
} }
-1
View File
@@ -8,6 +8,5 @@
home.packages = [ home.packages = [
pkgs.rofi-power-menu pkgs.rofi-power-menu
pkgs.rofi pkgs.rofi
pkgs.rofimoji
]; ];
} }
@@ -1,9 +0,0 @@
#!/usr/bin/env bash
if [[ -n $1 ]]; then
sudo /nix/var/nix/profiles/system/specialisation/$1/bin/switch-to-configuration test > /dev/null
notify-send "Switched to theme $1"
exit 0
fi
ls /nix/var/nix/profiles/system/specialisation/
+1 -1
View File
@@ -1,6 +1,6 @@
{ config, ... }: { config, ... }:
{ {
xdg.configFile."rofi/theme.rasi".text = with config.lib.stylix.colors; '' xdg.configFile."rofi/theme.rasi".text = with config.stylix.base16Scheme.palette; ''
* { * {
bg-col: #${base00}; bg-col: #${base00};
bg-col-light: #${base01}; bg-col-light: #${base01};
+5
View File
@@ -0,0 +1,5 @@
{...}: {
programs.starship = {
enable = true;
};
}
-18
View File
@@ -1,18 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.tcsh ];
home.file.".cshrc".text = ''
set noclobber
set color
set autolist
set history = 10000
set savehist = (10000 merge)
set e="`echo x | tr x '\033'`"
set prompt = "%{\e[35m%}[%h] %~ :3%{\e[0m%} "
alias ls 'ls --color=auto'
alias l 'ls -alh --color=auto'
'';
}
+1 -1
View File
@@ -1,7 +1,7 @@
{ config, ... }: { config, ... }:
{ {
home.file.".config/vesktop/themes/base16.css".text = home.file.".config/vesktop/themes/base16.css".text =
with config.lib.stylix.colors; with config.stylix.base16Scheme.palette;
with config.stylix.fonts; with config.stylix.fonts;
'' ''
@import url('https://refact0r.github.io/midnight-discord/build/midnight.css'); @import url('https://refact0r.github.io/midnight-discord/build/midnight.css');
+139
View File
@@ -0,0 +1,139 @@
{ config, ... }:
{
home.file.".config/waybar/config".text = ''
{
"position": "top",
"spacing": 4,
"modules-left": ["custom/icon", "ext/workspaces", "tray"],
"modules-center": ["clock"],
"modules-right": ["pulseaudio", "cpu", "memory", "temperature", "battery"],
"custom/icon": {
"format": " ",
"tooltip": false
},
"tray": {
"spacing": 10
},
"clock": {
"format": "{:%Y/%m/%d - %A - %R}"
},
"cpu": {
"format": " {usage}%",
"tooltip": false
},
"memory": {
"format": " {}%"
},
"temperature": {
"thermal-zone": 2,
"critical-threshold": 80,
"format-critical": "{icon} {temperatureC}°C",
"format": "{icon} {temperatureC}°C",
"format-icons": ["", "", ""]
},
"battery": {
"states": {
"good": 95,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-alt": "{icon} {time}",
"format-icons": ["", "", "", "", ""]
},
"pulseaudio": {
"scroll-step": 5, // %, can be a float
"format": "{icon} {volume}% {format_source}",
"format-bluetooth": " {icon} {volume}% {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": " {volume}%",
"format-source-muted": "",
"format-icons": {
"default": ["", "", ""]
},
"on-click-right": "pavucontrol",
},
}
'';
programs.waybar = {
enable = true;
style = ''
* {
font-family: "${config.stylix.fonts.serif.name}";
font-size: 16px;
min-height: 10px;
}
#custom-icon,
#workspaces,
#tray,
#clock,
#pulseaudio,
#cpu,
#memory,
#temperature,
#battery {
border-width: 2px;
border-style: solid;
border-color: #${config.stylix.base16Scheme.palette.base0D};
border-radius: 10px;
margin-top: 6px;
margin-left: 8px;
padding-left: 10px;
margin-bottom: 0px;
padding-right: 10px;
border-radius: 10px;
transition: none;
color: #${config.stylix.base16Scheme.palette.base05};
background: #${config.stylix.base16Scheme.palette.base00};
}
#custom-icon {
margin-left: 10px;
}
#memory {
margin-right: 10px;
}
window#waybar {
background: transparent;
}
window#waybar.hidden {
opacity: 0.2;
}
#window {
margin-top: 6px;
padding-left: 10px;
padding-right: 10px;
border-radius: 10px;
transition: none;
color: transparent;
background: transparent;
}
#battery.critical:not(.charging) {
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
@keyframes blink {
to {
background-color: #${config.stylix.base16Scheme.palette.base08};
}
}
#workspaces button.active {
color: #${config.stylix.base16Scheme.palette.base0D};
}
'';
};
}
-13
View File
@@ -1,13 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.yash ];
xdg.configFile."yash/rc".text =
"
. --autoload --no-alias initialization/common
YASH_PS1='\\fm\${PWD} λ \\fD'
YASH_PS1R=''
bindkey --emacs '\\^L' clear-and-redraw-all
bindkey --vi-insert '\\^L' clear-and-redraw-all
bindkey --vi-command '\\^L' clear-and-redraw-all
";
}
-1
View File
@@ -2,6 +2,5 @@
programs.yazi = { programs.yazi = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
shellWrapperName = "y";
}; };
} }
+1 -1
View File
@@ -2,7 +2,7 @@
{ {
programs.zathura = { programs.zathura = {
enable = true; enable = true;
options = with config.lib.stylix.colors; { options = with config.stylix.base16Scheme.palette; {
font = "${config.stylix.fonts.serif.name} 14"; font = "${config.stylix.fonts.serif.name} 14";
default-fg = "#${base05}"; default-fg = "#${base05}";
+3 -14
View File
@@ -15,7 +15,7 @@ let
}; };
replaceWithStylixColours = replaceWithStylixColours =
textFile: textFile:
with config.lib.stylix.colors; with config.stylix.base16Scheme.palette;
builtins.replaceStrings builtins.replaceStrings
[ [
"1e1e2e" "1e1e2e"
@@ -65,12 +65,10 @@ let
installation_mode = "force_installed"; installation_mode = "force_installed";
}; };
}; };
profileName = "6dypj11h.Default Profile";
in in
{ {
home.file.".zen/${profileName}/chrome/userChrome.css".text = userChromeText; home.file.".zen/default/chrome/userChrome.css".text = userChromeText;
home.file.".zen/${profileName}/chrome/userContent.css".text = userContentText; home.file.".zen/default/chrome/userContent.css".text = userContentText;
programs.zen-browser = { programs.zen-browser = {
enable = true; enable = true;
policies = { policies = {
@@ -114,15 +112,6 @@ in
# uBlock Origin: # uBlock Origin:
"uBlock0@raymondhill.net" "uBlock0@raymondhill.net"
# Shinigami Eyes
"shinigamieyes@shinigamieyes"
# Hide shorts for Youtube
"{88ebde3a-4581-4c6b-8019-2a05a9e3e938}"
# Vimium
"{d7742d87-e61d-4b78-b8a1-b469842139fa}"
] ]
); );
}; };
-165
View File
@@ -1,165 +0,0 @@
{ config, pkgs, ... }:
let
betterfox = pkgs.fetchFromGitHub {
owner = "yokoffing";
repo = "Betterfox";
rev = "116.1";
hash = "sha256-Ai8Szbrk/4FhGhS4r5gA2DqjALFRfQKo2a/TwWCIA6g=";
};
catppuccinUserChrome = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "zen-browser";
rev = "0893393f721facb884365a318111c4a7fce96b45";
hash = "sha256-+Nf7TUairZBnhYCFVBqiQW9QodV/xWSOnH6X9o6S7rM=";
};
replaceWithStylixColours =
textFile:
with config.lib.stylix.colors;
builtins.replaceStrings
[
"1e1e2e"
"181825"
"313244"
"45475a"
"585b70"
"cdd6f4"
"f5e0dc"
"b4befe"
"f38ba8"
"fab387"
"f9e2af"
"a6e3a1"
"94e2d5"
"89b4fa"
"cba6f7"
"f2cdcd"
"rgb(204, 190, 246)"
]
[
base00
base01
base02
base03
base04
base05
base06
base07
base08
base09
base0A
base0B
base0C
base0D
base0E
base0F
"#${base0E}"
]
(builtins.readFile textFile);
#userChromeText = replaceWithStylixColours "${catppuccinUserChrome}/themes/Mocha/Mauve/userChrome.css";
userChromeText = builtins.readFile (
with config.lib.stylix.colors;
pkgs.replaceVars ./userChrome.css {
inherit
base00
base01
base02
# base03
# base04
base05
base06
# base07
base08
base09
base0A
base0B
base0C
base0D
base0E
# base0F
;
}
);
userContentText = replaceWithStylixColours "${catppuccinUserChrome}/themes/Mocha/Mauve/userContent.css";
installExtension = name: {
inherit name;
value = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/${name}/latest.xpi";
installation_mode = "force_installed";
};
};
profileName = "tvqbzcy7.Default Profile";
in
{
home.file.".zen/${profileName}/chrome/userChrome.css".text = userChromeText;
home.file.".zen/${profileName}/chrome/userContent.css".text = userContentText;
programs.zen-browser = {
enable = true;
policies = {
DisableTelemtry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "never";
DisplayMenuBar = "default-off";
SearchBar = "unified";
ExtensionSettings = builtins.listToAttrs (
builtins.map (name: installExtension name) [
# BitWarden
"{446900e4-71c2-419f-a6a7-df9c091e268b}"
# Catppuccin Mocha Mauve
"{76aabc99-c1a8-4c1e-832b-d4f2941d5a7a}"
# Dark Reader
"addon@darkreader.org"
# Language Tool
"languagetool-webextension@languagetool.org"
# Return dislikes to YouTube
"{762f9885-5a13-4abd-9c77-433dcd38b8fd}"
# SponsorBlocker
"sponsorBlocker@ajay.app"
# uBlock Origin:
"uBlock0@raymondhill.net"
# Shinigami Eyes
"shinigamieyes@shinigamieyes"
# Hide shorts for Youtube
"{88ebde3a-4581-4c6b-8019-2a05a9e3e938}"
# Vimium
"{d7742d87-e61d-4b78-b8a1-b469842139fa}"
]
);
};
profiles.default = {
id = 0;
isDefault = true;
extraConfig = builtins.concatStringsSep "\n" [
(builtins.readFile "${betterfox}/Securefox.js")
(builtins.readFile "${betterfox}/Fastfox.js")
(builtins.readFile "${betterfox}/Peskyfox.js")
];
};
};
}
-128
View File
@@ -1,128 +0,0 @@
/* https://github.com/catppuccin/zen-browser/blob/main/themes/Mocha/Pink/userChrome.css */
:root {
--zen-colors-primary: #@base02@ !important;
--zen-primary-color: #@base0D@ !important;
--zen-colors-secondary: #@base02@ !important;
--zen-colors-tertiary: #@base01@ !important;
--zen-colors-border: #base0D# !important;
--toolbarbutton-icon-fill: #@base0D@ !important;
--lwt-text-color: #@base05@ !important;
--toolbar-field-color: #@base05@ !important;
--tab-selected-textcolor: #@base06@ !important;
--toolbar-field-focus-color: #@base05@ !important;
--toolbar-color: #@base05@ !important;
--newtab-text-primary-color: #@base05@ !important;
--arrowpanel-color: #@base05@ !important;
--arrowpanel-background: #@base01@ !important;
--sidebar-text-color: #@base05@ !important;
--lwt-sidebar-text-color: #@base05@ !important;
--lwt-sidebar-background-color: #@base00@ !important;
--toolbar-bgcolor: #@base02@ !important;
--newtab-background-color: #@base01@ !important;
--zen-themed-toolbar-bg: #@base01@ !important;
--zen-main-browser-background: #@base01@ !important;
--toolbox-bgcolor-inactive: #@base01@ !important;
}
#permissions-granted-icon {
color: #@base01@ !important;
}
.sidebar-placesTree {
background-color: #@base01@ !important;
}
#zen-workspaces-button {
background-color: #@base01@ !important;
}
#TabsToolbar {
background-color: #@base01@ !important;
}
.urlbar-background {
background-color: #@base01@ !important;
}
.content-shortcuts {
background-color: #@base01@ !important;
border-color: #@base0D@ !important;
}
.urlbarView-url {
color: #@base0D@ !important;
}
#zenEditBookmarkPanelFaviconContainer {
background: #@base00@ !important;
}
#zen-media-controls-toolbar {
& #zen-media-progress-bar {
&::-moz-range-track {
background: #@base02@ !important;
}
}
}
toolbar .toolbarbutton-1 {
&:not([disabled]) {
&:is([open], [checked])
> :is(
.toolbarbutton-icon,
.toolbarbutton-text,
.toolbarbutton-badge-stack
) {
fill: #@base00@;
}
}
}
.identity-color-blue {
--identity-tab-color: #@base0D@ !important;
--identity-icon-color: #@base0D@ !important;
}
.identity-color-turquoise {
--identity-tab-color: #@base0C@ !important;
--identity-icon-color: #@base0C@ !important;
}
.identity-color-green {
--identity-tab-color: #@base0B@ !important;
--identity-icon-color: #@base0B@ !important;
}
.identity-color-yellow {
--identity-tab-color: #@base0A@ !important;
--identity-icon-color: #@base0A@ !important;
}
.identity-color-orange {
--identity-tab-color: #@base09@ !important;
--identity-icon-color: #@base09@ !important;
}
.identity-color-red {
--identity-tab-color: #@base08@ !important;
--identity-icon-color: #@base08@ !important;
}
.identity-color-pink {
--identity-tab-color: #@base0D@ !important;
--identity-icon-color: #@base0D@ !important;
}
.identity-color-purple {
--identity-tab-color: #@base0E@ !important;
--identity-icon-color: #@base0E@ !important;
}
hbox#titlebar {
background-color: #@base01@ !important;
}
#zen-appcontent-navbar-container {
background-color: #@base01@ !important;
}
+2 -2
View File
@@ -1,7 +1,7 @@
{...}: {...}:
{ {
programs.zoxide = { programs.zoxide = {
enable = false; enable = true;
enableFishIntegration = true; enableNushellIntegration = true;
}; };
} }
-34
View File
@@ -1,34 +0,0 @@
{
config,
hostName,
lib,
pkgs,
wallpaper,
...
}:
let
wawa = pkgs.callPackage ./wawa.nix { };
in
{
home.packages = [ pkgs.river-bsp-layout ];
xdg.configFile."river/init" = {
source = pkgs.replaceVars ./init.sh {
inherit wallpaper;
inherit hostName;
inherit wawa;
inherit (config.lib.stylix.colors) base0D base02;
cursorName = config.home.pointerCursor.name;
cursorSize = config.home.pointerCursor.size;
};
executable = true;
};
home.activation.reinitRiver =
with config.lib.stylix.colors;
lib.hm.dag.entryAnywhere ''
${pkgs.river-classic}/bin/riverctl border-color-focused 0x${base0D}
${pkgs.river-classic}/bin/riverctl border-color-unfocused 0x${base02}
${wawa}/bin/wawa fill ${wallpaper} &
'';
}
-102
View File
@@ -1,102 +0,0 @@
#!/bin/sh
# https://codeberg.org/river/river-classic/src/branch/main/example/init
@wawa@/bin/wawa fill @wallpaper@ &
riverctl map normal Super Q spawn foot
riverctl map normal Super B spawn zen-beta
riverctl map normal Super D spawn "rofi -show run"
riverctl map normal Super+Shift P spawn "rofi -show pm -modi pm:rofi-power-menu"
riverctl map normal Super+Shift S spawn "gscreenshot -c -s"
riverctl map normal Super C close
riverctl map normal Super+Shift M exit
riverctl map normal Super Up focus-view up
riverctl map normal Super Right focus-view right
riverctl map normal Super Left focus-view left
riverctl map normal Super Down focus-view down
riverctl map normal Super k focus-view up
riverctl map normal Super l focus-view right
riverctl map normal Super h focus-view left
riverctl map normal Super j focus-view down
riverctl map normal Super+Control Up focus-output up
riverctl map normal Super+Control Right focus-output right
riverctl map normal Super+Control Left focus-output left
riverctl map normal Super+Control Down focus-output down
riverctl map normal Super+Control k focus-output up
riverctl map normal Super+Control l focus-output right
riverctl map normal Super+Control h focus-output left
riverctl map normal Super+Control j focus-output down
riverctl map normal Super+Shift Up swap up
riverctl map normal Super+Shift Right swap right
riverctl map normal Super+Shift Left swap left
riverctl map normal Super+Shift Down swap down
riverctl map normal Super+Shift k swap up
riverctl map normal Super+Shift l swap right
riverctl map normal Super+Shift h swap left
riverctl map normal Super+Shift j swap down
riverctl map normal Super+Shift+Control Up send-to-output up
riverctl map normal Super+Shift+Control Right send-to-output right
riverctl map normal Super+Shift+Control Left send-to-output left
riverctl map normal Super+Shift+Control Down send-to-output down
riverctl map normal Super+Shift+Control k send-to-output up
riverctl map normal Super+Shift+Control l send-to-output right
riverctl map normal Super+Shift+Control h send-to-output left
riverctl map normal Super+Shift+Control j send-to-output down
riverctl map-pointer normal Super BTN_RIGHT resize-view
for i in $(seq 1 9)
do
tags=$((1 << ($i - 1)))
riverctl map normal Super $i set-focused-tags $tags
riverctl map normal Super+Shift $i set-view-tags $tags
done
# focus all tags at once
riverctl map normal Super A set-focused-tags 511
riverctl map normal Super F toggle-fullscreen
riverctl focus-follows-cursor normal
riverctl set-cursor-warp on-focus-change
riverctl border-color-focused 0x@base0D@
riverctl border-color-unfocused 0x@base02@
riverctl border-width 2
riverctl xcursor-theme @cursorName@ @cursorSize@
riverctl set-repeat 30 300
riverctl default-layout bsp-layout
river-bsp-layout --inner-gap 0 --outer-gap 0 --split-perc 0.5 &
riverctl rule-add ssd
riverctl rule-add -app-id "vesktop" output HDMI-A-2
wlr-randr --output DP-2 --mode 2560x1440@180Hz
export XDG_CURRENT_DESKTOP=river
systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river
systemctl --user restart xdg-desktop-portal
if [ "@hostName@" = "february" ]; then
riverctl keyboard-layout -variant colemak us
else
vesktop &
fi
eww daemon
eww open bar
-28
View File
@@ -1,28 +0,0 @@
{ pkgs, ... }:
pkgs.stdenv.mkDerivation {
name = "wawa";
version = "1.0";
src = pkgs.fetchFromCodeberg {
owner = "sewn";
repo = "wawa";
rev = "988c5d10a1535b0243a0191f71d522e9abeea2de";
hash = "sha256-nu8BjALjrlcm0AnBcRZxMjn+soozAU58nvqLuiN3UHk=";
};
buildInputs = with pkgs; [
pkg-config
wayland
wayland-protocols
wayland-scanner
];
makeFlags = [
"DESTDIR=$(out)"
"PREFIX="
];
patchPhase = ''
runHook prePatch
sed -i '15s/-Wall/-Wall -Wno-incompatible-pointer-types -D_GNU_SOURCE/' Makefile
runHook postPatch
'';
}
+82
View File
@@ -0,0 +1,82 @@
{
inputs,
pkgs,
...
}:
{
stylix =
let
palette = {
base00 = "11111a"; # #11111a
base01 = "181825"; # #181825
base02 = "313244"; # #313244
base03 = "45475a"; # #45475a
base04 = "585b70"; # #585b70
base05 = "cdd6f4"; # #cdd6f4
base06 = "f5e0dc"; # #f5e0dc
base07 = "b4befe"; # #b4befe
base08 = "f38ba8"; # #f38ba8
base09 = "fab387"; # #fab387
base0A = "f9e2af"; # #f9e2af
base0B = "a6e3a1"; # #a6e3a1
base0C = "94e2d5"; # #94e2d5
base0D = "f5c2e7"; # #f5c2e7
base0E = "cba6f7"; # #cba6f7
base0F = "f2cdcd"; # #f2cdcd
#base00 = "1d2021"; # #1d2021
#base01 = "3c3836"; # #3c3836
#base02 = "504945"; # #504945
#base03 = "665c54"; # #665c54
#base04 = "bdae93"; # #bdae93
#base05 = "d5c4a1"; # #d5c4a1
#base06 = "ebdbb2"; # #ebdbb2
#base07 = "fbf1c7"; # #fbf1c7
#base08 = "fb4934"; # #fb4934
#base09 = "fe8019"; # #fe8019
#base0A = "fabd2f"; # #fabd2f
#base0B = "b8bb26"; # #b8bb26
#base0C = "8ec07c"; # #8ec07c
#base0D = "83a598"; # #83a598
#base0E = "d3869b"; # #d3869b
#base0F = "d65d0e"; # #d65d0e
};
wallpaper = inputs.nix-wallpaper.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
width = 2560;
height = 1440;
backgroundColor = "#${palette.base00}";
logoColors = {
color0 = "#${palette.base0D}";
color1 = "#${palette.base0D}";
color2 = "#${palette.base0D}";
color3 = "#${palette.base0D}";
color4 = "#${palette.base0D}";
color5 = "#${palette.base0D}";
};
};
in
{
enable = true;
image = "${wallpaper}/share/wallpapers/nixos-wallpaper.png";
polarity = "dark";
targets.waybar.enable = false;
targets.zathura.enable = false;
targets.vesktop.enable = false;
targets.zen-browser.enable = false;
fonts =
let
font = {
package = pkgs.nerd-fonts.caskaydia-cove;
name = "CaskaydiaCove Nerd Font";
};
in
{
monospace = font;
serif = font;
sansSerif = font;
emoji = font;
};
base16Scheme.palette = palette;
};
}
+26 -151
View File
@@ -1,45 +1,16 @@
{ {
config,
lib,
inputs, inputs,
hostName, hostName,
pkgs, pkgs,
userName,
... ...
}: }:
{ {
imports = [ imports = [
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.stylix.nixosModules.stylix
inputs.base16.nixosModule
./stylix.nix
./river.nix
]; ];
boot.loader.grub = { boot.loader.systemd-boot.enable = true;
enable = true;
efiSupport = true;
device = "nodev";
useOSProber = true;
};
documentation.man = {
enable = true;
cache = {
enable = true;
};
};
environment.etc."current-system-packages".text =
let
packages = map (p: "${p.name}") config.environment.systemPackages;
sortedUnique = builtins.sort builtins.lessThan (pkgs.lib.lists.unique packages);
formatted = builtins.concatStringsSep "\n" sortedUnique;
in
formatted;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
boot.tmp.cleanOnBoot = true; boot.tmp.cleanOnBoot = true;
@@ -62,81 +33,40 @@
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl" KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
''; '';
security.polkit = {
enable = true;
extraConfig = ''
// https://github.com/frasertajima/tailscale_shortcuts/blob/0d1f3992890114c5ea6dfb972fcc782325681e3d/V2_CAUTION/reboot_polkit.md?plain=1#L33
polkit.addRule(function(action, subject) {
if (subject.isInGroup("wheel") &&
(action.id == "org.freedesktop.login1.reboot" ||
action.id == "org.freedesktop.login1.suspend" ||
action.id == "org.freedesktop.login1.power-off" ||
action.id == "org.freedesktop.login1.shutdown")) {
return polkit.Result.YES;
}
});
'';
};
home-manager = { home-manager = {
extraSpecialArgs = { extraSpecialArgs = { inherit inputs; };
inherit inputs;
inherit hostName;
wallpaper = config.stylix.image;
};
users = { users = {
${userName} = import (../../.. + "/home/pc/${hostName}/home.nix"); autumn = import (../../.. + "/home/pc/${hostName}/home.nix");
}; };
}; };
environment.etc."current-home-manager-packages".text =
let
packages = map (p: "${p.name}") config.home-manager.users.${userName}.home.packages;
sortedUnique = builtins.sort builtins.lessThan (pkgs.lib.lists.unique packages);
formatted = builtins.concatStringsSep "\n" sortedUnique;
in
formatted;
services.gnome.glib-networking.enable = true; services.gnome.glib-networking.enable = true;
services.displayManager.lemurs = { programs.hyprland = {
enable = true; enable = true;
settings.environment_switcher.include_tty_shell = true; };
services.displayManager.sddm = {
enable = true;
theme = "catppuccin-mocha-mauve";
wayland.enable = true;
package = pkgs.kdePackages.sddm;
}; };
programs.steam = { programs.steam = {
enable = true; enable = true;
}; };
xdg.portal = {
enable = true;
config.sway = {
default = [ "gtk" ];
"org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
"org.freedesktop.impl.portal.ScreenCast" = [ "wlr" ];
"org.freedesktop.impl.portal.ScreenShot" = [ "wlr" ];
"org.freedesktop.impl.portal.Inhibit" = [ ];
};
extraPortals = [
pkgs.xdg-desktop-portal-wlr
pkgs.xdg-desktop-portal-gtk
];
wlr = {
enable = true;
settings.screencast = {
max_fps = 180;
chooser_type = "simple";
chooser_cmd = "${pkgs.slurp}/bin/slurp -f 'Monitor: %o' -or";
};
};
};
services.blueman.enable = true; services.blueman.enable = true;
services.printing.enable = true; services.printing.enable = true;
services.openssh = { services.openssh = {
enable = true; enable = true;
settings = {
PermitRootLogin = "no";
PasswordAuthentication = false;
};
}; };
services.pulseaudio.enable = false; services.pulseaudio.enable = false;
@@ -151,87 +81,36 @@
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true; hardware.bluetooth.powerOnBoot = true;
# programs.fish.enable = true; users.users.autumn = {
users.users.${userName} = {
isNormalUser = true; isNormalUser = true;
description = "Autumn";
extraGroups = [ extraGroups = [
"networkmanager" "networkmanager"
"wheel" "wheel"
"seat"
"audio"
]; ];
packages = [ ]; packages = [ ];
shell = pkgs.tcsh; shell = pkgs.nushell;
}; };
environment.shells = [ pkgs.tcsh ];
nix.settings.experimental-features = [ nix.settings.experimental-features = [
"nix-command" "nix-command"
"flakes" "flakes"
]; ];
environment.etc."csh.cshrc" = { programs.dconf.enable = true;
enable = true;
text =
# https://github.com/NixOS/nixpkgs/blob/736c1381347ac3cbb2031159f4df254f49a619fd/nixos/modules/config/shells-environment.nix
let
cfg = config.environment;
absoluteVariables = lib.mapAttrs (n: lib.toList) cfg.variables;
suffixedVariables = lib.flip lib.mapAttrs cfg.profileRelativeEnvVars (
envVar: listSuffixes:
lib.concatMap (profile: map (suffix: "${profile}${suffix}") listSuffixes) cfg.profiles
);
allVariables = lib.zipAttrsWith (n: lib.concatLists) [
absoluteVariables
suffixedVariables
];
exportVariables = lib.mapAttrsToList (
n: v: ''set ${n} = "${lib.concatStringsSep ":" v}"''
) allVariables;
exportedEnvVars = lib.concatStringsSep "\n" exportVariables;
in
''
set XDG_CONFIG_HOME = /home/autumn/.config;
set XDG_DATA_HOME = /home/autumn/.local/share;
set XDG_CACHE_HOME = /home/autumn/.local/cache;
set XDG_STATE_HOME = /home/autumn/.local/state;
# DO NOT EDIT -- this file has been generated automatically.
# Prevent this file from being sourced by child shells.
set __NIXOS_SET_ENVIRONMENT_DONE = 1
${exportedEnvVars}
# removed extraInit ; keep that in mind !!
${lib.optionalString cfg.homeBinInPath ''
# ~/bin if it exists overrides other bin directories.
set PATH = "$HOME/bin:$PATH"
''}
${lib.optionalString cfg.localBinInPath ''
set PATH = "$HOME/.local/bin:$PATH"
''}
'';
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
tcsh
cloudflared cloudflared
gparted gparted
networkmanagerapplet networkmanagerapplet
nh nh
pavucontrol pavucontrol
(pkgs.catppuccin-sddm.override {
flavor = "mocha";
font = "CaskaydiaCove Nerd Font";
fontSize = "12";
})
wget wget
slurp
]; ];
fonts = { fonts = {
@@ -254,13 +133,9 @@
environment.sessionVariables = { environment.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
SUDO_EDITOR = "nvim";
BROWSER = "zen"; BROWSER = "zen";
SHELL = "tcsh"; SUDO_EDITOR = "nvim";
TERM = "foot"; SHELL = "nu";
XDG_CURRENT_DESKTOP = "river";
LIBSEAT_BACKEND = "seatd";
}; };
system.stateVersion = "24.05"; system.stateVersion = "24.05";
-13
View File
@@ -1,13 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
gscreenshot
wlr-randr
awww
];
programs.river-classic = {
enable = true;
xwayland.enable = true;
};
}
-124
View File
@@ -1,124 +0,0 @@
{
inputs,
lib,
pkgs,
userName,
...
}:
let
makeScheme =
scheme:
(builtins.fromJSON (
builtins.readFile "${
pkgs.stdenv.mkDerivation {
name = "fromYAML";
phases = "buildPhase";
buildPhase = ''
mkdir -p $out/
FILE=${pkgs.base16-schemes}/share/themes/${scheme}.yaml
FILEBASENAME="$(basename $FILE .yaml).json"
cat $FILE | ${pkgs.yaml2json}/bin/yaml2json | sed s/#//g > $out/$FILEBASENAME
'';
}
}/${scheme}.json"
)).palette;
font = {
package = pkgs.nerd-fonts.caskaydia-cove;
name = "CaskaydiaCove Nerd Font";
};
emojiFont = {
package = pkgs.dejavu_fonts;
name = "DejaVu Sans Mono";
};
makeTheme =
scheme: polarity:
let
palette = makeScheme scheme;
in
{
enable = true;
base16Scheme.palette = palette;
inherit polarity;
fonts = {
emoji = emojiFont;
monospace = font;
sansSerif = font;
serif = font;
};
image =
let
wallpaper = inputs.nix-wallpaper.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
width = 2560;
height = 1440;
backgroundColor = "#${palette.base00}";
logoColors = {
color0 = "#${palette.base0D}";
color1 = "#${palette.base0D}";
color2 = "#${palette.base0D}";
color3 = "#${palette.base0D}";
color4 = "#${palette.base0D}";
color5 = "#${palette.base0D}";
};
};
in
"${wallpaper}/share/wallpapers/nixos-wallpaper.png";
};
palette = {
base00 = "1C2023";
base01 = "393F45";
base02 = "565E65";
base03 = "747C84";
base04 = "ADB3BA";
base05 = "C7CCD1";
base06 = "DFE2E5";
base07 = "F3F4F5";
base08 = "C7AE95";
base09 = "C7C795";
base0A = "AEC795";
base0B = "95C7AE";
base0C = "95AEC7";
base0D = "AE95C7";
base0E = "C795AE";
base0F = "C79595";
};
in
{
# stylix = makeTheme "ashen" "dark";
stylix = {
enable = true;
base16Scheme.palette = palette;
polarity = "dark";
fonts = {
emoji = emojiFont;
monospace = font;
sansSerif = font;
serif = font;
};
image =
let
wallpaper = inputs.nix-wallpaper.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
width = 2560;
height = 1440;
backgroundColor = "#${palette.base00}";
logoColors = {
color0 = "#${palette.base0D}";
color1 = "#${palette.base0D}";
color2 = "#${palette.base0D}";
color3 = "#${palette.base0D}";
color4 = "#${palette.base0D}";
color5 = "#${palette.base0D}";
};
};
in
"${wallpaper}/share/wallpapers/nixos-wallpaper.png";
};
}
@@ -1,31 +0,0 @@
# 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" "ehci_pci" "ahci" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/1870ec35-8313-40a7-a264-0ef5576c6317";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/9403-4D2A";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+10 -2
View File
@@ -14,18 +14,26 @@
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-label/NIXROOT"; { device = "/dev/disk/by-uuid/90aaba2e-42f2-4b98-8df6-bd4a72f6d688";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" =
{ device = "/dev/disk/by-label/NIXBOOT"; { device = "/dev/disk/by-uuid/F8E0-7E32";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];
}; };
swapDevices = [ ]; 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.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp10s0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp18s0f4u1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }
Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 KiB

After

Width:  |  Height:  |  Size: 78 KiB