Skip to content

Commit

Permalink
feat,ci: add sticky vm
Browse files Browse the repository at this point in the history
  • Loading branch information
mrnossiom committed Dec 23, 2023
1 parent c9b626d commit 2468443
Show file tree
Hide file tree
Showing 9 changed files with 67 additions and 44 deletions.
15 changes: 15 additions & 0 deletions .github/workflows/nix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Nix
on: [push, pull_request]

jobs:
build:
name: Check flake and upload build cache
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v22
with:
github_access_token: ${{ secrets.GITHUB_TOKEN }}

- name: Check flake structure
run: nix flake check
27 changes: 4 additions & 23 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};

nix-index-database = {
Expand Down Expand Up @@ -43,10 +44,10 @@
{
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixpkgs-fmt);

packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
packages = forAllSystems (system: import ./pkgs (import nixpkgs { inherit system; config.allowUnfree = true; }));
apps = forAllSystems (system: import ./apps (nixpkgs.legacyPackages.${system} // { inherit self; }));

overlays = import ./overlays { inherit self; };
overlays = import ./overlays (nixpkgs // { inherit self; });
nixosModules = import ./modules/nixos;
homeManagerModules = import ./modules/home-manager;

Expand Down
35 changes: 22 additions & 13 deletions home-manager/modules/shell.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,16 @@ with lib;

{
config = {
programs.nix-index.enableFishIntegration = false;
programs.nix-index-database.comma.enable = true;

programs.starship.enable = true;
programs.starship = {
enable = true;
settings.nix_shell = {
# Remove nix shell name
format = "via [$symbol$state]($style) ";
symbol = " ";
};
};

# Assumes that helix is installed, use configured version of helix
home.sessionVariables.EDITOR = "hx";
Expand All @@ -28,6 +34,7 @@ with lib;
render = true;
characters = "╎";
};
file-picker.hidden = false;
lsp.display-inlay-hints = true;
soft-wrap.wrap-at-text-width = true;
};
Expand All @@ -43,18 +50,20 @@ with lib;
};
};
languages = {
language-server = {
language-server = with pkgs; {
# Language server for nix
rnix-lsp.command = getExe' pkgs.rnix-lsp "rnix-lsp";
typst-lsp.command = getExe pkgs.typst-lsp;
rnix-lsp.command = getExe' rnix-lsp "rnix-lsp";
typst-lsp.command = getExe typst-lsp;

# Default language servers
tuplo.command = getExe pkgs.taplo;
marksman.command = getExe' pkgs.marksman "marksman";
pylsp.command = getExe pkgs.python311Packages.python-lsp-server;
vscode-css-language-server.command = getExe' pkgs.vscode-langservers-extracted "vscode-css-language-server";
vscode-html-language-server.command = getExe' pkgs.vscode-langservers-extracted "vscode-html-language-server";
vscode-json-language-server.command = getExe' pkgs.vscode-langservers-extracted "vscode-json-language-server";
tuplo.command = getExe taplo;
marksman.command = getExe' marksman "marksman";
pylsp.command = getExe python311Packages.python-lsp-server;
vscode-css-language-server.command = getExe' vscode-langservers-extracted "vscode-css-language-server";
vscode-html-language-server.command = getExe' vscode-langservers-extracted "vscode-html-language-server";
vscode-json-language-server.command = getExe' vscode-langservers-extracted "vscode-json-language-server";
yaml-language-server.command = getExe yaml-language-server;
ansible-language-server.command = getExe' ansible-language-server "ansible-language-server";
};

grammar = [
Expand Down Expand Up @@ -160,8 +169,8 @@ with lib;
};

functions = {
# Executed on interactive shell start
fish_greeting = ''# Do nothing'';
# Executed on interactive shell start, greet with a short quote
fish_greeting = "${getExe pkgs.fortune} -s";

last_history_item = "echo $history[1]";

Expand Down
1 change: 1 addition & 0 deletions home-manager/modules/vm/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ in
"${modifier}+Shift+space" = "floating toggle";
# Change between tiling and floating focus
"${modifier}+Alt+space" = "focus mode_toggle";
"${modifier}+p" = "sticky toggle";

# Screenshotting
"${modifier}+s" = ''exec ${getExe pkgs.grim} -g "$(${getExe pkgs.slurp})" - | ${getExe' pkgs.wl-clipboard "wl-copy"}'';
Expand Down
3 changes: 2 additions & 1 deletion home-manager/profiles/desktop.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
let

inherit (self.inputs) agenix nix-index-database nix-colors;
inherit (self.outputs) overlays;

# Says is the config has been loaded by the NixOS HM module or is it a standalone installation.
isNixosManaged = osConfig != null;
Expand All @@ -35,7 +36,7 @@ in
];

nixpkgs = {
overlays = self.outputs.overlays.all;
overlays = [ overlays.all ];

config = {
allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
Expand Down
2 changes: 1 addition & 1 deletion lib/flake/user.nix
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ in
extraSpecialArgs = { inherit self; };
backupFileExtension = "bak";

useUserPackages = true;
useUserPackages = false;
useGlobalPkgs = false;

users.${name} = import config;
Expand Down
14 changes: 13 additions & 1 deletion nixos/profiles/laptop.nix
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,23 @@ in
settings = {
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;

keep-going = true;

trusted-users = [ config.local.user.username ];
extra-substituters = [
"https://nix-community.cachix.org"
"https://mrnossiom.cachix.org"
];
extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"mrnossiom.cachix.org-1:WKo+xfDFaT6pRP4YiIFsEXvyBzI/Pm9uGhURgF1wlQg="
];
};
};

nixpkgs = {
overlays = overlays.all;
overlays = [ overlays.all ];
config.allowUnfree = true;
};

Expand Down
9 changes: 6 additions & 3 deletions overlays/default.nix
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
{ self, ... }:
{ self, lib, ... }:

let
inherit (self) inputs;
inherit (lib) composeManyExtensions;
in
rec {
all = [ local-lib additions patches unstable-packages ];
all = composeManyExtensions [ local-lib additions patches unstable-packages ];

# Merge our local library to nixpkgs'
local-lib = final: prev: { lib = { local = import ../lib final; } // prev.lib; };
local-lib = final: prev: {
lib = { local = import ../lib final; } // prev.lib;
};

# Bring our custom packages from the `pkgs` directory
additions = final: prev: import ../pkgs prev;
Expand Down

0 comments on commit 2468443

Please sign in to comment.