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
|
*.swp
|
||||||
|
|
||||||
|
# Generated by nix-pre-commit-hooks
|
||||||
|
/.pre-commit-config.yaml
|
||||||
|
|
|
||||||
104
flake.lock
104
flake.lock
|
|
@ -87,6 +87,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
"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,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1673956053,
|
"lastModified": 1673956053,
|
||||||
|
|
@ -139,6 +155,50 @@
|
||||||
"type": "github"
|
"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": {
|
"gnome-shell": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -265,6 +325,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"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": {
|
"locked": {
|
||||||
"lastModified": 1729691686,
|
"lastModified": 1729691686,
|
||||||
"narHash": "sha256-BAuPWW+9fa1moZTU+jFh+1cUtmsuF8asgzFwejM4wac=",
|
"narHash": "sha256-BAuPWW+9fa1moZTU+jFh+1cUtmsuF8asgzFwejM4wac=",
|
||||||
|
|
@ -306,14 +382,16 @@
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
|
"git-hooks": "git-hooks",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"impermanence": "impermanence",
|
"impermanence": "impermanence",
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
"nixpkgs-stable": "nixpkgs-stable_2",
|
||||||
"plasma-manager": "plasma-manager",
|
"plasma-manager": "plasma-manager",
|
||||||
"stylix": "stylix"
|
"stylix": "stylix",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"stylix": {
|
"stylix": {
|
||||||
|
|
@ -322,7 +400,7 @@
|
||||||
"base16-fish": "base16-fish",
|
"base16-fish": "base16-fish",
|
||||||
"base16-helix": "base16-helix",
|
"base16-helix": "base16-helix",
|
||||||
"base16-vim": "base16-vim",
|
"base16-vim": "base16-vim",
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
|
|
@ -411,6 +489,26 @@
|
||||||
"repo": "tinted-tmux",
|
"repo": "tinted-tmux",
|
||||||
"type": "github"
|
"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",
|
"root": "root",
|
||||||
|
|
|
||||||
73
flake.nix
73
flake.nix
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
description = "Nixos config flake";
|
description = "Nixos config flake";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
|
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||||
|
|
@ -17,10 +17,19 @@
|
||||||
plasma-manager.url = "github:nix-community/plasma-manager";
|
plasma-manager.url = "github:nix-community/plasma-manager";
|
||||||
plasma-manager.inputs.nixpkgs.follows = "nixpkgs";
|
plasma-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
plasma-manager.inputs.home-manager.follows = "home-manager";
|
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 =
|
outputs =
|
||||||
inputs@{ nixpkgs, self, ... }:
|
inputs@{
|
||||||
|
nixpkgs,
|
||||||
|
self,
|
||||||
|
treefmt-nix,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
pkgs = import inputs.nixpkgs {
|
pkgs = import inputs.nixpkgs {
|
||||||
|
|
@ -55,9 +64,65 @@
|
||||||
"x86_64-darwin"
|
"x86_64-darwin"
|
||||||
"aarch64-darwin"
|
"aarch64-darwin"
|
||||||
] (system: fn (createCommonArgs system));
|
] (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
|
in
|
||||||
{
|
{
|
||||||
inherit lib self;
|
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,
|
user,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./emacs.nix
|
./emacs.nix
|
||||||
./impermanence.nix
|
./impermanence.nix
|
||||||
./git.nix
|
|
||||||
./gui
|
./gui
|
||||||
./latex.nix
|
./latex.nix
|
||||||
./shell
|
./shell
|
||||||
|
|
@ -20,7 +18,6 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
|
||||||
# setup fonts for other distros, run "fc-cache -f" to refresh fonts
|
# setup fonts for other distros, run "fc-cache -f" to refresh fonts
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
|
|
@ -38,40 +35,40 @@
|
||||||
# mkdir -p ${config.home.homeDirectory}/.local/share/applications/home-manager
|
# mkdir -p ${config.home.homeDirectory}/.local/share/applications/home-manager
|
||||||
# mkdir -p ${config.home.homeDirectory}/.icons
|
# mkdir -p ${config.home.homeDirectory}/.icons
|
||||||
# ln -sf ${config.home.homeDirectory}/.nix-profile/share/icons ${config.home.homeDirectory}/.icons/nix-icons
|
# ln -sf ${config.home.homeDirectory}/.nix-profile/share/icons ${config.home.homeDirectory}/.icons/nix-icons
|
||||||
|
|
||||||
# # Check if the cached desktop files list exists
|
# # Check if the cached desktop files list exists
|
||||||
# if [ -f ${config.home.homeDirectory}/.cache/current_desktop_files.txt ]; then
|
# if [ -f ${config.home.homeDirectory}/.cache/current_desktop_files.txt ]; then
|
||||||
# current_files=$(cat ${config.home.homeDirectory}/.cache/current_desktop_files.txt)
|
# current_files=$(cat ${config.home.homeDirectory}/.cache/current_desktop_files.txt)
|
||||||
# else
|
# else
|
||||||
# current_files=""
|
# current_files=""
|
||||||
# fi
|
# fi
|
||||||
|
|
||||||
# # Symlink new desktop entries
|
# # Symlink new desktop entries
|
||||||
# ${pkgs.bash}/bin/bash -c <
|
# ${pkgs.bash}/bin/bash -c <
|
||||||
# for desktop_file in "${config.home.homeDirectory}/.nix-profile/share/applications/*.desktop"; do
|
# for desktop_file in "${config.home.homeDirectory}/.nix-profile/share/applications/*.desktop"; do
|
||||||
# if ! echo "$current_files" | grep -q "$(basename $desktop_file)"; then
|
# if ! echo "$current_files" | grep -q "$(basename $desktop_file)"; then
|
||||||
# echo $desktop_file
|
# echo $desktop_file
|
||||||
# ln -sf "$desktop_file" ${config.home.homeDirectory}/.local/share/applications/home-manager/$(basename $desktop_file)
|
# ln -sf "$desktop_file" ${config.home.homeDirectory}/.local/share/applications/home-manager/$(basename $desktop_file)
|
||||||
# fi
|
# fi
|
||||||
# done
|
# done
|
||||||
|
|
||||||
# # Update desktop database
|
# # Update desktop database
|
||||||
# ${pkgs.desktop-file-utils}/bin/update-desktop-database ${config.home.homeDirectory}/.local/share/applications
|
# ${pkgs.desktop-file-utils}/bin/update-desktop-database ${config.home.homeDirectory}/.local/share/applications
|
||||||
# '';
|
# '';
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
services.mpris-proxy.enable = true;
|
services.mpris-proxy.enable = true;
|
||||||
|
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userDirs =
|
userDirs =
|
||||||
let
|
let
|
||||||
homeDir = config.home.homeDirectory;
|
homeDir = config.home.homeDirectory;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
download = "${homeDir}/downloads";
|
download = "${homeDir}/downloads";
|
||||||
documents = "${homeDir}/documents";
|
documents = "${homeDir}/documents";
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.emacs = {
|
programs.emacs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.emacs;
|
package = pkgs.emacs;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
{ config, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
custom.persist = {
|
custom.persist = {
|
||||||
home.directories = [
|
home.directories = [
|
||||||
".config/1Password"
|
".config/1Password"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.chromium = {
|
programs.chromium = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
{ pkgs, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./1password.nix
|
./1password.nix
|
||||||
|
|
@ -39,7 +42,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# platformTheme.name = "adwaita";
|
# platformTheme.name = "adwaita";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
discord
|
discord
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,29 @@
|
||||||
{ config, pkgs, lib, user, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
user,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
vendorPath = ".config/.mozilla";
|
vendorPath = ".config/.mozilla";
|
||||||
configPath = "${vendorPath}/firefox";
|
configPath = "${vendorPath}/firefox";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.firefox-bin.overrideAttrs (o: {
|
package = pkgs.firefox-bin.overrideAttrs (o: {
|
||||||
buildCommand =
|
buildCommand =
|
||||||
o.buildCommand
|
o.buildCommand
|
||||||
+ ''
|
+ ''
|
||||||
wrapProgram "$executablePath" \
|
wrapProgram "$executablePath" \
|
||||||
--set 'HOME' '${config.xdg.configHome}' \
|
--set 'HOME' '${config.xdg.configHome}' \
|
||||||
--append-flags "${
|
--append-flags "${
|
||||||
lib.concatStringsSep " " (
|
lib.concatStringsSep " " [
|
||||||
[
|
"--name firefox"
|
||||||
"--name firefox"
|
"-P ${user}"
|
||||||
"-P ${user}"
|
# "--profile ${config.xdg.configHome}/.mozilla/${user}"
|
||||||
# "--profile ${config.xdg.configHome}/.mozilla/${user}"
|
]
|
||||||
]
|
|
||||||
)
|
|
||||||
}"
|
}"
|
||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
{ pkgs, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
programs.foot = {
|
programs.foot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,13 @@
|
||||||
{ lib, pkgs, config, ... }:
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
pop-launcher
|
pop-launcher
|
||||||
gnomeExtensions.pop-shell
|
gnomeExtensions.pop-shell
|
||||||
gnomeExtensions.tray-icons-reloaded
|
gnomeExtensions.tray-icons-reloaded
|
||||||
gnomeExtensions.hibernate-status-button
|
gnomeExtensions.hibernate-status-button
|
||||||
gnomeExtensions.appindicator
|
gnomeExtensions.appindicator
|
||||||
|
|
@ -16,8 +20,8 @@
|
||||||
};
|
};
|
||||||
"org/gnome/shell" = {
|
"org/gnome/shell" = {
|
||||||
disable-user-extensions = false;
|
disable-user-extensions = false;
|
||||||
enabled-extensions = [
|
enabled-extensions = [
|
||||||
"pop-shell@system76.com"
|
"pop-shell@system76.com"
|
||||||
"keyd"
|
"keyd"
|
||||||
"appindicatorsupport@rgcjonas.gmail.com"
|
"appindicatorsupport@rgcjonas.gmail.com"
|
||||||
# "just-perfection-desktop@just-perfection"
|
# "just-perfection-desktop@just-perfection"
|
||||||
|
|
@ -30,22 +34,25 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"org/gnome/desktop/wm/preferences" = {
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
num-workspaces = 10;
|
num-workspaces = 10;
|
||||||
};
|
};
|
||||||
"org/gnome/desktop/wm/keybindings" = {
|
"org/gnome/desktop/wm/keybindings" = {
|
||||||
minimize = [];
|
minimize = [ ];
|
||||||
lock = [];
|
lock = [ ];
|
||||||
switch-to-workspace-left = [];
|
switch-to-workspace-left = [ ];
|
||||||
switch-to-workspace-right = [];
|
switch-to-workspace-right = [ ];
|
||||||
maximize = [ "<Super>f" ];
|
maximize = [ "<Super>f" ];
|
||||||
unmaximize = [ "<Super><Shift>f" ];
|
unmaximize = [ "<Super><Shift>f" ];
|
||||||
move-to-monitor-up = [];
|
move-to-monitor-up = [ ];
|
||||||
move-to-monitor-down = [];
|
move-to-monitor-down = [ ];
|
||||||
move-to-monitor-left = [];
|
move-to-monitor-left = [ ];
|
||||||
move-to-monitor-right = [];
|
move-to-monitor-right = [ ];
|
||||||
move-to-workspace-down = [];
|
move-to-workspace-down = [ ];
|
||||||
move-to-workspace-up = [];
|
move-to-workspace-up = [ ];
|
||||||
close = [ "<Super><Shift>q" "<Alt>F4" ];
|
close = [
|
||||||
|
"<Super><Shift>q"
|
||||||
|
"<Alt>F4"
|
||||||
|
];
|
||||||
switch-to-workspace-1 = [ "<Super>1" ];
|
switch-to-workspace-1 = [ "<Super>1" ];
|
||||||
switch-to-workspace-2 = [ "<Super>2" ];
|
switch-to-workspace-2 = [ "<Super>2" ];
|
||||||
switch-to-workspace-3 = [ "<Super>3" ];
|
switch-to-workspace-3 = [ "<Super>3" ];
|
||||||
|
|
@ -68,24 +75,27 @@
|
||||||
move-to-workspace-10 = [ "<Super><Shift>0" ];
|
move-to-workspace-10 = [ "<Super><Shift>0" ];
|
||||||
};
|
};
|
||||||
"org/gnome/shell/keybindings" = {
|
"org/gnome/shell/keybindings" = {
|
||||||
toggle-quick-settings = [];
|
toggle-quick-settings = [ ];
|
||||||
switch-to-application-1 = [];
|
switch-to-application-1 = [ ];
|
||||||
switch-to-application-2 = [];
|
switch-to-application-2 = [ ];
|
||||||
switch-to-application-3 = [];
|
switch-to-application-3 = [ ];
|
||||||
switch-to-application-4 = [];
|
switch-to-application-4 = [ ];
|
||||||
switch-to-application-5 = [];
|
switch-to-application-5 = [ ];
|
||||||
switch-to-application-6 = [];
|
switch-to-application-6 = [ ];
|
||||||
switch-to-application-7 = [];
|
switch-to-application-7 = [ ];
|
||||||
switch-to-application-8 = [];
|
switch-to-application-8 = [ ];
|
||||||
switch-to-application-9 = [];
|
switch-to-application-9 = [ ];
|
||||||
show-screenshot-ui = [ "Print" "<Super>o" ];
|
show-screenshot-ui = [
|
||||||
|
"Print"
|
||||||
|
"<Super>o"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||||
video-out = [ ];
|
video-out = [ ];
|
||||||
rotate-video-lock-static = [ "XF88RotationLockToggle" ];
|
rotate-video-lock-static = [ "XF88RotationLockToggle" ];
|
||||||
custom-keybindings = [
|
custom-keybindings = [
|
||||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal/"
|
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal/"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
|
||||||
binding = "<Super>Return";
|
binding = "<Super>Return";
|
||||||
|
|
@ -94,32 +104,32 @@
|
||||||
name = "Open Terminal";
|
name = "Open Terminal";
|
||||||
};
|
};
|
||||||
"org/gnome/mutter/keybindings" = {
|
"org/gnome/mutter/keybindings" = {
|
||||||
toggle-tiled-left = [];
|
toggle-tiled-left = [ ];
|
||||||
toggle-tiled-right = [];
|
toggle-tiled-right = [ ];
|
||||||
switch-monitor = [ "XF86Display" ];
|
switch-monitor = [ "XF86Display" ];
|
||||||
};
|
};
|
||||||
"org/gnome/shell/extensions/pop-shell" = {
|
"org/gnome/shell/extensions/pop-shell" = {
|
||||||
activate-launcher = [ "<Super>Space" ];
|
activate-launcher = [ "<Super>Space" ];
|
||||||
toggle-floating = [ "<Super>p" ];
|
toggle-floating = [ "<Super>p" ];
|
||||||
tile-enter = ["<Super>r"];
|
tile-enter = [ "<Super>r" ];
|
||||||
tile-by-default = true;
|
tile-by-default = true;
|
||||||
tile-orientation = [ "<Super>v" ];
|
tile-orientation = [ "<Super>v" ];
|
||||||
toggle-stacking-global = [ "<Super>s" ];
|
toggle-stacking-global = [ "<Super>s" ];
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/background" = {
|
||||||
|
picture-uri-dark = "file://${pkgs.nixos-artwork.wallpapers.nineish-dark-gray.src}";
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
show-battery-percentage = true;
|
||||||
|
clock-format = "12h";
|
||||||
|
};
|
||||||
|
"org/gnome/settings-daemon/plugins/power" = {
|
||||||
|
ambient-enabled = false;
|
||||||
|
};
|
||||||
|
"org/gtk/Settings/FileChooser" = {
|
||||||
|
clock-format = "12h";
|
||||||
};
|
};
|
||||||
"org/gnome/desktop/background" = {
|
|
||||||
picture-uri-dark = "file://${pkgs.nixos-artwork.wallpapers.nineish-dark-gray.src}";
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/interface" = {
|
|
||||||
color-scheme = "prefer-dark";
|
|
||||||
show-battery-percentage = true;
|
|
||||||
clock-format = "12h";
|
|
||||||
};
|
|
||||||
"org/gnome/settings-daemon/plugins/power" = {
|
|
||||||
ambient-enabled = false;
|
|
||||||
};
|
|
||||||
"org/gtk/Settings/FileChooser" = {
|
|
||||||
clock-format = "12h";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
custom.persist = {
|
custom.persist = {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ pkgs, config, lib, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
bar = {
|
bar = {
|
||||||
position = "bottom";
|
position = "bottom";
|
||||||
|
|
@ -35,14 +39,16 @@ in
|
||||||
blocks = [
|
blocks = [
|
||||||
{
|
{
|
||||||
block = "sound";
|
block = "sound";
|
||||||
click = [{
|
click = [
|
||||||
button = "left";
|
{
|
||||||
cmd = lib.getExe' pkgs.pwvucontrol "pwvucontrol";
|
button = "left";
|
||||||
}];
|
cmd = lib.getExe' pkgs.pwvucontrol "pwvucontrol";
|
||||||
|
}
|
||||||
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
block = "net";
|
block = "net";
|
||||||
format = " $icon {$signal_strength|Wired connection} ";
|
format = " $icon {$signal_strength|Wired connection} ";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
block = "weather";
|
block = "weather";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,11 @@
|
||||||
{ inputs, lib, pkgs, config, stdenv, ... }:
|
{
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
stdenv,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
kdePackages.krohnkite
|
kdePackages.krohnkite
|
||||||
|
|
@ -29,7 +35,7 @@
|
||||||
"Screensaver"
|
"Screensaver"
|
||||||
"Meta+Ctrl+Alt+L"
|
"Meta+Ctrl+Alt+L"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
kwin = {
|
kwin = {
|
||||||
"Window Close" = [
|
"Window Close" = [
|
||||||
"Alt+F4"
|
"Alt+F4"
|
||||||
|
|
@ -43,8 +49,8 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
plasmashell = {
|
plasmashell = {
|
||||||
"activate task manager entry 1" = [];
|
"activate task manager entry 1" = [ ];
|
||||||
"activate task manager entry 2" = [];
|
"activate task manager entry 2" = [ ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -66,7 +72,7 @@
|
||||||
scripts.polonium.enable = false;
|
scripts.polonium.enable = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
configFile ={
|
configFile = {
|
||||||
kwinrc = {
|
kwinrc = {
|
||||||
Desktops.Number = {
|
Desktops.Number = {
|
||||||
value = 1;
|
value = 1;
|
||||||
|
|
@ -83,4 +89,3 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,15 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
xdg.configFile."keyd/app.conf" = {
|
xdg.configFile."keyd/app.conf" = {
|
||||||
text = ''
|
text = ''
|
||||||
[firefox]
|
[firefox]
|
||||||
|
|
||||||
control.p = up
|
control.p = up
|
||||||
control.n = down
|
control.n = down
|
||||||
control.e = end
|
control.e = end
|
||||||
control.a = home
|
control.a = home
|
||||||
control.shift.p = macro(C-S-p)
|
control.shift.p = macro(C-S-p)
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file.".local/share/gnome-shell/extensions/keyd" = {
|
home.file.".local/share/gnome-shell/extensions/keyd" = {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
{ pkgs, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
{ config, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
skypeforlinux
|
skypeforlinux
|
||||||
];
|
];
|
||||||
|
|
||||||
custom.persist = {
|
custom.persist = {
|
||||||
home.directories = [
|
home.directories = [
|
||||||
".config/skypeforlinux"
|
".config/skypeforlinux"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
{ config, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
slack
|
slack
|
||||||
];
|
];
|
||||||
|
|
||||||
custom.persist = {
|
custom.persist = {
|
||||||
home.directories = [
|
home.directories = [
|
||||||
".config/Slack"
|
".config/Slack"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,16 @@
|
||||||
{ pkgs, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
spotify
|
spotify
|
||||||
];
|
];
|
||||||
|
|
||||||
custom.persist = {
|
custom.persist = {
|
||||||
home.directories = [
|
home.directories = [
|
||||||
".config/spotify"
|
".config/spotify"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
teams-for-linux
|
teams-for-linux
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
{ config, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -8,7 +11,7 @@
|
||||||
stylix.targets.vscode.enable = false;
|
stylix.targets.vscode.enable = false;
|
||||||
|
|
||||||
custom.persist = {
|
custom.persist = {
|
||||||
home.directories = [
|
home.directories = [
|
||||||
".config/Code"
|
".config/Code"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.wezterm = {
|
programs.wezterm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
_:
|
_: {
|
||||||
|
|
||||||
{
|
|
||||||
programs.zathura = {
|
programs.zathura = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,20 @@
|
||||||
{ config, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
zoom = pkgs.zoom-us.overrideAttrs (attrs: {
|
zoom = pkgs.zoom-us.overrideAttrs (attrs: {
|
||||||
nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ [ pkgs.bbe ];
|
nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.bbe ];
|
||||||
postFixup = ''
|
postFixup =
|
||||||
|
''
|
||||||
cp $out/opt/zoom/zoom .
|
cp $out/opt/zoom/zoom .
|
||||||
bbe -e 's/\0manjaro\0/\0nixos\0\0\0/' < zoom > $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
|
sed -i 's|Exec=|Exec=env XDG_CURRENT_DESKTOP="gnome" |' $out/share/applications/Zoom.desktop
|
||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
@ -17,7 +23,7 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
custom.persist = {
|
custom.persist = {
|
||||||
home.directories = [
|
home.directories = [
|
||||||
".zoom"
|
".zoom"
|
||||||
];
|
];
|
||||||
home.files = [
|
home.files = [
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
# note: this file exists just to define options for home-manager,
|
# note: this file exists just to define options for home-manager,
|
||||||
# impermanence is not actually used in standalone home-manager as
|
# impermanence is not actually used in standalone home-manager as
|
||||||
# it doesn't serve much utility on legacy distros
|
# it doesn't serve much utility on legacy distros
|
||||||
{ lib, user, config, ... }:
|
{
|
||||||
|
lib,
|
||||||
|
user,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
cfg = config.custom.persist;
|
cfg = config.custom.persist;
|
||||||
in
|
in
|
||||||
|
|
@ -35,14 +39,14 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
# home.persistence = {
|
# home.persistence = {
|
||||||
# "/persist/home/${user}" = {
|
# "/persist/home/${user}" = {
|
||||||
# files = cfg.home.files;
|
# files = cfg.home.files;
|
||||||
# directories = cfg.home.directories;
|
# directories = cfg.home.directories;
|
||||||
# allowOther = false;
|
# allowOther = false;
|
||||||
# };
|
# };
|
||||||
# "/cache/home/${user}" = {
|
# "/cache/home/${user}" = {
|
||||||
# files = cfg.home.cache.files;
|
# files = cfg.home.cache.files;
|
||||||
# directories = cfg.home.cache.directories;
|
# directories = cfg.home.cache.directories;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
texlive.combined.scheme-full
|
texlive.combined.scheme-full
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,27 @@
|
||||||
{ lib, pkgs, config, ... }:
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
programs.bash.enable = true;
|
programs.bash.enable = true;
|
||||||
programs.bash.enableVteIntegration = true;
|
programs.bash.enableVteIntegration = true;
|
||||||
programs.bash.bashrcExtra = lib.mkAfter ''
|
programs.bash.bashrcExtra = lib.mkAfter ''
|
||||||
if [ "$term" != "dumb" ] || [ -n "$inside_emacs" ]; then
|
if [ "$term" != "dumb" ] || [ -n "$inside_emacs" ]; then
|
||||||
prompt_color="1;32m"
|
prompt_color="1;32m"
|
||||||
if [ -n "$inside_emacs" ]; then
|
if [ -n "$inside_emacs" ]; then
|
||||||
# emacs term mode doesn't support xterm title escape sequence (\e]0;)
|
# emacs term mode doesn't support xterm title escape sequence (\e]0;)
|
||||||
PS1="\n\[\033[$prompt_color\][\h \w]\\$\[\033[0m\] "
|
PS1="\n\[\033[$prompt_color\][\h \w]\\$\[\033[0m\] "
|
||||||
else
|
else
|
||||||
PS1="\[\e[32m\][\[\e[m\]\[\e[31m\]\u\[\e[m\]\[\e[33m\]@\[\e[m\]\[\e[32m\]\h\[\e[m\]:\[\e[36m\]\w\[\e[m\]\[\e[32m\]]\[\e[m\]\[\e[33m\]\\$\[\e[m\] "
|
PS1="\[\e[32m\][\[\e[m\]\[\e[31m\]\u\[\e[m\]\[\e[33m\]@\[\e[m\]\[\e[32m\]\h\[\e[m\]:\[\e[36m\]\w\[\e[m\]\[\e[32m\]]\[\e[m\]\[\e[33m\]\\$\[\e[m\] "
|
||||||
# PS1="\n\[\033[$prompt_color\][\[\e]0;\h: \w\a\]\u@\h:\w]\\$\[\033[0m\] "
|
# PS1="\n\[\033[$prompt_color\][\[\e]0;\h: \w\a\]\u@\h:\w]\\$\[\033[0m\] "
|
||||||
fi
|
fi
|
||||||
if test "$term" = "xterm"; then
|
if test "$term" = "xterm"; then
|
||||||
PS1="\[\033]2;\h:\u:\w\007\]$PS1"
|
PS1="\[\033]2;\h:\u:\w\007\]$PS1"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
custom.persist = {
|
custom.persist = {
|
||||||
home.files = [
|
home.files = [
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,63 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./bash.nix
|
./bash.nix
|
||||||
./direnv.nix
|
./direnv.nix
|
||||||
./fzf.nix
|
./git.nix
|
||||||
./lazygit.nix
|
./lazygit.nix
|
||||||
|
./nix.nix
|
||||||
./ripgrep.nix
|
./ripgrep.nix
|
||||||
./shell.nix
|
./shell.nix
|
||||||
./tmux
|
./tmux
|
||||||
./zoxide.nix
|
./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; [
|
home.packages = with pkgs; [
|
||||||
git
|
git
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.lazygit = {
|
programs.lazygit = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
reporting = "off";
|
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; {
|
options.custom = with lib; {
|
||||||
shell = {
|
shell = {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
tmux
|
tmux
|
||||||
|
|
@ -13,5 +12,5 @@
|
||||||
home.directories = [
|
home.directories = [
|
||||||
".tmux"
|
".tmux"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.shellAliases = {
|
home.shellAliases = {
|
||||||
z = "zoxide query -i";
|
z = "zoxide query -i";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
{
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = false;
|
enable = false;
|
||||||
};
|
};
|
||||||
|
|
@ -10,7 +13,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
custom.persist = {
|
custom.persist = {
|
||||||
home.directories = [
|
home.directories = [
|
||||||
".ssh"
|
".ssh"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
vim-full
|
vim-full
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
options.custom = with lib; {
|
options.custom = with lib; {
|
||||||
wm = {
|
wm = {
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,19 @@
|
||||||
{ config
|
{
|
||||||
, pkgs
|
config,
|
||||||
, lib
|
pkgs,
|
||||||
, menu
|
lib,
|
||||||
, terminal
|
menu,
|
||||||
, light ? lib.getExe' pkgs.brightnessctl "brightnessctl"
|
terminal,
|
||||||
, playerctl ? lib.getExe' pkgs.playerctl "playerctl"
|
light ? lib.getExe' pkgs.brightnessctl "brightnessctl",
|
||||||
, sound ? "pactl"
|
playerctl ? lib.getExe' pkgs.playerctl "playerctl",
|
||||||
, alt ? "Mod1"
|
sound ? "pactl",
|
||||||
, modifier ? "Mod4"
|
alt ? "Mod1",
|
||||||
, extraWindowOptions ? { }
|
modifier ? "Mod4",
|
||||||
, extraFocusOptions ? { }
|
extraWindowOptions ? { },
|
||||||
, extraModes ? { }
|
extraFocusOptions ? { },
|
||||||
, extraConfig ? ""
|
extraModes ? { },
|
||||||
, workspaces ? [
|
extraConfig ? "",
|
||||||
|
workspaces ? [
|
||||||
{
|
{
|
||||||
ws = 1;
|
ws = 1;
|
||||||
name = "1";
|
name = "1";
|
||||||
|
|
@ -53,17 +54,24 @@
|
||||||
ws = 0;
|
ws = 0;
|
||||||
name = "10";
|
name = "10";
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
, ...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
powerManagementMode = " : Screen [l]ock, [e]xit, [s]uspend, [h]ibernate, [R]eboot, [S]hutdown";
|
powerManagementMode = " : Screen [l]ock, [e]xit, [s]uspend, [h]ibernate, [R]eboot, [S]hutdown";
|
||||||
resizeMode = " : [h] , [j] , [k] , [l] ";
|
resizeMode = " : [h] , [j] , [k] , [l] ";
|
||||||
|
|
||||||
# Helpers
|
# Helpers
|
||||||
mapDirection = { prefixKey ? null, leftCmd, downCmd, upCmd, rightCmd }:
|
mapDirection =
|
||||||
with lib.strings; {
|
{
|
||||||
|
prefixKey ? null,
|
||||||
|
leftCmd,
|
||||||
|
downCmd,
|
||||||
|
upCmd,
|
||||||
|
rightCmd,
|
||||||
|
}:
|
||||||
|
with lib.strings;
|
||||||
|
{
|
||||||
# Arrow keys
|
# Arrow keys
|
||||||
"${optionalString (prefixKey != null) "${prefixKey}+"}Left" = leftCmd;
|
"${optionalString (prefixKey != null) "${prefixKey}+"}Left" = leftCmd;
|
||||||
"${optionalString (prefixKey != null) "${prefixKey}+"}Down" = downCmd;
|
"${optionalString (prefixKey != null) "${prefixKey}+"}Down" = downCmd;
|
||||||
|
|
@ -76,7 +84,11 @@ let
|
||||||
"${optionalString (prefixKey != null) "${prefixKey}+"}l" = rightCmd;
|
"${optionalString (prefixKey != null) "${prefixKey}+"}l" = rightCmd;
|
||||||
};
|
};
|
||||||
|
|
||||||
mapDirectionDefault = { prefixKey ? null, prefixCmd }:
|
mapDirectionDefault =
|
||||||
|
{
|
||||||
|
prefixKey ? null,
|
||||||
|
prefixCmd,
|
||||||
|
}:
|
||||||
(mapDirection {
|
(mapDirection {
|
||||||
inherit prefixKey;
|
inherit prefixKey;
|
||||||
leftCmd = "${prefixCmd} left";
|
leftCmd = "${prefixCmd} left";
|
||||||
|
|
@ -85,21 +97,32 @@ let
|
||||||
rightCmd = "${prefixCmd} right";
|
rightCmd = "${prefixCmd} right";
|
||||||
});
|
});
|
||||||
|
|
||||||
mapWorkspacesStr = with builtins;
|
mapWorkspacesStr =
|
||||||
|
with builtins;
|
||||||
with lib.strings;
|
with lib.strings;
|
||||||
{ workspaces, prefixKey ? null, prefixCmd }:
|
{
|
||||||
(concatStringsSep "\n" (map
|
workspaces,
|
||||||
({ ws, name }:
|
prefixKey ? null,
|
||||||
''
|
prefixCmd,
|
||||||
bindsym ${optionalString (prefixKey != null) "${prefixKey}+"}${
|
}:
|
||||||
toString ws
|
(concatStringsSep "\n" (
|
||||||
} ${prefixCmd} "${name}"'')
|
map (
|
||||||
workspaces));
|
{
|
||||||
|
ws,
|
||||||
|
name,
|
||||||
|
}:
|
||||||
|
''bindsym ${
|
||||||
|
optionalString (prefixKey != null) "${prefixKey}+"
|
||||||
|
}${toString ws} ${prefixCmd} "${name}"''
|
||||||
|
) workspaces
|
||||||
|
));
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit modifier terminal;
|
inherit modifier terminal;
|
||||||
|
|
||||||
helpers = { inherit mapDirection mapDirectionDefault mapWorkspacesStr; };
|
helpers = {
|
||||||
|
inherit mapDirection mapDirectionDefault mapWorkspacesStr;
|
||||||
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
inherit modifier terminal;
|
inherit modifier terminal;
|
||||||
|
|
@ -116,7 +139,7 @@ in
|
||||||
"${modifier}+Shift+c" = "reload";
|
"${modifier}+Shift+c" = "reload";
|
||||||
"${modifier}+Shift+r" = "restart";
|
"${modifier}+Shift+r" = "restart";
|
||||||
"${modifier}+Shift+q" = "kill";
|
"${modifier}+Shift+q" = "kill";
|
||||||
"${modifier}+Shift+e" = "exit";
|
# "${modifier}+Shift+e" = "exit";
|
||||||
"${alt}+F4" = "kill";
|
"${alt}+F4" = "kill";
|
||||||
|
|
||||||
"${modifier}+h" = "focus left";
|
"${modifier}+h" = "focus left";
|
||||||
|
|
@ -143,10 +166,10 @@ in
|
||||||
"XF86MonBrightnessUp" = "exec --no-startup-id ${light} s +10%";
|
"XF86MonBrightnessUp" = "exec --no-startup-id ${light} s +10%";
|
||||||
"XF86MonBrightnessDown" = "exec --no-startup-id ${light} s 10%-";
|
"XF86MonBrightnessDown" = "exec --no-startup-id ${light} s 10%-";
|
||||||
|
|
||||||
"XF86AudioPlay" = "exec --no-startup-id ${playerctl} play-pause";
|
"XF86AudioPlay" = "exec --no-startup-id ${playerctl} play-pause";
|
||||||
"XF86AudioPause" = "exec --no-startup-id ${playerctl} play-pause";
|
"XF86AudioPause" = "exec --no-startup-id ${playerctl} play-pause";
|
||||||
"XF86AudioNext" = "exec --no-startup-id ${playerctl} next";
|
"XF86AudioNext" = "exec --no-startup-id ${playerctl} next";
|
||||||
"XF86AudioPrev" = "exec --no-startup-id ${playerctl} previous";
|
"XF86AudioPrev" = "exec --no-startup-id ${playerctl} previous";
|
||||||
};
|
};
|
||||||
|
|
||||||
modes =
|
modes =
|
||||||
|
|
@ -157,12 +180,14 @@ in
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
${resizeMode} = (mapDirection {
|
${resizeMode} =
|
||||||
leftCmd = "resize shrink width 10px or 10ppt";
|
(mapDirection {
|
||||||
downCmd = "resize grow height 10px or 10ppt";
|
leftCmd = "resize shrink width 10px or 10ppt";
|
||||||
upCmd = "resize shrink height 10px or 10ppt";
|
downCmd = "resize grow height 10px or 10ppt";
|
||||||
rightCmd = "resize grow width 10px or 10ppt";
|
upCmd = "resize shrink height 10px or 10ppt";
|
||||||
}) // exitMode;
|
rightCmd = "resize grow width 10px or 10ppt";
|
||||||
|
})
|
||||||
|
// exitMode;
|
||||||
${powerManagementMode} = {
|
${powerManagementMode} = {
|
||||||
l = "mode default, exec loginctl lock-session";
|
l = "mode default, exec loginctl lock-session";
|
||||||
e = "mode default, exec loginctl terminate-session $XDG_SESSION_ID";
|
e = "mode default, exec loginctl terminate-session $XDG_SESSION_ID";
|
||||||
|
|
@ -171,7 +196,8 @@ in
|
||||||
"Shift+r" = "mode default, exec systemctl reboot";
|
"Shift+r" = "mode default, exec systemctl reboot";
|
||||||
"Shift+s" = "mode default, exec systemctl poweroff";
|
"Shift+s" = "mode default, exec systemctl poweroff";
|
||||||
} // exitMode;
|
} // exitMode;
|
||||||
} // extraModes;
|
}
|
||||||
|
// extraModes;
|
||||||
|
|
||||||
workspaceAutoBackAndForth = true;
|
workspaceAutoBackAndForth = true;
|
||||||
workspaceLayout = "tabbed";
|
workspaceLayout = "tabbed";
|
||||||
|
|
@ -182,14 +208,16 @@ in
|
||||||
titlebar = false;
|
titlebar = false;
|
||||||
} // extraWindowOptions;
|
} // extraWindowOptions;
|
||||||
|
|
||||||
focus = { followMouse = false; } // extraFocusOptions;
|
focus = {
|
||||||
};
|
followMouse = false;
|
||||||
|
} // extraFocusOptions;
|
||||||
|
};
|
||||||
|
|
||||||
# Until this issue is fixed we need to map workspaces directly to config file
|
# Until this issue is fixed we need to map workspaces directly to config file
|
||||||
# https://github.com/nix-community/home-manager/issues/695
|
# https://github.com/nix-community/home-manager/issues/695
|
||||||
extraConfig =
|
extraConfig =
|
||||||
let
|
let
|
||||||
workspaceStr = (builtins.concatStringsSep "\n" [
|
workspaceStr = builtins.concatStringsSep "\n" [
|
||||||
(mapWorkspacesStr {
|
(mapWorkspacesStr {
|
||||||
inherit workspaces;
|
inherit workspaces;
|
||||||
prefixKey = modifier;
|
prefixKey = modifier;
|
||||||
|
|
@ -200,7 +228,7 @@ in
|
||||||
prefixKey = "${modifier}+Shift";
|
prefixKey = "${modifier}+Shift";
|
||||||
prefixCmd = "move container to workspace number";
|
prefixCmd = "move container to workspace number";
|
||||||
})
|
})
|
||||||
]);
|
];
|
||||||
in
|
in
|
||||||
''
|
''
|
||||||
${workspaceStr}
|
${workspaceStr}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
||||||
maim = lib.getExe' pkgs.maim "maim";
|
maim = lib.getExe' pkgs.maim "maim";
|
||||||
|
|
@ -31,22 +34,23 @@ in
|
||||||
xsession.windowManager.i3 = {
|
xsession.windowManager.i3 = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = commonOptions.extraConfig;
|
extraConfig = commonOptions.extraConfig;
|
||||||
config = lib.mkMerge ([
|
config = lib.mkMerge [
|
||||||
commonOptions.config
|
commonOptions.config
|
||||||
{
|
{
|
||||||
# modifier = "Mod4";
|
# modifier = "Mod4";
|
||||||
# terminal = "kitty";
|
# terminal = "kitty";
|
||||||
keybindings = {
|
keybindings = {
|
||||||
"XF86AudioRaiseVolume" = "exec --no-startup-id ${pactl} set-sink-volume @DEFAULT_SINK@ +1%";
|
"${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'\"";
|
||||||
"XF86AudioLowerVolume" = "exec --no-startup-id ${pactl} set-sink-volume @DEFAULT_SINK@ -1%";
|
"XF86AudioRaiseVolume" = "exec --no-startup-id ${pactl} set-sink-volume @DEFAULT_SINK@ +1%";
|
||||||
"XF86AudioMute" = "exec --no-startup-id ${pactl} set-sink-mute @DEFAULT_SINK@ toggle";
|
"XF86AudioLowerVolume" = "exec --no-startup-id ${pactl} set-sink-volume @DEFAULT_SINK@ -1%";
|
||||||
"XF86AudioMicMute" = "exec --no-startup-id ${pactl} set-source-mute @DEFAULT_SOURCE@ toggle";
|
"XF86AudioMute" = "exec --no-startup-id ${pactl} set-sink-mute @DEFAULT_SINK@ toggle";
|
||||||
"${commonOptions.modifier}+o" = "exec --no-startup-id ${maim} -s ~/pictures/screenshots/$(date +%Y-%m-%d-%H-%M-%S).png";
|
"XF86AudioMicMute" = "exec --no-startup-id ${pactl} set-source-mute @DEFAULT_SOURCE@ toggle";
|
||||||
|
"${commonOptions.modifier}+o" = "exec --no-startup-id ${maim} -s ~/pictures/screenshots/$(date +%Y-%m-%d-%H-%M-%S).png";
|
||||||
"${commonOptions.modifier}+Shift+o" = "exec --no-startup-id ${maim} -s | ${clipboard-copy} -selection clipboard -t image/png";
|
"${commonOptions.modifier}+Shift+o" = "exec --no-startup-id ${maim} -s | ${clipboard-copy} -selection clipboard -t image/png";
|
||||||
"PRINT" = "exec --no-startup-id ${maim} -s | ${clipboard-copy} -selection clipboard -t image/png";
|
"PRINT" = "exec --no-startup-id ${maim} -s | ${clipboard-copy} -selection clipboard -t image/png";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
]);
|
];
|
||||||
};
|
};
|
||||||
stylix.targets.i3.enable = true;
|
stylix.targets.i3.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
swayosd = lib.getExe' config.services.swayosd.package "swayosd-client";
|
swayosd = lib.getExe' config.services.swayosd.package "swayosd-client";
|
||||||
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
||||||
|
|
@ -32,20 +36,21 @@ in
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = commonOptions.extraConfig;
|
extraConfig = commonOptions.extraConfig;
|
||||||
config = lib.mkMerge ([
|
config = lib.mkMerge [
|
||||||
commonOptions.config
|
commonOptions.config
|
||||||
{
|
{
|
||||||
keybindings = {
|
keybindings = {
|
||||||
"XF86AudioRaiseVolume" = "exec --no-startup-id '${swayosd} --output-volume=raise'";
|
"${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'";
|
||||||
"XF86AudioLowerVolume" = "exec --no-startup-id '${swayosd} --output-volume=lower'";
|
"XF86AudioRaiseVolume" = "exec --no-startup-id '${swayosd} --output-volume=raise'";
|
||||||
"XF86AudioMute" = "exec --no-startup-id '${swayosd} --output-volume=mute-toggle";
|
"XF86AudioLowerVolume" = "exec --no-startup-id '${swayosd} --output-volume=lower'";
|
||||||
"XF86AudioMicMute" = "exec --no-startup-id '${pactl} set-source-mute @DEFAULT_SOURCE@ toggle'";
|
"XF86AudioMute" = "exec --no-startup-id '${swayosd} --output-volume=mute-toggle";
|
||||||
"${commonOptions.modifier}+o" = "exec --no-startup-id ${grim} -g \"\$(${slurp})\" ~/pictures/screenshots/$(date +%Y-%m-%d-%H-%M-%S).png";
|
"XF86AudioMicMute" = "exec --no-startup-id '${pactl} set-source-mute @DEFAULT_SOURCE@ toggle'";
|
||||||
|
"${commonOptions.modifier}+o" = "exec --no-startup-id ${grim} -g \"\$(${slurp})\" ~/pictures/screenshots/$(date +%Y-%m-%d-%H-%M-%S).png";
|
||||||
"${commonOptions.modifier}+Shift+o" = "exec --no-startup-id ${grim} -g \"\$(${slurp})\" -t png - | ${clipboard-copy}";
|
"${commonOptions.modifier}+Shift+o" = "exec --no-startup-id ${grim} -g \"\$(${slurp})\" -t png - | ${clipboard-copy}";
|
||||||
"PRINT" = "exec --no-startup-id ${grim} -g \"\$(${slurp})\" -t png - | ${clipboard-copy}";
|
"PRINT" = "exec --no-startup-id ${grim} -g \"\$(${slurp})\" -t png - | ${clipboard-copy}";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
]);
|
];
|
||||||
};
|
};
|
||||||
stylix.targets.sway.enable = true;
|
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.hostName = "pickwick";
|
||||||
networking.hostId = builtins.substring 0 8 (builtins.hashString "md5" config.networking.hostName);
|
networking.hostId = builtins.substring 0 8 (builtins.hashString "md5" config.networking.hostName);
|
||||||
|
|
@ -44,14 +50,13 @@
|
||||||
};
|
};
|
||||||
gnome = {
|
gnome = {
|
||||||
enable = true;
|
enable = true;
|
||||||
stylix = true;
|
stylix = true;
|
||||||
};
|
};
|
||||||
kde = {
|
kde = {
|
||||||
enable = false;
|
enable = false;
|
||||||
stylix = true;
|
stylix = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.11";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
device ? throw "Set this to your disk device, e.g. /dev/sda",
|
device ? throw "Set this to your disk device, e.g. /dev/sda",
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
nodev = {
|
nodev = {
|
||||||
|
|
@ -47,26 +47,32 @@
|
||||||
"defaults"
|
"defaults"
|
||||||
"umask=0077"
|
"umask=0077"
|
||||||
];
|
];
|
||||||
extraArgs = [ "-n" "BOOT" ];
|
extraArgs = [
|
||||||
|
"-n"
|
||||||
|
"BOOT"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
swap = {
|
swap = {
|
||||||
size = "108G";
|
size = "108G";
|
||||||
content = {
|
content = {
|
||||||
type = "swap";
|
type = "swap";
|
||||||
discardPolicy = "both";
|
discardPolicy = "both";
|
||||||
resumeDevice = true;
|
resumeDevice = true;
|
||||||
extraArgs = [ "--label" "SWAP" ];
|
extraArgs = [
|
||||||
};
|
"--label"
|
||||||
};
|
"SWAP"
|
||||||
zfs = {
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
zfs = {
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "zfs";
|
type = "zfs";
|
||||||
pool = "zroot";
|
pool = "zroot";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
zpool = {
|
zpool = {
|
||||||
|
|
@ -81,8 +87,8 @@
|
||||||
rootFsOptions = {
|
rootFsOptions = {
|
||||||
compression = "zstd";
|
compression = "zstd";
|
||||||
acltype = "posixacl";
|
acltype = "posixacl";
|
||||||
xattr = "sa";
|
xattr = "sa";
|
||||||
mountpoint = "none";
|
mountpoint = "none";
|
||||||
encryption = "aes-256-gcm";
|
encryption = "aes-256-gcm";
|
||||||
keyformat = "passphrase";
|
keyformat = "passphrase";
|
||||||
keylocation = "prompt";
|
keylocation = "prompt";
|
||||||
|
|
@ -105,7 +111,7 @@
|
||||||
persist = {
|
persist = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
options.mountpoint = "legacy";
|
options.mountpoint = "legacy";
|
||||||
mountpoint = "/persist";
|
mountpoint = "/persist";
|
||||||
};
|
};
|
||||||
tmp = {
|
tmp = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,29 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ inputs, config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
inputs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
(import ./disko.nix { device = "/dev/nvme0n1"; })
|
(import ./disko.nix { device = "/dev/nvme0n1"; })
|
||||||
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
|
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.initrd.kernelModules = [ "dm-snapshot" ];
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,11 @@
|
||||||
{ config, pkgs, inputs, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
{
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
fw-ectool
|
fw-ectool
|
||||||
];
|
];
|
||||||
|
|
|
||||||
127
src/lib.nix
127
src/lib.nix
|
|
@ -1,62 +1,67 @@
|
||||||
{ lib, pkgs, ... }:
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
lib.extend (
|
||||||
|
_: libprev: {
|
||||||
|
custom = rec {
|
||||||
|
# taken from https://github.com/iynaix/dotfiles/blob/main/lib.nix
|
||||||
|
# writeShellApplication with support for completions
|
||||||
|
writeShellApplicationCompletions =
|
||||||
|
{
|
||||||
|
name,
|
||||||
|
bashCompletion ? null,
|
||||||
|
zshCompletion ? null,
|
||||||
|
fishCompletion ? null,
|
||||||
|
...
|
||||||
|
}@shellArgs:
|
||||||
|
let
|
||||||
|
inherit (pkgs) writeShellApplication writeTextFile symlinkJoin;
|
||||||
|
# get the needed arguments for writeShellApplication
|
||||||
|
app = writeShellApplication (lib.intersectAttrs (lib.functionArgs writeShellApplication) shellArgs);
|
||||||
|
completions =
|
||||||
|
lib.optional (bashCompletion != null) (writeTextFile {
|
||||||
|
name = "${name}.bash";
|
||||||
|
destination = "/share/bash-completion/completions/${name}.bash";
|
||||||
|
text = bashCompletion;
|
||||||
|
})
|
||||||
|
++ lib.optional (zshCompletion != null) (writeTextFile {
|
||||||
|
name = "${name}.zsh";
|
||||||
|
destination = "/share/zsh/site-functions/_${name}";
|
||||||
|
text = zshCompletion;
|
||||||
|
})
|
||||||
|
++ lib.optional (fishCompletion != null) (writeTextFile {
|
||||||
|
name = "${name}.fish";
|
||||||
|
destination = "/share/fish/vendor_completions.d/${name}.fish";
|
||||||
|
text = fishCompletion;
|
||||||
|
});
|
||||||
|
in
|
||||||
|
if lib.length completions == 0 then
|
||||||
|
app
|
||||||
|
else
|
||||||
|
symlinkJoin {
|
||||||
|
inherit name;
|
||||||
|
inherit (app) meta;
|
||||||
|
paths = [ app ] ++ completions;
|
||||||
|
};
|
||||||
|
|
||||||
lib.extend (_: libprev: {
|
# taken from https://github.com/iynaix/dotfiles/blob/main/lib.nix
|
||||||
custom = rec {
|
# produces an attrset shell package with completions from either a string / writeShellApplication attrset / package
|
||||||
# taken from https://github.com/iynaix/dotfiles/blob/main/lib.nix
|
mkShellPackages = lib.mapAttrs (
|
||||||
# writeShellApplication with support for completions
|
name: value:
|
||||||
writeShellApplicationCompletions =
|
if lib.isString value then
|
||||||
{
|
pkgs.writeShellApplication {
|
||||||
name,
|
inherit name;
|
||||||
bashCompletion ? null,
|
text = value;
|
||||||
zshCompletion ? null,
|
}
|
||||||
fishCompletion ? null,
|
# packages
|
||||||
...
|
else if lib.isDerivation value then
|
||||||
}@shellArgs:
|
value
|
||||||
let
|
# attrs to pass to writeShellApplication
|
||||||
inherit (pkgs) writeShellApplication writeTextFile symlinkJoin;
|
else
|
||||||
# get the needed arguments for writeShellApplication
|
writeShellApplicationCompletions (value // { inherit name; })
|
||||||
app = writeShellApplication (lib.intersectAttrs (lib.functionArgs writeShellApplication) shellArgs);
|
);
|
||||||
completions =
|
};
|
||||||
lib.optional (bashCompletion != null) (writeTextFile {
|
}
|
||||||
name = "${name}.bash";
|
)
|
||||||
destination = "/share/bash-completion/completions/${name}.bash";
|
|
||||||
text = bashCompletion;
|
|
||||||
})
|
|
||||||
++ lib.optional (zshCompletion != null) (writeTextFile {
|
|
||||||
name = "${name}.zsh";
|
|
||||||
destination = "/share/zsh/site-functions/_${name}";
|
|
||||||
text = zshCompletion;
|
|
||||||
})
|
|
||||||
++ lib.optional (fishCompletion != null) (writeTextFile {
|
|
||||||
name = "${name}.fish";
|
|
||||||
destination = "/share/fish/vendor_completions.d/${name}.fish";
|
|
||||||
text = fishCompletion;
|
|
||||||
});
|
|
||||||
in
|
|
||||||
if lib.length completions == 0 then
|
|
||||||
app
|
|
||||||
else
|
|
||||||
symlinkJoin {
|
|
||||||
inherit name;
|
|
||||||
inherit (app) meta;
|
|
||||||
paths = [ app ] ++ completions;
|
|
||||||
};
|
|
||||||
|
|
||||||
# taken from https://github.com/iynaix/dotfiles/blob/main/lib.nix
|
|
||||||
# produces an attrset shell package with completions from either a string / writeShellApplication attrset / package
|
|
||||||
mkShellPackages = lib.mapAttrs (
|
|
||||||
name: value:
|
|
||||||
if lib.isString value then
|
|
||||||
pkgs.writeShellApplication {
|
|
||||||
inherit name;
|
|
||||||
text = value;
|
|
||||||
}
|
|
||||||
# packages
|
|
||||||
else if lib.isDerivation value then
|
|
||||||
value
|
|
||||||
# attrs to pass to writeShellApplication
|
|
||||||
else
|
|
||||||
writeShellApplicationCompletions (value // { inherit name; })
|
|
||||||
);
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ config, pkgs, user, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
user,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
programs._1password.enable = true;
|
programs._1password.enable = true;
|
||||||
programs._1password-gui = {
|
programs._1password-gui = {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
options.custom = with lib; {
|
options.custom = with lib; {
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./1password.nix
|
./1password.nix
|
||||||
|
|
@ -60,20 +59,23 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [
|
systemPackages =
|
||||||
curl
|
with pkgs;
|
||||||
eza
|
[
|
||||||
neovim
|
curl
|
||||||
yazi
|
eza
|
||||||
ripgrep
|
neovim
|
||||||
htop
|
yazi
|
||||||
vim
|
ripgrep
|
||||||
wget
|
htop
|
||||||
htop-vim
|
vim
|
||||||
keyd
|
wget
|
||||||
] ++ (lib.attrValues config.custom.shell.packages);
|
htop-vim
|
||||||
|
keyd
|
||||||
|
]
|
||||||
|
++ (lib.attrValues config.custom.shell.packages);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ config, ...}:
|
{ config, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
xserver = {
|
xserver = {
|
||||||
|
|
@ -26,4 +25,10 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
security.polkit.enable = true;
|
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; {
|
options.custom = with lib; {
|
||||||
fingerprint = {
|
fingerprint = {
|
||||||
|
|
@ -11,6 +15,7 @@
|
||||||
services.fprintd.enable = true;
|
services.fprintd.enable = true;
|
||||||
security.pam.services.login.fprintAuth = false;
|
security.pam.services.login.fprintAuth = false;
|
||||||
security.pam.services.sudo.fprintAuth = false;
|
security.pam.services.sudo.fprintAuth = false;
|
||||||
|
security.pam.services.i3lock.fprintAuth = false;
|
||||||
custom.persist = {
|
custom.persist = {
|
||||||
root.directories = [
|
root.directories = [
|
||||||
"/var/lib/fprint"
|
"/var/lib/fprint"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
options.custom = with lib; {
|
options.custom = with lib; {
|
||||||
nerdfonts = {
|
nerdfonts = {
|
||||||
|
|
@ -7,22 +11,22 @@
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = pkgs.nerdfonts.override {
|
default = pkgs.nerdfonts.override {
|
||||||
fonts = config.custom.nerdfonts.fonts;
|
fonts = config.custom.nerdfonts.fonts;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
fonts = mkOption {
|
fonts = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
description = "Nerdfonts package";
|
description = "Nerdfonts package";
|
||||||
default = [
|
default = [
|
||||||
"FiraCode"
|
"FiraCode"
|
||||||
"DroidSansMono"
|
"DroidSansMono"
|
||||||
"SourceCodePro"
|
"SourceCodePro"
|
||||||
"SpaceMono"
|
"SpaceMono"
|
||||||
"Iosevka"
|
"Iosevka"
|
||||||
"IosevkaTerm"
|
"IosevkaTerm"
|
||||||
"Inconsolata"
|
"Inconsolata"
|
||||||
"InconsolataGo"
|
"InconsolataGo"
|
||||||
"UbuntuMono"
|
"UbuntuMono"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
options.custom = with lib; {
|
options.custom = with lib; {
|
||||||
gnome = {
|
gnome = {
|
||||||
|
|
@ -19,7 +23,6 @@
|
||||||
cheese
|
cheese
|
||||||
epiphany
|
epiphany
|
||||||
simple-scan
|
simple-scan
|
||||||
yelp
|
|
||||||
evince
|
evince
|
||||||
geary
|
geary
|
||||||
gnome-tour
|
gnome-tour
|
||||||
|
|
@ -27,6 +30,12 @@
|
||||||
gnome-music
|
gnome-music
|
||||||
gnome-maps
|
gnome-maps
|
||||||
gnome-disk-utility
|
gnome-disk-utility
|
||||||
|
gnome-characters
|
||||||
|
tali # poker game
|
||||||
|
iagno # go game
|
||||||
|
hitori # sudoku game
|
||||||
|
atomix # puzzle game
|
||||||
|
yelp # Help view
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ in
|
||||||
directories = [
|
directories = [
|
||||||
"/var/log" # systemd journal is stored in /var/log/journal
|
"/var/log" # systemd journal is stored in /var/log/journal
|
||||||
"/var/lib/nixos" # for persisting user uids and gids
|
"/var/lib/nixos" # for persisting user uids and gids
|
||||||
"/etc/NetworkManager/system-connections"
|
"/etc/NetworkManager/system-connections"
|
||||||
] ++ cfg.root.directories;
|
] ++ cfg.root.directories;
|
||||||
|
|
||||||
users.${user} = {
|
users.${user} = {
|
||||||
|
|
@ -95,8 +95,8 @@ in
|
||||||
[
|
[
|
||||||
".cache/dconf"
|
".cache/dconf"
|
||||||
".config/dconf"
|
".config/dconf"
|
||||||
]
|
]
|
||||||
++ cfg.home.directories
|
++ cfg.home.directories
|
||||||
++ hmPersistCfg.home.directories
|
++ hmPersistCfg.home.directories
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
options.custom = with lib; {
|
options.custom = with lib; {
|
||||||
kde = {
|
kde = {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
{ config, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
commonSettings = {
|
commonSettings = {
|
||||||
main = {
|
main = {
|
||||||
capslock = "layer(capslock)";
|
capslock = "layer(capslock)";
|
||||||
insert = "S-insert";
|
insert = "S-insert";
|
||||||
};
|
};
|
||||||
meta = {
|
meta = {
|
||||||
w = "macro(C-w)";
|
w = "macro(C-w)";
|
||||||
|
|
@ -14,7 +17,7 @@ let
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
users.groups.keyd = {};
|
users.groups.keyd = { };
|
||||||
services.keyd = {
|
services.keyd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
keyboards = {
|
keyboards = {
|
||||||
|
|
@ -24,39 +27,39 @@ in
|
||||||
};
|
};
|
||||||
framework = {
|
framework = {
|
||||||
ids = [ "0001:0001:a38e6885" ];
|
ids = [ "0001:0001:a38e6885" ];
|
||||||
settings = lib.mkMerge ([
|
settings = lib.mkMerge [
|
||||||
commonSettings
|
commonSettings
|
||||||
{
|
{
|
||||||
main = {
|
main = {
|
||||||
leftalt = "layer(meta)";
|
leftalt = "layer(meta)";
|
||||||
leftmeta = "layer(alt)";
|
leftmeta = "layer(alt)";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
]);
|
];
|
||||||
};
|
};
|
||||||
normal = {
|
normal = {
|
||||||
ids = [ "413c:2107:eb8bfad1" ];
|
ids = [ "413c:2107:eb8bfad1" ];
|
||||||
settings = lib.mkMerge ([
|
settings = lib.mkMerge [
|
||||||
commonSettings
|
commonSettings
|
||||||
{
|
{
|
||||||
main = {
|
main = {
|
||||||
leftalt = "layer(meta)";
|
leftalt = "layer(meta)";
|
||||||
leftmeta = "layer(alt)";
|
leftmeta = "layer(alt)";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
]);
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.keyd.serviceConfig.CapabilityBoundingSet = [
|
systemd.services.keyd.serviceConfig.CapabilityBoundingSet = [
|
||||||
"CAP_SETGID"
|
"CAP_SETGID"
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.etc."libinput/local-overrides.quirks".text = lib.mkIf config.custom.touchpad.enable ''
|
environment.etc."libinput/local-overrides.quirks".text = lib.mkIf config.custom.touchpad.enable ''
|
||||||
[Serial Keyboards]
|
[Serial Keyboards]
|
||||||
MatchUdevType=keyboard
|
MatchUdevType=keyboard
|
||||||
MatchName=keyd virtual keyboard
|
MatchName=keyd virtual keyboard
|
||||||
AttrKeyboardIntegration=internal
|
AttrKeyboardIntegration=internal
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,19 +37,18 @@ in
|
||||||
"D! /nix/var/nix/profiles/per-user/root 1755 root root 1d"
|
"D! /nix/var/nix/profiles/per-user/root 1755 root root 1d"
|
||||||
];
|
];
|
||||||
|
|
||||||
custom.shell.packages =
|
custom.shell.packages = {
|
||||||
{
|
# list all installed packages
|
||||||
# list all installed packages
|
nix-list-packages = {
|
||||||
nix-list-packages = {
|
text =
|
||||||
text =
|
let
|
||||||
let
|
allPkgs = map (p: p.name) (
|
||||||
allPkgs = map (p: p.name) (
|
config.environment.systemPackages ++ config.users.users.${user}.packages ++ config.hm.home.packages
|
||||||
config.environment.systemPackages ++ config.users.users.${user}.packages ++ config.hm.home.packages
|
);
|
||||||
);
|
in
|
||||||
in
|
''sort -ui <<< "${lib.concatLines allPkgs}"'';
|
||||||
''sort -ui <<< "${lib.concatLines allPkgs}"'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
nix =
|
nix =
|
||||||
let
|
let
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
{ pkgs, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -12,7 +15,7 @@
|
||||||
serif = config.stylix.fonts.sansSerif;
|
serif = config.stylix.fonts.sansSerif;
|
||||||
sansSerif = {
|
sansSerif = {
|
||||||
package = pkgs.dejavu_fonts;
|
package = pkgs.dejavu_fonts;
|
||||||
name = "DejaVu Sans";
|
name = "DejaVu Sans";
|
||||||
};
|
};
|
||||||
# sansSerif = {
|
# sansSerif = {
|
||||||
# package = config.custom.nerdfonts.package;
|
# package = config.custom.nerdfonts.package;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
{ pkgs, lib, config, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
options.custom = with lib; {
|
options.custom = with lib; {
|
||||||
touchpad = {
|
touchpad = {
|
||||||
enable = mkEnableOption "Enable touchpad";
|
enable = mkEnableOption "Enable touchpad";
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
user,
|
user,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
options.custom = with lib; {
|
options.custom = with lib; {
|
||||||
wm = {
|
wm = {
|
||||||
|
|
@ -20,10 +24,12 @@
|
||||||
dmenu
|
dmenu
|
||||||
i3status
|
i3status
|
||||||
i3lock
|
i3lock
|
||||||
i3blocks
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
programs.xss-lock = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
hm.custom.wm.i3.enable = true;
|
hm.custom.wm.i3.enable = true;
|
||||||
hm.custom.i3status-rust.enable = true;
|
hm.custom.i3status-rust.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
options.custom = with lib; {
|
options.custom = with lib; {
|
||||||
wm = {
|
wm = {
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# xdgOpenUsePortal = true;
|
# xdgOpenUsePortal = true;
|
||||||
wlr.enable = true;
|
wlr.enable = true;
|
||||||
extraPortals = with pkgs; [
|
extraPortals = with pkgs; [
|
||||||
# xdg-desktop-portal-kde
|
# xdg-desktop-portal-kde
|
||||||
# xdg-desktop-portal-gnome
|
# xdg-desktop-portal-gnome
|
||||||
xdg-desktop-portal-gtk
|
xdg-desktop-portal-gtk
|
||||||
];
|
];
|
||||||
# config = {
|
# config = {
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
boot.supportedFilesystems.zfs = true;
|
boot.supportedFilesystems.zfs = true;
|
||||||
boot.zfs = {
|
boot.zfs = {
|
||||||
devNodes ="/dev/disk/by-partuuid";
|
devNodes = "/dev/disk/by-partuuid";
|
||||||
package = pkgs.zfs_unstable;
|
package = pkgs.zfs_unstable;
|
||||||
requestEncryptionCredentials = true;
|
requestEncryptionCredentials = true;
|
||||||
};
|
};
|
||||||
# boot.kernelPackages =
|
# boot.kernelPackages =
|
||||||
# assert lib.assertMsg (lib.versionOlder pkgs.zfs_unstable.version "2.3")
|
# assert lib.assertMsg (lib.versionOlder pkgs.zfs_unstable.version "2.3")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue