format
This commit is contained in:
parent
3a32e50429
commit
b2cf19f883
64 changed files with 885 additions and 445 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -1 +1,4 @@
|
|||
*.swp
|
||||
|
||||
# Generated by nix-pre-commit-hooks
|
||||
/.pre-commit-config.yaml
|
||||
|
|
|
|||
104
flake.lock
104
flake.lock
|
|
@ -87,6 +87,22 @@
|
|||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1673956053,
|
||||
|
|
@ -139,6 +155,50 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730302582,
|
||||
"narHash": "sha256-W1MIJpADXQCgosJZT8qBYLRuZls2KSiKdpnTVdKBuvU=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "af8a16fe5c264f5e9e18bcee2859b40a656876cf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gnome-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
@ -265,6 +325,22 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1720386169,
|
||||
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1729691686,
|
||||
"narHash": "sha256-BAuPWW+9fa1moZTU+jFh+1cUtmsuF8asgzFwejM4wac=",
|
||||
|
|
@ -306,14 +382,16 @@
|
|||
"root": {
|
||||
"inputs": {
|
||||
"disko": "disko",
|
||||
"git-hooks": "git-hooks",
|
||||
"home-manager": "home-manager",
|
||||
"impermanence": "impermanence",
|
||||
"nix-index-database": "nix-index-database",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"nixpkgs-stable": "nixpkgs-stable_2",
|
||||
"plasma-manager": "plasma-manager",
|
||||
"stylix": "stylix"
|
||||
"stylix": "stylix",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
|
|
@ -322,7 +400,7 @@
|
|||
"base16-fish": "base16-fish",
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-utils": "flake-utils",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"home-manager": "home-manager_2",
|
||||
|
|
@ -411,6 +489,26 @@
|
|||
"repo": "tinted-tmux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730321837,
|
||||
"narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "746901bb8dba96d154b66492a29f5db0693dbfcc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
|
|||
69
flake.nix
69
flake.nix
|
|
@ -17,10 +17,19 @@
|
|||
plasma-manager.url = "github:nix-community/plasma-manager";
|
||||
plasma-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
plasma-manager.inputs.home-manager.follows = "home-manager";
|
||||
treefmt-nix.url = "github:numtide/treefmt-nix";
|
||||
treefmt-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
git-hooks.url = "github:cachix/git-hooks.nix";
|
||||
git-hooks.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs =
|
||||
inputs@{ nixpkgs, self, ... }:
|
||||
inputs@{
|
||||
nixpkgs,
|
||||
self,
|
||||
treefmt-nix,
|
||||
...
|
||||
}:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import inputs.nixpkgs {
|
||||
|
|
@ -55,9 +64,65 @@
|
|||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
] (system: fn (createCommonArgs system));
|
||||
treefmtEval = forAllSystems (
|
||||
{ pkgs, ... }:
|
||||
treefmt-nix.lib.evalModule pkgs {
|
||||
projectRootFile = "flake.nix";
|
||||
programs.nixfmt-rfc-style.enable = true;
|
||||
settings.global.excludes = [ "flake.lock" ];
|
||||
}
|
||||
);
|
||||
in
|
||||
{
|
||||
inherit lib self;
|
||||
nixosConfigurations = (import ./src/hosts/default.nix commonArgs);
|
||||
nixosConfigurations = import ./src/hosts/default.nix commonArgs;
|
||||
|
||||
checks = forAllSystems (
|
||||
{
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
{
|
||||
formatting = treefmtEval.${system}.config.build.check self;
|
||||
pre-commit-check = inputs.git-hooks.lib.${system}.run {
|
||||
src = ./.;
|
||||
excludes = [ "flake.lock" ];
|
||||
hooks = {
|
||||
treefmt = {
|
||||
enable = true;
|
||||
package = lib.mkOverride 900 treefmtEval.${system}.config.build.wrapper;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
devShells = forAllSystems (
|
||||
{
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
{
|
||||
default = pkgs.mkShell {
|
||||
inherit (self.checks.${system}.pre-commit-check) shellHook;
|
||||
|
||||
name = "dotfiles";
|
||||
buildInputs = self.checks.${system}.pre-commit-check.enabledPackages;
|
||||
nativeBuildInputs = [
|
||||
treefmtEval.${system}.config.build.wrapper
|
||||
];
|
||||
packages = [
|
||||
pkgs.sops
|
||||
pkgs.ssh-to-age
|
||||
pkgs.nixfmt-rfc-style
|
||||
];
|
||||
DIRENV_LOG_FORMAT = "";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
formatter = forAllSystems ({ system, ... }: treefmtEval.${system}.config.build.wrapper);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,12 +5,10 @@
|
|||
user,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./emacs.nix
|
||||
./impermanence.nix
|
||||
./git.nix
|
||||
./gui
|
||||
./latex.nix
|
||||
./shell
|
||||
|
|
@ -20,7 +18,6 @@
|
|||
];
|
||||
|
||||
config = {
|
||||
|
||||
# setup fonts for other distros, run "fc-cache -f" to refresh fonts
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
|
|
@ -60,7 +57,6 @@
|
|||
# '';
|
||||
# };
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
|
@ -71,7 +67,8 @@
|
|||
userDirs =
|
||||
let
|
||||
homeDir = config.home.homeDirectory;
|
||||
in {
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
download = "${homeDir}/downloads";
|
||||
documents = "${homeDir}/documents";
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
custom.persist = {
|
||||
home.directories = [
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./1password.nix
|
||||
|
|
@ -39,7 +42,6 @@
|
|||
};
|
||||
};
|
||||
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
# platformTheme.name = "adwaita";
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
discord
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{ config, pkgs, lib, user, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
user,
|
||||
...
|
||||
}:
|
||||
let
|
||||
vendorPath = ".config/.mozilla";
|
||||
configPath = "${vendorPath}/firefox";
|
||||
|
|
@ -14,13 +19,11 @@ in
|
|||
wrapProgram "$executablePath" \
|
||||
--set 'HOME' '${config.xdg.configHome}' \
|
||||
--append-flags "${
|
||||
lib.concatStringsSep " " (
|
||||
[
|
||||
lib.concatStringsSep " " [
|
||||
"--name firefox"
|
||||
"-P ${user}"
|
||||
# "--profile ${config.xdg.configHome}/.mozilla/${user}"
|
||||
]
|
||||
)
|
||||
}"
|
||||
'';
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
pop-launcher
|
||||
|
|
@ -33,19 +37,22 @@
|
|||
num-workspaces = 10;
|
||||
};
|
||||
"org/gnome/desktop/wm/keybindings" = {
|
||||
minimize = [];
|
||||
lock = [];
|
||||
switch-to-workspace-left = [];
|
||||
switch-to-workspace-right = [];
|
||||
minimize = [ ];
|
||||
lock = [ ];
|
||||
switch-to-workspace-left = [ ];
|
||||
switch-to-workspace-right = [ ];
|
||||
maximize = [ "<Super>f" ];
|
||||
unmaximize = [ "<Super><Shift>f" ];
|
||||
move-to-monitor-up = [];
|
||||
move-to-monitor-down = [];
|
||||
move-to-monitor-left = [];
|
||||
move-to-monitor-right = [];
|
||||
move-to-workspace-down = [];
|
||||
move-to-workspace-up = [];
|
||||
close = [ "<Super><Shift>q" "<Alt>F4" ];
|
||||
move-to-monitor-up = [ ];
|
||||
move-to-monitor-down = [ ];
|
||||
move-to-monitor-left = [ ];
|
||||
move-to-monitor-right = [ ];
|
||||
move-to-workspace-down = [ ];
|
||||
move-to-workspace-up = [ ];
|
||||
close = [
|
||||
"<Super><Shift>q"
|
||||
"<Alt>F4"
|
||||
];
|
||||
switch-to-workspace-1 = [ "<Super>1" ];
|
||||
switch-to-workspace-2 = [ "<Super>2" ];
|
||||
switch-to-workspace-3 = [ "<Super>3" ];
|
||||
|
|
@ -68,17 +75,20 @@
|
|||
move-to-workspace-10 = [ "<Super><Shift>0" ];
|
||||
};
|
||||
"org/gnome/shell/keybindings" = {
|
||||
toggle-quick-settings = [];
|
||||
switch-to-application-1 = [];
|
||||
switch-to-application-2 = [];
|
||||
switch-to-application-3 = [];
|
||||
switch-to-application-4 = [];
|
||||
switch-to-application-5 = [];
|
||||
switch-to-application-6 = [];
|
||||
switch-to-application-7 = [];
|
||||
switch-to-application-8 = [];
|
||||
switch-to-application-9 = [];
|
||||
show-screenshot-ui = [ "Print" "<Super>o" ];
|
||||
toggle-quick-settings = [ ];
|
||||
switch-to-application-1 = [ ];
|
||||
switch-to-application-2 = [ ];
|
||||
switch-to-application-3 = [ ];
|
||||
switch-to-application-4 = [ ];
|
||||
switch-to-application-5 = [ ];
|
||||
switch-to-application-6 = [ ];
|
||||
switch-to-application-7 = [ ];
|
||||
switch-to-application-8 = [ ];
|
||||
switch-to-application-9 = [ ];
|
||||
show-screenshot-ui = [
|
||||
"Print"
|
||||
"<Super>o"
|
||||
];
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||
video-out = [ ];
|
||||
|
|
@ -94,14 +104,14 @@
|
|||
name = "Open Terminal";
|
||||
};
|
||||
"org/gnome/mutter/keybindings" = {
|
||||
toggle-tiled-left = [];
|
||||
toggle-tiled-right = [];
|
||||
toggle-tiled-left = [ ];
|
||||
toggle-tiled-right = [ ];
|
||||
switch-monitor = [ "XF86Display" ];
|
||||
};
|
||||
"org/gnome/shell/extensions/pop-shell" = {
|
||||
activate-launcher = [ "<Super>Space" ];
|
||||
toggle-floating = [ "<Super>p" ];
|
||||
tile-enter = ["<Super>r"];
|
||||
tile-enter = [ "<Super>r" ];
|
||||
tile-by-default = true;
|
||||
tile-orientation = [ "<Super>v" ];
|
||||
toggle-stacking-global = [ "<Super>s" ];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
bar = {
|
||||
position = "bottom";
|
||||
|
|
@ -35,10 +39,12 @@ in
|
|||
blocks = [
|
||||
{
|
||||
block = "sound";
|
||||
click = [{
|
||||
click = [
|
||||
{
|
||||
button = "left";
|
||||
cmd = lib.getExe' pkgs.pwvucontrol "pwvucontrol";
|
||||
}];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
block = "net";
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
{ inputs, lib, pkgs, config, stdenv, ... }:
|
||||
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
stdenv,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
kdePackages.krohnkite
|
||||
|
|
@ -43,8 +49,8 @@
|
|||
];
|
||||
};
|
||||
plasmashell = {
|
||||
"activate task manager entry 1" = [];
|
||||
"activate task manager entry 2" = [];
|
||||
"activate task manager entry 1" = [ ];
|
||||
"activate task manager entry 2" = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -66,7 +72,7 @@
|
|||
scripts.polonium.enable = false;
|
||||
};
|
||||
|
||||
configFile ={
|
||||
configFile = {
|
||||
kwinrc = {
|
||||
Desktops.Number = {
|
||||
value = 1;
|
||||
|
|
@ -83,4 +89,3 @@
|
|||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,15 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
xdg.configFile."keyd/app.conf" = {
|
||||
text = ''
|
||||
[firefox]
|
||||
[firefox]
|
||||
|
||||
control.p = up
|
||||
control.n = down
|
||||
control.e = end
|
||||
control.a = home
|
||||
control.shift.p = macro(C-S-p)
|
||||
'';
|
||||
control.p = up
|
||||
control.n = down
|
||||
control.e = end
|
||||
control.a = home
|
||||
control.shift.p = macro(C-S-p)
|
||||
'';
|
||||
};
|
||||
|
||||
home.file.".local/share/gnome-shell/extensions/keyd" = {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
skypeforlinux
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
slack
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
spotify
|
||||
|
|
@ -11,4 +14,3 @@
|
|||
];
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
teams-for-linux
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.wezterm = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,5 @@
|
|||
_:
|
||||
|
||||
{
|
||||
_: {
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,18 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
zoom = pkgs.zoom-us.overrideAttrs (attrs: {
|
||||
nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ [ pkgs.bbe ];
|
||||
postFixup = ''
|
||||
nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.bbe ];
|
||||
postFixup =
|
||||
''
|
||||
cp $out/opt/zoom/zoom .
|
||||
bbe -e 's/\0manjaro\0/\0nixos\0\0\0/' < zoom > $out/opt/zoom/zoom
|
||||
'' + (attrs.postFixup or "") + ''
|
||||
''
|
||||
+ (attrs.postFixup or "")
|
||||
+ ''
|
||||
sed -i 's|Exec=|Exec=env XDG_CURRENT_DESKTOP="gnome" |' $out/share/applications/Zoom.desktop
|
||||
'';
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
# note: this file exists just to define options for home-manager,
|
||||
# impermanence is not actually used in standalone home-manager as
|
||||
# it doesn't serve much utility on legacy distros
|
||||
{ lib, user, config, ... }:
|
||||
|
||||
{
|
||||
lib,
|
||||
user,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.custom.persist;
|
||||
in
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
texlive.combined.scheme-full
|
||||
|
|
|
|||
|
|
@ -1,10 +1,14 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.bash.enable = true;
|
||||
programs.bash.enableVteIntegration = true;
|
||||
programs.bash.bashrcExtra = lib.mkAfter ''
|
||||
if [ "$term" != "dumb" ] || [ -n "$inside_emacs" ]; then
|
||||
if [ "$term" != "dumb" ] || [ -n "$inside_emacs" ]; then
|
||||
prompt_color="1;32m"
|
||||
if [ -n "$inside_emacs" ]; then
|
||||
# emacs term mode doesn't support xterm title escape sequence (\e]0;)
|
||||
|
|
@ -16,8 +20,8 @@ if [ "$term" != "dumb" ] || [ -n "$inside_emacs" ]; then
|
|||
if test "$term" = "xterm"; then
|
||||
PS1="\[\033]2;\h:\u:\w\007\]$PS1"
|
||||
fi
|
||||
fi
|
||||
'';
|
||||
fi
|
||||
'';
|
||||
|
||||
custom.persist = {
|
||||
home.files = [
|
||||
|
|
|
|||
|
|
@ -1,14 +1,63 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./bash.nix
|
||||
./direnv.nix
|
||||
./fzf.nix
|
||||
./git.nix
|
||||
./lazygit.nix
|
||||
./nix.nix
|
||||
./ripgrep.nix
|
||||
./shell.nix
|
||||
./tmux
|
||||
./zoxide.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
home.packages =
|
||||
with pkgs;
|
||||
[
|
||||
fd
|
||||
fx
|
||||
jq
|
||||
sd
|
||||
ugrep
|
||||
]
|
||||
++ (lib.attrValues config.custom.shell.packages);
|
||||
|
||||
programs = {
|
||||
bat = {
|
||||
enable = true;
|
||||
extraPackages = [
|
||||
(pkgs.symlinkJoin {
|
||||
name = "batman";
|
||||
paths = [ pkgs.bat-extras.batman ];
|
||||
postBuild = ''
|
||||
mkdir -p $out/share/bash-completion/completions
|
||||
echo 'complete -F _comp_cmd_man batman' > $out/share/bash-completion/completions/batman
|
||||
|
||||
mkdir -p $out/share/fish/vendor_completions.d
|
||||
echo 'complete batman --wraps man' > $out/share/fish/vendor_completions.d/batman.fish
|
||||
|
||||
mkdir -p $out/share/zsh/site-functions
|
||||
cat << EOF > $out/share/zsh/site-functions/_batman
|
||||
#compdef batman
|
||||
_man "$@"
|
||||
EOF
|
||||
'';
|
||||
meta.mainProgram = "batman";
|
||||
})
|
||||
];
|
||||
};
|
||||
fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = config.programs.bash.enable;
|
||||
enableFishIntegration = config.programs.fish.enable;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = config.programs.bash.enable;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,5 +1,9 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
git
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.lazygit = {
|
||||
enable = true;
|
||||
settings = {
|
||||
reporting = "off";
|
||||
startupPopupVersion = 1;
|
||||
# startupPopupVersion = 1;
|
||||
disableStartupPopups = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
46
src/home/shell/nix.nix
Normal file
46
src/home/shell/nix.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
nixpkgs-review = pkgs.nixpkgs-review.override { withNom = true; };
|
||||
in
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
nh
|
||||
nixd
|
||||
nix-output-monitor
|
||||
nix-tree
|
||||
nixpkgs-review
|
||||
nvfetcher
|
||||
];
|
||||
|
||||
shellAliases = {
|
||||
nfl = "nix flake lock";
|
||||
nfu = "nix flake update";
|
||||
nfui = "nix flake lock --update-input";
|
||||
nsh = "nix-shell --command fish -p";
|
||||
nshp = "nix-shell --pure --command fish -p";
|
||||
};
|
||||
};
|
||||
|
||||
custom.shell.packages = {
|
||||
# outputs the current nixos generation
|
||||
nix-current-generation = ''
|
||||
# previous desktop versions: 1196
|
||||
sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}'
|
||||
'';
|
||||
};
|
||||
|
||||
programs = {
|
||||
nix-index.enable = true;
|
||||
};
|
||||
|
||||
custom.persist = {
|
||||
home = {
|
||||
cache.directories = [ ".cache/nix-index" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,5 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.custom = with lib; {
|
||||
shell = {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
tmux
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
home.shellAliases = {
|
||||
z = "zoxide query -i";
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.ssh = {
|
||||
enable = false;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
vim-full
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.custom = with lib; {
|
||||
wm = {
|
||||
|
|
|
|||
|
|
@ -1,18 +1,19 @@
|
|||
{ config
|
||||
, pkgs
|
||||
, lib
|
||||
, menu
|
||||
, terminal
|
||||
, light ? lib.getExe' pkgs.brightnessctl "brightnessctl"
|
||||
, playerctl ? lib.getExe' pkgs.playerctl "playerctl"
|
||||
, sound ? "pactl"
|
||||
, alt ? "Mod1"
|
||||
, modifier ? "Mod4"
|
||||
, extraWindowOptions ? { }
|
||||
, extraFocusOptions ? { }
|
||||
, extraModes ? { }
|
||||
, extraConfig ? ""
|
||||
, workspaces ? [
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
menu,
|
||||
terminal,
|
||||
light ? lib.getExe' pkgs.brightnessctl "brightnessctl",
|
||||
playerctl ? lib.getExe' pkgs.playerctl "playerctl",
|
||||
sound ? "pactl",
|
||||
alt ? "Mod1",
|
||||
modifier ? "Mod4",
|
||||
extraWindowOptions ? { },
|
||||
extraFocusOptions ? { },
|
||||
extraModes ? { },
|
||||
extraConfig ? "",
|
||||
workspaces ? [
|
||||
{
|
||||
ws = 1;
|
||||
name = "1";
|
||||
|
|
@ -53,17 +54,24 @@
|
|||
ws = 0;
|
||||
name = "10";
|
||||
}
|
||||
]
|
||||
, ...
|
||||
],
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
powerManagementMode = " : Screen [l]ock, [e]xit, [s]uspend, [h]ibernate, [R]eboot, [S]hutdown";
|
||||
resizeMode = " : [h] , [j] , [k] , [l] ";
|
||||
|
||||
# Helpers
|
||||
mapDirection = { prefixKey ? null, leftCmd, downCmd, upCmd, rightCmd }:
|
||||
with lib.strings; {
|
||||
mapDirection =
|
||||
{
|
||||
prefixKey ? null,
|
||||
leftCmd,
|
||||
downCmd,
|
||||
upCmd,
|
||||
rightCmd,
|
||||
}:
|
||||
with lib.strings;
|
||||
{
|
||||
# Arrow keys
|
||||
"${optionalString (prefixKey != null) "${prefixKey}+"}Left" = leftCmd;
|
||||
"${optionalString (prefixKey != null) "${prefixKey}+"}Down" = downCmd;
|
||||
|
|
@ -76,7 +84,11 @@ let
|
|||
"${optionalString (prefixKey != null) "${prefixKey}+"}l" = rightCmd;
|
||||
};
|
||||
|
||||
mapDirectionDefault = { prefixKey ? null, prefixCmd }:
|
||||
mapDirectionDefault =
|
||||
{
|
||||
prefixKey ? null,
|
||||
prefixCmd,
|
||||
}:
|
||||
(mapDirection {
|
||||
inherit prefixKey;
|
||||
leftCmd = "${prefixCmd} left";
|
||||
|
|
@ -85,21 +97,32 @@ let
|
|||
rightCmd = "${prefixCmd} right";
|
||||
});
|
||||
|
||||
mapWorkspacesStr = with builtins;
|
||||
mapWorkspacesStr =
|
||||
with builtins;
|
||||
with lib.strings;
|
||||
{ workspaces, prefixKey ? null, prefixCmd }:
|
||||
(concatStringsSep "\n" (map
|
||||
({ ws, name }:
|
||||
''
|
||||
bindsym ${optionalString (prefixKey != null) "${prefixKey}+"}${
|
||||
toString ws
|
||||
} ${prefixCmd} "${name}"'')
|
||||
workspaces));
|
||||
{
|
||||
workspaces,
|
||||
prefixKey ? null,
|
||||
prefixCmd,
|
||||
}:
|
||||
(concatStringsSep "\n" (
|
||||
map (
|
||||
{
|
||||
ws,
|
||||
name,
|
||||
}:
|
||||
''bindsym ${
|
||||
optionalString (prefixKey != null) "${prefixKey}+"
|
||||
}${toString ws} ${prefixCmd} "${name}"''
|
||||
) workspaces
|
||||
));
|
||||
in
|
||||
{
|
||||
inherit modifier terminal;
|
||||
|
||||
helpers = { inherit mapDirection mapDirectionDefault mapWorkspacesStr; };
|
||||
helpers = {
|
||||
inherit mapDirection mapDirectionDefault mapWorkspacesStr;
|
||||
};
|
||||
|
||||
config = {
|
||||
inherit modifier terminal;
|
||||
|
|
@ -116,7 +139,7 @@ in
|
|||
"${modifier}+Shift+c" = "reload";
|
||||
"${modifier}+Shift+r" = "restart";
|
||||
"${modifier}+Shift+q" = "kill";
|
||||
"${modifier}+Shift+e" = "exit";
|
||||
# "${modifier}+Shift+e" = "exit";
|
||||
"${alt}+F4" = "kill";
|
||||
|
||||
"${modifier}+h" = "focus left";
|
||||
|
|
@ -157,12 +180,14 @@ in
|
|||
};
|
||||
in
|
||||
{
|
||||
${resizeMode} = (mapDirection {
|
||||
${resizeMode} =
|
||||
(mapDirection {
|
||||
leftCmd = "resize shrink width 10px or 10ppt";
|
||||
downCmd = "resize grow height 10px or 10ppt";
|
||||
upCmd = "resize shrink height 10px or 10ppt";
|
||||
rightCmd = "resize grow width 10px or 10ppt";
|
||||
}) // exitMode;
|
||||
})
|
||||
// exitMode;
|
||||
${powerManagementMode} = {
|
||||
l = "mode default, exec loginctl lock-session";
|
||||
e = "mode default, exec loginctl terminate-session $XDG_SESSION_ID";
|
||||
|
|
@ -171,7 +196,8 @@ in
|
|||
"Shift+r" = "mode default, exec systemctl reboot";
|
||||
"Shift+s" = "mode default, exec systemctl poweroff";
|
||||
} // exitMode;
|
||||
} // extraModes;
|
||||
}
|
||||
// extraModes;
|
||||
|
||||
workspaceAutoBackAndForth = true;
|
||||
workspaceLayout = "tabbed";
|
||||
|
|
@ -182,14 +208,16 @@ in
|
|||
titlebar = false;
|
||||
} // extraWindowOptions;
|
||||
|
||||
focus = { followMouse = false; } // extraFocusOptions;
|
||||
focus = {
|
||||
followMouse = false;
|
||||
} // extraFocusOptions;
|
||||
};
|
||||
|
||||
# Until this issue is fixed we need to map workspaces directly to config file
|
||||
# https://github.com/nix-community/home-manager/issues/695
|
||||
extraConfig =
|
||||
let
|
||||
workspaceStr = (builtins.concatStringsSep "\n" [
|
||||
workspaceStr = builtins.concatStringsSep "\n" [
|
||||
(mapWorkspacesStr {
|
||||
inherit workspaces;
|
||||
prefixKey = modifier;
|
||||
|
|
@ -200,7 +228,7 @@ in
|
|||
prefixKey = "${modifier}+Shift";
|
||||
prefixCmd = "move container to workspace number";
|
||||
})
|
||||
]);
|
||||
];
|
||||
in
|
||||
''
|
||||
${workspaceStr}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
||||
maim = lib.getExe' pkgs.maim "maim";
|
||||
|
|
@ -31,12 +34,13 @@ in
|
|||
xsession.windowManager.i3 = {
|
||||
enable = true;
|
||||
extraConfig = commonOptions.extraConfig;
|
||||
config = lib.mkMerge ([
|
||||
config = lib.mkMerge [
|
||||
commonOptions.config
|
||||
{
|
||||
# modifier = "Mod4";
|
||||
# terminal = "kitty";
|
||||
keybindings = {
|
||||
"${commonOptions.modifier}+Shift+e" = "exec \"i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'\"";
|
||||
"XF86AudioRaiseVolume" = "exec --no-startup-id ${pactl} set-sink-volume @DEFAULT_SINK@ +1%";
|
||||
"XF86AudioLowerVolume" = "exec --no-startup-id ${pactl} set-sink-volume @DEFAULT_SINK@ -1%";
|
||||
"XF86AudioMute" = "exec --no-startup-id ${pactl} set-sink-mute @DEFAULT_SINK@ toggle";
|
||||
|
|
@ -46,7 +50,7 @@ in
|
|||
"PRINT" = "exec --no-startup-id ${maim} -s | ${clipboard-copy} -selection clipboard -t image/png";
|
||||
};
|
||||
}
|
||||
]);
|
||||
];
|
||||
};
|
||||
stylix.targets.i3.enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
swayosd = lib.getExe' config.services.swayosd.package "swayosd-client";
|
||||
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
||||
|
|
@ -32,10 +36,11 @@ in
|
|||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
extraConfig = commonOptions.extraConfig;
|
||||
config = lib.mkMerge ([
|
||||
config = lib.mkMerge [
|
||||
commonOptions.config
|
||||
{
|
||||
keybindings = {
|
||||
"${commonOptions.modifier}+Shift+e" = "exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'";
|
||||
"XF86AudioRaiseVolume" = "exec --no-startup-id '${swayosd} --output-volume=raise'";
|
||||
"XF86AudioLowerVolume" = "exec --no-startup-id '${swayosd} --output-volume=lower'";
|
||||
"XF86AudioMute" = "exec --no-startup-id '${swayosd} --output-volume=mute-toggle";
|
||||
|
|
@ -45,7 +50,7 @@ in
|
|||
"PRINT" = "exec --no-startup-id ${grim} -g \"\$(${slurp})\" -t png - | ${clipboard-copy}";
|
||||
};
|
||||
}
|
||||
]);
|
||||
];
|
||||
};
|
||||
stylix.targets.sway.enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,13 @@
|
|||
{ config, lib, pkgs, inputs, user, ... }:
|
||||
|
||||
{
|
||||
imports = [];
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
user,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ];
|
||||
|
||||
networking.hostName = "pickwick";
|
||||
networking.hostId = builtins.substring 0 8 (builtins.hashString "md5" config.networking.hostName);
|
||||
|
|
@ -54,4 +60,3 @@
|
|||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,10 @@
|
|||
"defaults"
|
||||
"umask=0077"
|
||||
];
|
||||
extraArgs = [ "-n" "BOOT" ];
|
||||
extraArgs = [
|
||||
"-n"
|
||||
"BOOT"
|
||||
];
|
||||
};
|
||||
};
|
||||
swap = {
|
||||
|
|
@ -56,7 +59,10 @@
|
|||
type = "swap";
|
||||
discardPolicy = "both";
|
||||
resumeDevice = true;
|
||||
extraArgs = [ "--label" "SWAP" ];
|
||||
extraArgs = [
|
||||
"--label"
|
||||
"SWAP"
|
||||
];
|
||||
};
|
||||
};
|
||||
zfs = {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,14 @@
|
|||
# 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.
|
||||
{ inputs, config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
inputs,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
|
|
@ -10,7 +16,14 @@
|
|||
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "usbhid" "sd_mod" ];
|
||||
boot.initrd.availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"thunderbolt"
|
||||
"usb_storage"
|
||||
"usbhid"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{ config, pkgs, inputs, lib, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
fw-ectool
|
||||
|
|
|
|||
13
src/lib.nix
13
src/lib.nix
|
|
@ -1,6 +1,10 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
lib.extend (_: libprev: {
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
lib.extend (
|
||||
_: libprev: {
|
||||
custom = rec {
|
||||
# taken from https://github.com/iynaix/dotfiles/blob/main/lib.nix
|
||||
# writeShellApplication with support for completions
|
||||
|
|
@ -59,4 +63,5 @@ lib.extend (_: libprev: {
|
|||
writeShellApplicationCompletions (value // { inherit name; })
|
||||
);
|
||||
};
|
||||
})
|
||||
}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ config, pkgs, user, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
user,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs._1password.enable = true;
|
||||
programs._1password-gui = {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.custom = with lib; {
|
||||
bluetooth = {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./1password.nix
|
||||
|
|
@ -62,7 +61,9 @@
|
|||
|
||||
config = {
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
systemPackages =
|
||||
with pkgs;
|
||||
[
|
||||
curl
|
||||
eza
|
||||
neovim
|
||||
|
|
@ -73,7 +74,8 @@
|
|||
wget
|
||||
htop-vim
|
||||
keyd
|
||||
] ++ (lib.attrValues config.custom.shell.packages);
|
||||
]
|
||||
++ (lib.attrValues config.custom.shell.packages);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ config, ...}:
|
||||
|
||||
{ config, ... }:
|
||||
{
|
||||
services = {
|
||||
xserver = {
|
||||
|
|
@ -26,4 +25,10 @@
|
|||
};
|
||||
|
||||
security.polkit.enable = true;
|
||||
|
||||
custom.persist = {
|
||||
root.directories = [
|
||||
"/var/lib/AccountsService/users"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.custom = with lib; {
|
||||
fingerprint = {
|
||||
|
|
@ -11,6 +15,7 @@
|
|||
services.fprintd.enable = true;
|
||||
security.pam.services.login.fprintAuth = false;
|
||||
security.pam.services.sudo.fprintAuth = false;
|
||||
security.pam.services.i3lock.fprintAuth = false;
|
||||
custom.persist = {
|
||||
root.directories = [
|
||||
"/var/lib/fprint"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.custom = with lib; {
|
||||
nerdfonts = {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.custom = with lib; {
|
||||
gnome = {
|
||||
|
|
@ -19,7 +23,6 @@
|
|||
cheese
|
||||
epiphany
|
||||
simple-scan
|
||||
yelp
|
||||
evince
|
||||
geary
|
||||
gnome-tour
|
||||
|
|
@ -27,6 +30,12 @@
|
|||
gnome-music
|
||||
gnome-maps
|
||||
gnome-disk-utility
|
||||
gnome-characters
|
||||
tali # poker game
|
||||
iagno # go game
|
||||
hitori # sudoku game
|
||||
atomix # puzzle game
|
||||
yelp # Help view
|
||||
];
|
||||
})
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.custom = with lib; {
|
||||
kde = {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
commonSettings = {
|
||||
main = {
|
||||
|
|
@ -14,7 +17,7 @@ let
|
|||
};
|
||||
in
|
||||
{
|
||||
users.groups.keyd = {};
|
||||
users.groups.keyd = { };
|
||||
services.keyd = {
|
||||
enable = true;
|
||||
keyboards = {
|
||||
|
|
@ -24,7 +27,7 @@ in
|
|||
};
|
||||
framework = {
|
||||
ids = [ "0001:0001:a38e6885" ];
|
||||
settings = lib.mkMerge ([
|
||||
settings = lib.mkMerge [
|
||||
commonSettings
|
||||
{
|
||||
main = {
|
||||
|
|
@ -32,11 +35,11 @@ in
|
|||
leftmeta = "layer(alt)";
|
||||
};
|
||||
}
|
||||
]);
|
||||
];
|
||||
};
|
||||
normal = {
|
||||
ids = [ "413c:2107:eb8bfad1" ];
|
||||
settings = lib.mkMerge ([
|
||||
settings = lib.mkMerge [
|
||||
commonSettings
|
||||
{
|
||||
main = {
|
||||
|
|
@ -44,7 +47,7 @@ in
|
|||
leftmeta = "layer(alt)";
|
||||
};
|
||||
}
|
||||
]);
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -54,9 +57,9 @@ in
|
|||
];
|
||||
|
||||
environment.etc."libinput/local-overrides.quirks".text = lib.mkIf config.custom.touchpad.enable ''
|
||||
[Serial Keyboards]
|
||||
MatchUdevType=keyboard
|
||||
MatchName=keyd virtual keyboard
|
||||
AttrKeyboardIntegration=internal
|
||||
[Serial Keyboards]
|
||||
MatchUdevType=keyboard
|
||||
MatchName=keyd virtual keyboard
|
||||
AttrKeyboardIntegration=internal
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,8 +37,7 @@ in
|
|||
"D! /nix/var/nix/profiles/per-user/root 1755 root root 1d"
|
||||
];
|
||||
|
||||
custom.shell.packages =
|
||||
{
|
||||
custom.shell.packages = {
|
||||
# list all installed packages
|
||||
nix-list-packages = {
|
||||
text =
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
{ pkgs, config, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
stylix = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.custom = with lib; {
|
||||
touchpad = {
|
||||
enable = mkEnableOption "Enable touchpad";
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
user,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
config = lib.mkMerge [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.custom = with lib; {
|
||||
wm = {
|
||||
|
|
@ -20,10 +24,12 @@
|
|||
dmenu
|
||||
i3status
|
||||
i3lock
|
||||
i3blocks
|
||||
];
|
||||
};
|
||||
};
|
||||
programs.xss-lock = {
|
||||
enable = true;
|
||||
};
|
||||
hm.custom.wm.i3.enable = true;
|
||||
hm.custom.i3status-rust.enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.custom = with lib; {
|
||||
wm = {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
boot.supportedFilesystems.zfs = true;
|
||||
boot.zfs = {
|
||||
devNodes ="/dev/disk/by-partuuid";
|
||||
devNodes = "/dev/disk/by-partuuid";
|
||||
package = pkgs.zfs_unstable;
|
||||
requestEncryptionCredentials = true;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue