Compare commits
35 Commits
sway
...
c0d7d934f3
| Author | SHA1 | Date | |
|---|---|---|---|
| c0d7d934f3 | |||
| cb91f69c49 | |||
| bc6378cb22 | |||
| a13676311a | |||
| ec57592715 | |||
| 051c223eb7 | |||
| 6030f6ea42 | |||
| df77fd5c74 | |||
| 458bcb4cdf | |||
| 40e10bab34 | |||
| 3477a3480f | |||
| d2ae7f8e11 | |||
| ff3a0a4738 | |||
| 1a857399a6 | |||
| 4620288747 | |||
| b5f2e1738f | |||
| 8e27017aa4 | |||
| 4ca9804db8 | |||
| 6417540b51 | |||
| 3f1bdc7af0 | |||
| 4d39f8a635 | |||
| 736194b8b4 | |||
| 4096dc75b9 | |||
| 18afc61e33 | |||
| 9ba6006fca | |||
| 000db04502 | |||
| 42a34a6c40 | |||
| 5e029720ef | |||
| 5289d8847b | |||
| d9e5fdb0df | |||
| fb8431da2d | |||
| e9d14167aa | |||
| 3a9348730b | |||
| 1da9e92a24 | |||
| 75baf55d5b |
11
.sops.yaml
Normal file
11
.sops.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
keys:
|
||||
- &admin_johno age1ls6a033d4p4u8h4rwazjwt8w4c4xg73wq0mdnm64jajxzcz4k9asvjnks3
|
||||
- &host_z790prors age12l5u7sw59u5pkwp83qm8t3ff7uv0ld2c9k3zh5j4ame9k2szcynqu7ftqe
|
||||
- &host_nixbook age1fa3zqavfmqk4ssa22yne9td90gyqv9q5a8y0s8jp3xak8q7p3yjqyn7rkg
|
||||
creation_rules:
|
||||
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
|
||||
key_groups:
|
||||
- age:
|
||||
- *admin_johno
|
||||
- *host_z790prors
|
||||
- *host_nixbook
|
||||
76
flake.lock
generated
76
flake.lock
generated
@@ -7,11 +7,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1725694918,
|
||||
"narHash": "sha256-+HsjshXpqNiJHLaJaK0JnIicJ/a1NquKcfn4YZ3ILgg=",
|
||||
"lastModified": 1728041527,
|
||||
"narHash": "sha256-03liqiJtk9UP7YQHW4r8MduKCK242FQzud8iWvvlK+o=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "aaebdea769a5c10f1c6e50ebdf5924c1a13f0cda",
|
||||
"rev": "509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -22,11 +22,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1725634671,
|
||||
"narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
|
||||
"lastModified": 1727802920,
|
||||
"narHash": "sha256-HP89HZOT0ReIbI7IJZJQoJgxvB2Tn28V6XS3MNKnfLs=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
|
||||
"rev": "27e30d177e57d912d614c88c622dcfdb2e6e6515",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -36,10 +36,72 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1725762081,
|
||||
"narHash": "sha256-vNv+aJUW5/YurRy1ocfvs4q/48yVESwlC/yHzjkZSP8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "dc454045f5b5d814e5862a6d057e7bb5c29edc05",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"plasma-manager": {
|
||||
"inputs": {
|
||||
"home-manager": [
|
||||
"home-manager"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728750492,
|
||||
"narHash": "sha256-9IHlIsH4gLqQjS2lFbEnsl/ItdqzBBLWLsyXS0k0jf8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "plasma-manager",
|
||||
"rev": "c6d4b6f3e0138c08f37d66fcfbcbe37dab08f108",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "plasma-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": "nixpkgs",
|
||||
"plasma-manager": "plasma-manager",
|
||||
"sops-nix": "sops-nix"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727423009,
|
||||
"narHash": "sha256-+4B/dQm2EnORIk0k2wV3aHGaE0WXTBjColXjj7qWh10=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "127a96f49ddc377be6ba76964411bab11ae27803",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
57
flake.nix
57
flake.nix
@@ -4,54 +4,69 @@
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
sops-nix = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
plasma-manager = {
|
||||
url = "github:nix-community/plasma-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.home-manager.follows = "home-manager";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, ... } @ inputs: {
|
||||
nixosConfigurations.z790prors-nix = nixpkgs.lib.nixosSystem {
|
||||
outputs = { self, nixpkgs, ... } @ inputs: let
|
||||
baseModules = [
|
||||
./roles
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
|
||||
}
|
||||
];
|
||||
in {
|
||||
nixosConfigurations.z790prors-nix = nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./machines/z790prors/configuration.nix
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
modules = baseModules ++ [
|
||||
./machines/z790prors/configuration.nix
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
home-manager.users.johno = import ./home/home-z790prors.nix;
|
||||
home-manager.extraSpecialArgs.customPkgs =
|
||||
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
nixosConfigurations.nix-book = nixpkgs.lib.nixosSystem {
|
||||
nixosConfigurations.nix-book = nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./roles
|
||||
modules = baseModules ++ [
|
||||
./machines/nix-book/configuration.nix
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
home-manager.users.johno = import ./home/home-nix-book.nix;
|
||||
home-manager.extraSpecialArgs.customPkgs =
|
||||
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
nixosConfigurations.boxy = nixpkgs.lib.nixosSystem {
|
||||
nixosConfigurations.boxy = nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
modules = baseModules ++ [
|
||||
./machines/boxy/configuration.nix
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
home-manager.users.johno = import ./home/home-default.nix;
|
||||
home-manager.extraSpecialArgs.customPkgs =
|
||||
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, customPkgs, ... }:
|
||||
|
||||
let
|
||||
nextcloudTalkDesktop = pkgs.callPackage ./modules/applications/nextcloud-talk-desktop/package.nix {};
|
||||
in
|
||||
{
|
||||
# Home Manager needs a bit of information about you and the paths it should
|
||||
# manage.
|
||||
@@ -62,7 +59,7 @@ in
|
||||
pkgs.wofi
|
||||
pkgs.vlc
|
||||
|
||||
nextcloudTalkDesktop
|
||||
customPkgs.nextcloudTalkDesktop
|
||||
];
|
||||
|
||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||
@@ -106,9 +103,10 @@ in
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
imports = [
|
||||
./modules/applications/emacs/default.nix
|
||||
./modules/games/lutris/default.nix
|
||||
./modules/window_managers/i3/default.nix
|
||||
./modules/emacs
|
||||
./modules/i3+sway
|
||||
./modules/lutris
|
||||
./modules/plasma-manager
|
||||
];
|
||||
|
||||
programs.bash.enable = true;
|
||||
@@ -189,15 +187,6 @@ in
|
||||
package = pkgs.kdePackages.kdeconnect-kde;
|
||||
};
|
||||
|
||||
services.spotifyd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
global = {
|
||||
username = "johnogle222";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
tray = {
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
{
|
||||
imports = [
|
||||
./home-default.nix
|
||||
./modules/window_managers/hyprland/nix-book.nix
|
||||
./modules/hyprland/nix-book.nix
|
||||
];
|
||||
|
||||
home.i3_sway.extraSwayConfig = {
|
||||
output.eDP-1.scale = "1.75";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
{
|
||||
imports = [
|
||||
./home-default.nix
|
||||
./modules/window_managers/hyprland/z790prors.nix
|
||||
./modules/hyprland/z790prors.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
emacs = pkgs.emacs29;
|
||||
doomSync = (let
|
||||
git = pkgs.git;
|
||||
in ''
|
||||
export PATH=${emacs}/bin:${git}/bin:$PATH
|
||||
${config.xdg.configHome}/emacs/bin/doom sync -u -j $((`nproc`/4*3))
|
||||
'');
|
||||
in {
|
||||
home.packages = [
|
||||
pkgs.emacs-all-the-icons-fonts
|
||||
pkgs.fontconfig
|
||||
pkgs.graphviz
|
||||
pkgs.isort
|
||||
pkgs.nerdfonts
|
||||
pkgs.nil # nix lsp language server
|
||||
pkgs.nixfmt-rfc-style
|
||||
(pkgs.ripgrep.override {withPCRE2 = true;})
|
||||
pkgs.pipenv
|
||||
pkgs.poetry
|
||||
pkgs.python3
|
||||
];
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
home.file = {
|
||||
".config/emacs" = {
|
||||
source = fetchGit {
|
||||
url = "https://github.com/doomemacs/doomemacs.git";
|
||||
# When updating me, remember to run `doom sync`
|
||||
rev = "ac1122ae67d762e09fc6684945b52adff96cf1dc";
|
||||
};
|
||||
# We need to use recursive mode here or else doom fails to sync for
|
||||
# some reason related to the permissions on the synced path. I'm not
|
||||
# quite sure of everything that's going on here.
|
||||
recursive = true;
|
||||
|
||||
# Because `recursive = true` will cause this to sync every single
|
||||
# activation, we turn this off here.
|
||||
#
|
||||
# There's probably a way we could do better detection of this within
|
||||
# our onChange shell?
|
||||
#
|
||||
# onChange = doomSync;
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
DOOMLOCALDIR = "${config.xdg.dataHome}/doom";
|
||||
EDITOR = "emacs -nw";
|
||||
};
|
||||
|
||||
home.sessionPath = [
|
||||
"${config.xdg.configHome}/emacs/bin"
|
||||
];
|
||||
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
package = emacs;
|
||||
};
|
||||
|
||||
xdg.configFile."doom" = {
|
||||
source = ./doom;
|
||||
# Sync doom if we updated the config
|
||||
onChange = doomSync;
|
||||
};
|
||||
}
|
||||
67
home/modules/emacs/default.nix
Normal file
67
home/modules/emacs/default.nix
Normal file
@@ -0,0 +1,67 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
doomSync = (let
|
||||
git = pkgs.git;
|
||||
in ''
|
||||
export PATH=${pkgs.emacs}/bin:${git}/bin:$PATH
|
||||
${config.xdg.configHome}/emacs/bin/doom sync -u -j $((`nproc`/4*3))
|
||||
'');
|
||||
in {
|
||||
config = {
|
||||
home.packages = [
|
||||
pkgs.emacs-all-the-icons-fonts
|
||||
pkgs.fontconfig
|
||||
pkgs.graphviz
|
||||
pkgs.isort
|
||||
pkgs.nerdfonts
|
||||
pkgs.nil # nix lsp language server
|
||||
pkgs.nixfmt-rfc-style
|
||||
(pkgs.ripgrep.override {withPCRE2 = true;})
|
||||
pkgs.pipenv
|
||||
pkgs.poetry
|
||||
pkgs.python3
|
||||
];
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
home.file = {
|
||||
".config/emacs" = {
|
||||
source = fetchGit {
|
||||
url = "https://github.com/doomemacs/doomemacs.git";
|
||||
# When updating me, remember to run `doom sync`
|
||||
rev = "5ad99220b86ae1bf421861dfad24492d768ac4d9";
|
||||
};
|
||||
# We need to use recursive mode here or else doom fails to sync for
|
||||
# some reason related to the permissions on the synced path. I'm not
|
||||
# quite sure of everything that's going on here.
|
||||
recursive = true;
|
||||
|
||||
# Because `recursive = true` will cause this to sync every single
|
||||
# activation, we turn this off here.
|
||||
#
|
||||
# There's probably a way we could do better detection of this within
|
||||
# our onChange shell?
|
||||
#
|
||||
# onChange = doomSync;
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
DOOMLOCALDIR = "${config.xdg.dataHome}/doom";
|
||||
EDITOR = "emacs -nw";
|
||||
};
|
||||
|
||||
home.sessionPath = [
|
||||
"${config.xdg.configHome}/emacs/bin"
|
||||
];
|
||||
|
||||
xdg.configFile."doom" = {
|
||||
source = ./doom;
|
||||
# Sync doom if we updated the config
|
||||
onChange = doomSync;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Before Width: | Height: | Size: 842 KiB After Width: | Height: | Size: 842 KiB |
146
home/modules/i3+sway/default.nix
Normal file
146
home/modules/i3+sway/default.nix
Normal file
@@ -0,0 +1,146 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.home.i3_sway;
|
||||
i3_cfg = config.xsession.windowManager.i3.config;
|
||||
|
||||
shared_config = recursiveUpdate rec {
|
||||
modifier = "Mod4";
|
||||
terminal = "kitty";
|
||||
defaultWorkspace = "workspace number 1";
|
||||
|
||||
keybindings = {
|
||||
"${shared_config.modifier}+Return" = "exec ${terminal}";
|
||||
"${shared_config.modifier}+Shift+q" = "kill";
|
||||
"${shared_config.modifier}+d" = "exec ${i3_cfg.menu}";
|
||||
|
||||
"${shared_config.modifier}+h" = "focus left";
|
||||
"${shared_config.modifier}+j" = "focus down";
|
||||
"${shared_config.modifier}+k" = "focus up";
|
||||
"${shared_config.modifier}+l" = "focus right";
|
||||
|
||||
"${shared_config.modifier}+Shift+h" = "move left";
|
||||
"${shared_config.modifier}+Shift+j" = "move down";
|
||||
"${shared_config.modifier}+Shift+k" = "move up";
|
||||
"${shared_config.modifier}+Shift+l" = "move right";
|
||||
|
||||
"${shared_config.modifier}+Left" = "focus left";
|
||||
"${shared_config.modifier}+Down" = "focus down";
|
||||
"${shared_config.modifier}+Up" = "focus up";
|
||||
"${shared_config.modifier}+Right" = "focus right";
|
||||
|
||||
"${shared_config.modifier}+Shift+Left" = "move left";
|
||||
"${shared_config.modifier}+Shift+Down" = "move down";
|
||||
"${shared_config.modifier}+Shift+Up" = "move up";
|
||||
"${shared_config.modifier}+Shift+Right" = "move right";
|
||||
|
||||
#"${shared_config.modifier}+h" = "split h";
|
||||
"${shared_config.modifier}+v" = "split v";
|
||||
"${shared_config.modifier}+f" = "fullscreen toggle";
|
||||
|
||||
"${shared_config.modifier}+s" = "layout stacking";
|
||||
"${shared_config.modifier}+w" = "layout tabbed";
|
||||
"${shared_config.modifier}+e" = "layout toggle split";
|
||||
|
||||
"${shared_config.modifier}+Shift+space" = "floating toggle";
|
||||
"${shared_config.modifier}+space" = "focus mode_toggle";
|
||||
|
||||
"${shared_config.modifier}+a" = "focus parent";
|
||||
|
||||
"${shared_config.modifier}+Shift+minus" = "move scratchpad";
|
||||
"${shared_config.modifier}+minus" = "scratchpad show";
|
||||
|
||||
"${shared_config.modifier}+1" = "workspace number 1";
|
||||
"${shared_config.modifier}+2" = "workspace number 2";
|
||||
"${shared_config.modifier}+3" = "workspace number 3";
|
||||
"${shared_config.modifier}+4" = "workspace number 4";
|
||||
"${shared_config.modifier}+5" = "workspace number 5";
|
||||
"${shared_config.modifier}+6" = "workspace number 6";
|
||||
"${shared_config.modifier}+7" = "workspace number 7";
|
||||
"${shared_config.modifier}+8" = "workspace number 8";
|
||||
"${shared_config.modifier}+9" = "workspace number 9";
|
||||
"${shared_config.modifier}+0" = "workspace number 10";
|
||||
|
||||
"${shared_config.modifier}+Shift+1" =
|
||||
"move container to workspace number 1";
|
||||
"${shared_config.modifier}+Shift+2" =
|
||||
"move container to workspace number 2";
|
||||
"${shared_config.modifier}+Shift+3" =
|
||||
"move container to workspace number 3";
|
||||
"${shared_config.modifier}+Shift+4" =
|
||||
"move container to workspace number 4";
|
||||
"${shared_config.modifier}+Shift+5" =
|
||||
"move container to workspace number 5";
|
||||
"${shared_config.modifier}+Shift+6" =
|
||||
"move container to workspace number 6";
|
||||
"${shared_config.modifier}+Shift+7" =
|
||||
"move container to workspace number 7";
|
||||
"${shared_config.modifier}+Shift+8" =
|
||||
"move container to workspace number 8";
|
||||
"${shared_config.modifier}+Shift+9" =
|
||||
"move container to workspace number 9";
|
||||
"${shared_config.modifier}+Shift+0" =
|
||||
"move container to workspace number 10";
|
||||
|
||||
"${shared_config.modifier}+Shift+c" = "reload";
|
||||
"${shared_config.modifier}+Shift+r" = "restart";
|
||||
|
||||
"${shared_config.modifier}+r" = "mode resize";
|
||||
|
||||
"XF86MonBrightnessUp" = "exec brightnessctl s +5%";
|
||||
"XF86MonBrightnessDown" = "exec brightnessctl s 5%-";
|
||||
};
|
||||
} cfg.extraSharedConfig;
|
||||
in {
|
||||
options.home.i3_sway = {
|
||||
extraSharedConfig = mkOption {
|
||||
default = {};
|
||||
};
|
||||
extraI3Config = mkOption {
|
||||
default = {};
|
||||
};
|
||||
extraSwayConfig = mkOption {
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
xsession.windowManager.i3 = let
|
||||
base_i3_config = recursiveUpdate shared_config {
|
||||
keybindings = {
|
||||
"${shared_config.modifier}+Shift+e" =
|
||||
"exec i3-nagbar -t warning -m 'Do you want to exit i3?' -b 'Yes' 'i3-msg exit'";
|
||||
};
|
||||
};
|
||||
in {
|
||||
enable = true;
|
||||
config = recursiveUpdate base_i3_config cfg.extraI3Config;
|
||||
};
|
||||
|
||||
wayland.windowManager.sway = let
|
||||
base_sway_config = recursiveUpdate shared_config {
|
||||
keybindings = {
|
||||
"${shared_config.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'";
|
||||
};
|
||||
input = {
|
||||
"type:keyboard" = {
|
||||
xkb_options = "caps:escape";
|
||||
};
|
||||
"type:touchpad" = {
|
||||
tap = "enabled";
|
||||
tap_button_map = "lrm";
|
||||
drag = "enabled";
|
||||
natural_scroll = "disabled";
|
||||
dwt = "enabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
in {
|
||||
enable = true;
|
||||
config = recursiveUpdate base_sway_config cfg.extraSwayConfig;
|
||||
};
|
||||
};
|
||||
}
|
||||
451
home/modules/plasma-manager/default.nix
Normal file
451
home/modules/plasma-manager/default.nix
Normal file
@@ -0,0 +1,451 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
|
||||
# The following can be generated with the command:
|
||||
# nix run github:nix-community/plasma-manager
|
||||
#
|
||||
# Plasma-manager options documentation
|
||||
# https://nix-community.github.io/plasma-manager/options.xhtml
|
||||
#
|
||||
# Polonium usage
|
||||
# https://github.com/zeroxoneafour/polonium/blob/master/docs/usage.md
|
||||
#
|
||||
# TODO: Extract this configuration into something that's a bit easier to manage
|
||||
# TODO: Update shortcuts for better window/tiling/desktop management akin to i3wm
|
||||
# TODO(ambitious): Add Kmail support to plasma-manager
|
||||
{
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
shortcuts = {
|
||||
"KDE Keyboard Layout Switcher"."Switch to Last-Used Keyboard Layout" = "Meta+Alt+L";
|
||||
"KDE Keyboard Layout Switcher"."Switch to Next Keyboard Layout" = "Meta+Alt+K";
|
||||
"kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S";
|
||||
"kcm_touchpad"."Disable Touchpad" = "Touchpad Off";
|
||||
"kcm_touchpad"."Enable Touchpad" = "Touchpad On";
|
||||
"kcm_touchpad"."Toggle Touchpad" = ["Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku,Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku,Toggle Touchpad"];
|
||||
"kmix"."decrease_microphone_volume" = "Microphone Volume Down";
|
||||
"kmix"."decrease_volume" = "Volume Down";
|
||||
"kmix"."decrease_volume_small" = "Shift+Volume Down";
|
||||
"kmix"."increase_microphone_volume" = "Microphone Volume Up";
|
||||
"kmix"."increase_volume" = "Volume Up";
|
||||
"kmix"."increase_volume_small" = "Shift+Volume Up";
|
||||
"kmix"."mic_mute" = ["Microphone Mute" "Meta+Volume Mute,Microphone Mute" "Meta+Volume Mute,Mute Microphone"];
|
||||
"kmix"."mute" = "Volume Mute";
|
||||
"ksmserver"."Halt Without Confirmation" = "none,,Shut Down Without Confirmation";
|
||||
"ksmserver"."Lock Session" = ["Meta+L" "Screensaver,Meta+L" "Screensaver,Lock Session"];
|
||||
"ksmserver"."Log Out" = "Ctrl+Alt+Del";
|
||||
"ksmserver"."Log Out Without Confirmation" = "none,,Log Out Without Confirmation";
|
||||
"ksmserver"."LogOut" = "none,,Log Out";
|
||||
"ksmserver"."Reboot" = "none,,Reboot";
|
||||
"ksmserver"."Reboot Without Confirmation" = "none,,Reboot Without Confirmation";
|
||||
"ksmserver"."Shut Down" = "none,,Shut Down";
|
||||
"kwin"."Activate Window Demanding Attention" = "Meta+Ctrl+A";
|
||||
"kwin"."Cycle Overview" = [ ];
|
||||
"kwin"."Cycle Overview Opposite" = [ ];
|
||||
"kwin"."Decrease Opacity" = "none,,Decrease Opacity of Active Window by 5%";
|
||||
"kwin"."Edit Tiles" = "Meta+T";
|
||||
"kwin"."Expose" = "Ctrl+F9";
|
||||
"kwin"."ExposeAll" = ["Ctrl+F10" "Launch (C),Ctrl+F10" "Launch (C),Toggle Present Windows (All desktops)"];
|
||||
"kwin"."ExposeClass" = "Ctrl+F7";
|
||||
"kwin"."ExposeClassCurrentDesktop" = [ ];
|
||||
"kwin"."Grid View" = "Meta+G";
|
||||
"kwin"."Increase Opacity" = "none,,Increase Opacity of Active Window by 5%";
|
||||
"kwin"."Kill Window" = "Meta+Ctrl+Esc";
|
||||
"kwin"."Move Tablet to Next Output" = [ ];
|
||||
"kwin"."MoveMouseToCenter" = "Meta+F6";
|
||||
"kwin"."MoveMouseToFocus" = "Meta+F5";
|
||||
"kwin"."MoveZoomDown" = [ ];
|
||||
"kwin"."MoveZoomLeft" = [ ];
|
||||
"kwin"."MoveZoomRight" = [ ];
|
||||
"kwin"."MoveZoomUp" = [ ];
|
||||
"kwin"."Overview" = "Meta+W";
|
||||
"kwin"."PoloniumCycleEngine" = "Meta+|,none,Polonium: Cycle Engine";
|
||||
"kwin"."PoloniumFocusAbove" = "Meta+K,none,Polonium: Focus Above";
|
||||
"kwin"."PoloniumFocusBelow" = "Meta+J,none,Polonium: Focus Below";
|
||||
"kwin"."PoloniumFocusLeft" = "Meta+H,none,Polonium: Focus Left";
|
||||
"kwin"."PoloniumFocusRight" = "Meta+L,none,Polonium: Focus Right";
|
||||
"kwin"."PoloniumInsertAbove" = "Meta+Shift+K,none,Polonium: Insert Above";
|
||||
"kwin"."PoloniumInsertBelow" = "Meta+Shift+J,none,Polonium: Insert Below";
|
||||
"kwin"."PoloniumInsertLeft" = "Meta+Shift+H,none,Polonium: Insert Left";
|
||||
"kwin"."PoloniumInsertRight" = "Meta+Shift+L,none,Polonium: Insert Right";
|
||||
"kwin"."PoloniumOpenSettings" = "Meta+\\\\,none,Polonium: Open Settings Dialog";
|
||||
"kwin"."PoloniumResizeAbove" = "Meta+Ctrl+K,none,Polonium: Resize Above";
|
||||
"kwin"."PoloniumResizeBelow" = "Meta+Ctrl+J,none,Polonium: Resize Below";
|
||||
"kwin"."PoloniumResizeLeft" = "Meta+Ctrl+H,none,Polonium: Resize Left";
|
||||
"kwin"."PoloniumResizeRight" = "Meta+Ctrl+L,none,Polonium: Resize Right";
|
||||
"kwin"."PoloniumRetileWindow" = "Meta+Shift+Space,none,Polonium: Retile Window";
|
||||
"kwin"."PoloniumSwitchBTree" = [ ];
|
||||
"kwin"."PoloniumSwitchHalf" = [ ];
|
||||
"kwin"."PoloniumSwitchKwin" = [ ];
|
||||
"kwin"."PoloniumSwitchMonocle" = [ ];
|
||||
"kwin"."PoloniumSwitchThreeColumn" = [ ];
|
||||
"kwin"."Setup Window Shortcut" = "none,,Setup Window Shortcut";
|
||||
"kwin"."Show Desktop" = "Meta+D";
|
||||
"kwin"."Suspend Compositing" = "Alt+Shift+F12";
|
||||
"kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down";
|
||||
"kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up";
|
||||
"kwin"."Switch One Desktop to the Left" = "Meta+Ctrl+Left";
|
||||
"kwin"."Switch One Desktop to the Right" = "Meta+Ctrl+Right";
|
||||
"kwin"."Switch Window Down" = "Meta+Alt+Down";
|
||||
"kwin"."Switch Window Left" = "Meta+Alt+Left";
|
||||
"kwin"."Switch Window Right" = "Meta+Alt+Right";
|
||||
"kwin"."Switch Window Up" = "Meta+Alt+Up";
|
||||
"kwin"."Switch to Desktop 1" = "Meta+1,Ctrl+F1,Switch to Desktop 1";
|
||||
"kwin"."Switch to Desktop 10" = "none,,Switch to Desktop 10";
|
||||
"kwin"."Switch to Desktop 11" = "none,,Switch to Desktop 11";
|
||||
"kwin"."Switch to Desktop 12" = "none,,Switch to Desktop 12";
|
||||
"kwin"."Switch to Desktop 13" = "none,,Switch to Desktop 13";
|
||||
"kwin"."Switch to Desktop 14" = "none,,Switch to Desktop 14";
|
||||
"kwin"."Switch to Desktop 15" = "none,,Switch to Desktop 15";
|
||||
"kwin"."Switch to Desktop 16" = "none,,Switch to Desktop 16";
|
||||
"kwin"."Switch to Desktop 17" = "none,,Switch to Desktop 17";
|
||||
"kwin"."Switch to Desktop 18" = "none,,Switch to Desktop 18";
|
||||
"kwin"."Switch to Desktop 19" = "none,,Switch to Desktop 19";
|
||||
"kwin"."Switch to Desktop 2" = "Meta+2,Ctrl+F2,Switch to Desktop 2";
|
||||
"kwin"."Switch to Desktop 20" = "none,,Switch to Desktop 20";
|
||||
"kwin"."Switch to Desktop 3" = "Meta+3,Ctrl+F3,Switch to Desktop 3";
|
||||
"kwin"."Switch to Desktop 4" = "Meta+4,Ctrl+F4,Switch to Desktop 4";
|
||||
"kwin"."Switch to Desktop 5" = "Meta+5,,Switch to Desktop 5";
|
||||
"kwin"."Switch to Desktop 6" = "none,,Switch to Desktop 6";
|
||||
"kwin"."Switch to Desktop 7" = "none,,Switch to Desktop 7";
|
||||
"kwin"."Switch to Desktop 8" = "none,,Switch to Desktop 8";
|
||||
"kwin"."Switch to Desktop 9" = "none,,Switch to Desktop 9";
|
||||
"kwin"."Switch to Next Desktop" = "none,,Switch to Next Desktop";
|
||||
"kwin"."Switch to Next Screen" = "none,,Switch to Next Screen";
|
||||
"kwin"."Switch to Previous Desktop" = "none,,Switch to Previous Desktop";
|
||||
"kwin"."Switch to Previous Screen" = "none,,Switch to Previous Screen";
|
||||
"kwin"."Switch to Screen 0" = "none,,Switch to Screen 0";
|
||||
"kwin"."Switch to Screen 1" = "none,,Switch to Screen 1";
|
||||
"kwin"."Switch to Screen 2" = "none,,Switch to Screen 2";
|
||||
"kwin"."Switch to Screen 3" = "none,,Switch to Screen 3";
|
||||
"kwin"."Switch to Screen 4" = "none,,Switch to Screen 4";
|
||||
"kwin"."Switch to Screen 5" = "none,,Switch to Screen 5";
|
||||
"kwin"."Switch to Screen 6" = "none,,Switch to Screen 6";
|
||||
"kwin"."Switch to Screen 7" = "none,,Switch to Screen 7";
|
||||
"kwin"."Switch to Screen Above" = "none,,Switch to Screen Above";
|
||||
"kwin"."Switch to Screen Below" = "none,,Switch to Screen Below";
|
||||
"kwin"."Switch to Screen to the Left" = "none,,Switch to Screen to the Left";
|
||||
"kwin"."Switch to Screen to the Right" = "none,,Switch to Screen to the Right";
|
||||
"kwin"."Toggle Night Color" = [ ];
|
||||
"kwin"."Toggle Window Raise/Lower" = "none,,Toggle Window Raise/Lower";
|
||||
"kwin"."Walk Through Windows" = "Alt+Tab";
|
||||
"kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
||||
"kwin"."Walk Through Windows Alternative" = "none,,Walk Through Windows Alternative";
|
||||
"kwin"."Walk Through Windows Alternative (Reverse)" = "none,,Walk Through Windows Alternative (Reverse)";
|
||||
"kwin"."Walk Through Windows of Current Application" = "Alt+`";
|
||||
"kwin"."Walk Through Windows of Current Application (Reverse)" = "Alt+~";
|
||||
"kwin"."Walk Through Windows of Current Application Alternative" = "none,,Walk Through Windows of Current Application Alternative";
|
||||
"kwin"."Walk Through Windows of Current Application Alternative (Reverse)" = "none,,Walk Through Windows of Current Application Alternative (Reverse)";
|
||||
"kwin"."Window Above Other Windows" = "none,,Keep Window Above Others";
|
||||
"kwin"."Window Below Other Windows" = "none,,Keep Window Below Others";
|
||||
"kwin"."Window Close" = "Alt+F4";
|
||||
"kwin"."Window Fullscreen" = "none,,Make Window Fullscreen";
|
||||
"kwin"."Window Grow Horizontal" = "none,,Expand Window Horizontally";
|
||||
"kwin"."Window Grow Vertical" = "none,,Expand Window Vertically";
|
||||
"kwin"."Window Lower" = "none,,Lower Window";
|
||||
"kwin"."Window Maximize" = "Meta+PgUp";
|
||||
"kwin"."Window Maximize Horizontal" = "none,,Maximize Window Horizontally";
|
||||
"kwin"."Window Maximize Vertical" = "none,,Maximize Window Vertically";
|
||||
"kwin"."Window Minimize" = "Meta+PgDown";
|
||||
"kwin"."Window Move" = "none,,Move Window";
|
||||
"kwin"."Window Move Center" = "none,,Move Window to the Center";
|
||||
"kwin"."Window No Border" = "none,,Toggle Window Titlebar and Frame";
|
||||
"kwin"."Window On All Desktops" = "none,,Keep Window on All Desktops";
|
||||
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
||||
"kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
|
||||
"kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
|
||||
"kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
|
||||
"kwin"."Window One Screen Down" = "none,,Move Window One Screen Down";
|
||||
"kwin"."Window One Screen Up" = "none,,Move Window One Screen Up";
|
||||
"kwin"."Window One Screen to the Left" = "none,,Move Window One Screen to the Left";
|
||||
"kwin"."Window One Screen to the Right" = "none,,Move Window One Screen to the Right";
|
||||
"kwin"."Window Operations Menu" = "Alt+F3";
|
||||
"kwin"."Window Pack Down" = "none,,Move Window Down";
|
||||
"kwin"."Window Pack Left" = "none,,Move Window Left";
|
||||
"kwin"."Window Pack Right" = "none,,Move Window Right";
|
||||
"kwin"."Window Pack Up" = "none,,Move Window Up";
|
||||
"kwin"."Window Quick Tile Bottom" = "Meta+Down";
|
||||
"kwin"."Window Quick Tile Bottom Left" = "none,,Quick Tile Window to the Bottom Left";
|
||||
"kwin"."Window Quick Tile Bottom Right" = "none,,Quick Tile Window to the Bottom Right";
|
||||
"kwin"."Window Quick Tile Left" = "Meta+Left";
|
||||
"kwin"."Window Quick Tile Right" = "Meta+Right";
|
||||
"kwin"."Window Quick Tile Top" = "Meta+Up";
|
||||
"kwin"."Window Quick Tile Top Left" = "none,,Quick Tile Window to the Top Left";
|
||||
"kwin"."Window Quick Tile Top Right" = "none,,Quick Tile Window to the Top Right";
|
||||
"kwin"."Window Raise" = "none,,Raise Window";
|
||||
"kwin"."Window Resize" = "none,,Resize Window";
|
||||
"kwin"."Window Shade" = "none,,Shade Window";
|
||||
"kwin"."Window Shrink Horizontal" = "none,,Shrink Window Horizontally";
|
||||
"kwin"."Window Shrink Vertical" = "none,,Shrink Window Vertically";
|
||||
"kwin"."Window to Desktop 1" = "Meta+!,,Window to Desktop 1";
|
||||
"kwin"."Window to Desktop 10" = "none,,Window to Desktop 10";
|
||||
"kwin"."Window to Desktop 11" = "none,,Window to Desktop 11";
|
||||
"kwin"."Window to Desktop 12" = "none,,Window to Desktop 12";
|
||||
"kwin"."Window to Desktop 13" = "none,,Window to Desktop 13";
|
||||
"kwin"."Window to Desktop 14" = "none,,Window to Desktop 14";
|
||||
"kwin"."Window to Desktop 15" = "none,,Window to Desktop 15";
|
||||
"kwin"."Window to Desktop 16" = "none,,Window to Desktop 16";
|
||||
"kwin"."Window to Desktop 17" = "none,,Window to Desktop 17";
|
||||
"kwin"."Window to Desktop 18" = "none,,Window to Desktop 18";
|
||||
"kwin"."Window to Desktop 19" = "none,,Window to Desktop 19";
|
||||
"kwin"."Window to Desktop 2" = "Meta+@,,Window to Desktop 2";
|
||||
"kwin"."Window to Desktop 20" = "none,,Window to Desktop 20";
|
||||
"kwin"."Window to Desktop 3" = "Meta+#,,Window to Desktop 3";
|
||||
"kwin"."Window to Desktop 4" = "Meta+$,,Window to Desktop 4";
|
||||
"kwin"."Window to Desktop 5" = "Meta+%,,Window to Desktop 5";
|
||||
"kwin"."Window to Desktop 6" = "none,,Window to Desktop 6";
|
||||
"kwin"."Window to Desktop 7" = "none,,Window to Desktop 7";
|
||||
"kwin"."Window to Desktop 8" = "none,,Window to Desktop 8";
|
||||
"kwin"."Window to Desktop 9" = "none,,Window to Desktop 9";
|
||||
"kwin"."Window to Next Desktop" = "none,,Window to Next Desktop";
|
||||
"kwin"."Window to Next Screen" = "Meta+Shift+Right";
|
||||
"kwin"."Window to Previous Desktop" = "none,,Window to Previous Desktop";
|
||||
"kwin"."Window to Previous Screen" = "Meta+Shift+Left";
|
||||
"kwin"."Window to Screen 0" = "none,,Move Window to Screen 0";
|
||||
"kwin"."Window to Screen 1" = "none,,Move Window to Screen 1";
|
||||
"kwin"."Window to Screen 2" = "none,,Move Window to Screen 2";
|
||||
"kwin"."Window to Screen 3" = "none,,Move Window to Screen 3";
|
||||
"kwin"."Window to Screen 4" = "none,,Move Window to Screen 4";
|
||||
"kwin"."Window to Screen 5" = "none,,Move Window to Screen 5";
|
||||
"kwin"."Window to Screen 6" = "none,,Move Window to Screen 6";
|
||||
"kwin"."Window to Screen 7" = "none,,Move Window to Screen 7";
|
||||
"kwin"."view_actual_size" = "Meta+0";
|
||||
"kwin"."view_zoom_in" = ["Meta++" "Meta+=,Meta++" "Meta+=,Zoom In"];
|
||||
"kwin"."view_zoom_out" = "Meta+-";
|
||||
"mediacontrol"."mediavolumedown" = "none,,Media volume down";
|
||||
"mediacontrol"."mediavolumeup" = "none,,Media volume up";
|
||||
"mediacontrol"."nextmedia" = "Media Next";
|
||||
"mediacontrol"."pausemedia" = "Media Pause";
|
||||
"mediacontrol"."playmedia" = "none,,Play media playback";
|
||||
"mediacontrol"."playpausemedia" = "Media Play";
|
||||
"mediacontrol"."previousmedia" = "Media Previous";
|
||||
"mediacontrol"."stopmedia" = "Media Stop";
|
||||
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
|
||||
"org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
|
||||
"org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
|
||||
"org_kde_powerdevil"."Hibernate" = "Hibernate";
|
||||
"org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up";
|
||||
"org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up";
|
||||
"org_kde_powerdevil"."Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
|
||||
"org_kde_powerdevil"."PowerDown" = "Power Down";
|
||||
"org_kde_powerdevil"."PowerOff" = "Power Off";
|
||||
"org_kde_powerdevil"."Sleep" = "Sleep";
|
||||
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
||||
"org_kde_powerdevil"."Turn Off Screen" = [ ];
|
||||
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B,Battery" "Meta+B,Switch Power Profile"];
|
||||
"plasmashell"."activate application launcher" = ["Meta" "Alt+F1,Meta" "Alt+F1,Activate Application Launcher"];
|
||||
"plasmashell"."activate task manager entry 1" = "none,Meta+1,Activate Task Manager Entry 1";
|
||||
"plasmashell"."activate task manager entry 10" = "none,Meta+0,Activate Task Manager Entry 10";
|
||||
"plasmashell"."activate task manager entry 2" = "none,Meta+2,Activate Task Manager Entry 2";
|
||||
"plasmashell"."activate task manager entry 3" = "none,Meta+3,Activate Task Manager Entry 3";
|
||||
"plasmashell"."activate task manager entry 4" = "none,Meta+4,Activate Task Manager Entry 4";
|
||||
"plasmashell"."activate task manager entry 5" = "none,Meta+5,Activate Task Manager Entry 5";
|
||||
"plasmashell"."activate task manager entry 6" = "Meta+6";
|
||||
"plasmashell"."activate task manager entry 7" = "Meta+7";
|
||||
"plasmashell"."activate task manager entry 8" = "Meta+8";
|
||||
"plasmashell"."activate task manager entry 9" = "Meta+9";
|
||||
"plasmashell"."clear-history" = "none,,Clear Clipboard History";
|
||||
"plasmashell"."clipboard_action" = "Meta+Ctrl+X";
|
||||
"plasmashell"."cycle-panels" = "Meta+Alt+P";
|
||||
"plasmashell"."cycleNextAction" = "none,,Next History Item";
|
||||
"plasmashell"."cyclePrevAction" = "none,,Previous History Item";
|
||||
"plasmashell"."manage activities" = "Meta+Q";
|
||||
"plasmashell"."next activity" = "Meta+A,none,Walk through activities";
|
||||
"plasmashell"."previous activity" = "Meta+Shift+A,none,Walk through activities (Reverse)";
|
||||
"plasmashell"."repeat_action" = "none,Meta+Ctrl+R,Manually Invoke Action on Current Clipboard";
|
||||
"plasmashell"."show dashboard" = "Ctrl+F12";
|
||||
"plasmashell"."show-barcode" = "none,,Show Barcode…";
|
||||
"plasmashell"."show-on-mouse-pos" = "Meta+V";
|
||||
"plasmashell"."stop current activity" = "Meta+S";
|
||||
"plasmashell"."switch to next activity" = "none,,Switch to Next Activity";
|
||||
"plasmashell"."switch to previous activity" = "none,,Switch to Previous Activity";
|
||||
"plasmashell"."toggle do not disturb" = "none,,Toggle do not disturb";
|
||||
};
|
||||
configFile = {
|
||||
"baloofilerc"."General"."dbVersion" = 2;
|
||||
"baloofilerc"."General"."exclude filters" = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.tfstate*,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.terraform,.venv,venv,core-dumps,lost+found";
|
||||
"baloofilerc"."General"."exclude filters version" = 9;
|
||||
"dolphinrc"."KFileDialog Settings"."Places Icons Auto-resize" = false;
|
||||
"dolphinrc"."KFileDialog Settings"."Places Icons Static Size" = 22;
|
||||
"katerc"."General"."Days Meta Infos" = 30;
|
||||
"katerc"."General"."Save Meta Infos" = true;
|
||||
"katerc"."General"."Show Full Path in Title" = false;
|
||||
"katerc"."General"."Show Menu Bar" = true;
|
||||
"katerc"."General"."Show Status Bar" = true;
|
||||
"katerc"."General"."Show Tab Bar" = true;
|
||||
"katerc"."General"."Show Url Nav Bar" = true;
|
||||
"katerc"."KTextEditor Renderer"."Animate Bracket Matching" = false;
|
||||
"katerc"."KTextEditor Renderer"."Auto Color Theme Selection" = true;
|
||||
"katerc"."KTextEditor Renderer"."Color Theme" = "Breeze Light";
|
||||
"katerc"."KTextEditor Renderer"."Line Height Multiplier" = 1;
|
||||
"katerc"."KTextEditor Renderer"."Show Indentation Lines" = false;
|
||||
"katerc"."KTextEditor Renderer"."Show Whole Bracket Expression" = false;
|
||||
"katerc"."KTextEditor Renderer"."Text Font" = "Hack,10,-1,7,400,0,0,0,0,0,0,0,0,0,0,1";
|
||||
"katerc"."KTextEditor Renderer"."Word Wrap Marker" = false;
|
||||
"katerc"."filetree"."editShade" = "183,220,246";
|
||||
"katerc"."filetree"."listMode" = false;
|
||||
"katerc"."filetree"."middleClickToClose" = false;
|
||||
"katerc"."filetree"."shadingEnabled" = true;
|
||||
"katerc"."filetree"."showCloseButton" = false;
|
||||
"katerc"."filetree"."showFullPathOnRoots" = false;
|
||||
"katerc"."filetree"."showToolbar" = true;
|
||||
"katerc"."filetree"."sortRole" = 0;
|
||||
"katerc"."filetree"."viewShade" = "211,190,222";
|
||||
"kcminputrc"."Mouse"."X11LibInputXAccelProfileFlat" = true;
|
||||
"kded5rc"."Module-browserintegrationreminder"."autoload" = false;
|
||||
"kded5rc"."Module-device_automounter"."autoload" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Allow Expansion" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Automatically select filename extension" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Breadcrumb Navigation" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Decoration position" = 2;
|
||||
"kdeglobals"."KFileDialog Settings"."LocationCombo Completionmode" = 5;
|
||||
"kdeglobals"."KFileDialog Settings"."PathCombo Completionmode" = 5;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Bookmarks" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Full Path" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Inline Previews" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Preview" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Show Speedbar" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Show hidden files" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Sort by" = "Name";
|
||||
"kdeglobals"."KFileDialog Settings"."Sort directories first" = true;
|
||||
"kdeglobals"."KFileDialog Settings"."Sort hidden files last" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Sort reversed" = false;
|
||||
"kdeglobals"."KFileDialog Settings"."Speedbar Width" = 131;
|
||||
"kdeglobals"."KFileDialog Settings"."View Style" = "DetailTree";
|
||||
"kdeglobals"."WM"."activeBackground" = "227,229,231";
|
||||
"kdeglobals"."WM"."activeBlend" = "227,229,231";
|
||||
"kdeglobals"."WM"."activeForeground" = "35,38,41";
|
||||
"kdeglobals"."WM"."inactiveBackground" = "239,240,241";
|
||||
"kdeglobals"."WM"."inactiveBlend" = "239,240,241";
|
||||
"kdeglobals"."WM"."inactiveForeground" = "112,125,138";
|
||||
"kiorc"."Confirmations"."ConfirmDelete" = true;
|
||||
"kscreenlockerrc"."Daemon"."LockOnResume" = false;
|
||||
"kwalletrc"."Wallet"."First Use" = false;
|
||||
"kwinrc"."Desktops"."Id_1" = "48e67529-9a58-4caa-bc27-a02ddf746389";
|
||||
"kwinrc"."Desktops"."Id_2" = "da76cc12-2e22-4fb4-87aa-3c17d7be63b0";
|
||||
"kwinrc"."Desktops"."Id_3" = "a6cb23ae-3d6a-4609-b593-d956f16f125c";
|
||||
"kwinrc"."Desktops"."Id_4" = "6e61e508-b5f1-4053-a9d3-34b80a155a10";
|
||||
"kwinrc"."Desktops"."Number" = 4;
|
||||
"kwinrc"."Desktops"."Rows" = 1;
|
||||
"kwinrc"."Plugins"."poloniumEnabled" = true;
|
||||
"kwinrc"."Tiling"."padding" = 4;
|
||||
"kwinrc"."Xwayland"."Scale" = 1.25;
|
||||
"plasma-localerc"."Formats"."LANG" = "en_US.UTF-8";
|
||||
"plasmarc"."Wallpapers"."usersWallpapers" = "";
|
||||
"spectaclerc"."ImageSave"."translatedScreenshotsFolder" = "Screenshots";
|
||||
"spectaclerc"."VideoSave"."translatedScreencastsFolder" = "Screencasts";
|
||||
};
|
||||
dataFile = {
|
||||
"kate/anonymous.katesession"."Kate Plugins"."cmaketoolsplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."compilerexplorer" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."eslintplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."externaltoolsplugin" = true;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."formatplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katebacktracebrowserplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katebuildplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katecloseexceptplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katecolorpickerplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katectagsplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katefilebrowserplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katefiletreeplugin" = true;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."kategdbplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."kategitblameplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katekonsoleplugin" = true;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."kateprojectplugin" = true;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katereplicodeplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katesearchplugin" = true;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katesnippetsplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katesymbolviewerplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katexmlcheckplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."katexmltoolsplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."keyboardmacrosplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."ktexteditorpreviewplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."latexcompletionplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."lspclientplugin" = true;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."openlinkplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."rainbowparens" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."rbqlplugin" = false;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."tabswitcherplugin" = true;
|
||||
"kate/anonymous.katesession"."Kate Plugins"."textfilterplugin" = true;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Active ViewSpace" = 0;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-H-Splitter" = "0,594,0";
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-0-Bar-0-TvList" = "kate_private_plugin_katefiletreeplugin,kateproject,kateprojectgit,lspclient_symbol_outline";
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-0-LastSize" = 200;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-0-SectSizes" = 0;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-0-Splitter" = 371;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-1-Bar-0-TvList" = "";
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-1-LastSize" = 200;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-1-SectSizes" = 0;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-1-Splitter" = 371;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-2-Bar-0-TvList" = "";
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-2-LastSize" = 200;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-2-SectSizes" = 0;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-2-Splitter" = 594;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-3-Bar-0-TvList" = "output,diagnostics,kate_plugin_katesearch,kateprojectinfo,kate_private_plugin_katekonsoleplugin";
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-3-LastSize" = 200;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-3-SectSizes" = 0;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-3-Splitter" = 209;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-Style" = 2;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-Sidebar-Visible" = true;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-diagnostics-Position" = 3;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-diagnostics-Show-Button-In-Sidebar" = true;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-diagnostics-Visible" = false;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_plugin_katesearch-Position" = 3;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_plugin_katesearch-Show-Button-In-Sidebar" = true;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_plugin_katesearch-Visible" = false;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katefiletreeplugin-Position" = 0;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katefiletreeplugin-Show-Button-In-Sidebar" = true;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katefiletreeplugin-Visible" = false;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katekonsoleplugin-Position" = 3;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katekonsoleplugin-Show-Button-In-Sidebar" = true;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kate_private_plugin_katekonsoleplugin-Visible" = false;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateproject-Position" = 0;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateproject-Show-Button-In-Sidebar" = true;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateproject-Visible" = false;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectgit-Position" = 0;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectgit-Show-Button-In-Sidebar" = true;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectgit-Visible" = false;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectinfo-Position" = 3;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectinfo-Show-Button-In-Sidebar" = true;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-kateprojectinfo-Visible" = false;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-lspclient_symbol_outline-Position" = 0;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-lspclient_symbol_outline-Show-Button-In-Sidebar" = true;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-lspclient_symbol_outline-Visible" = false;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-output-Position" = 3;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-output-Show-Button-In-Sidebar" = true;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-ToolView-output-Visible" = false;
|
||||
"kate/anonymous.katesession"."MainWindow0"."Kate-MDI-V-Splitter" = "0,369,0";
|
||||
"kate/anonymous.katesession"."MainWindow0"."ToolBarsMovable" = "Disabled";
|
||||
"kate/anonymous.katesession"."MainWindow0 Settings"."ToolBarsMovable" = "Disabled";
|
||||
"kate/anonymous.katesession"."MainWindow0 Settings"."WindowState" = 8;
|
||||
"kate/anonymous.katesession"."MainWindow0-Splitter 0"."Children" = "MainWindow0-ViewSpace 0";
|
||||
"kate/anonymous.katesession"."MainWindow0-Splitter 0"."Orientation" = 1;
|
||||
"kate/anonymous.katesession"."MainWindow0-Splitter 0"."Sizes" = 594;
|
||||
"kate/anonymous.katesession"."Open Documents"."Count" = 1;
|
||||
"kate/anonymous.katesession"."Open MainWindows"."Count" = 1;
|
||||
"kate/anonymous.katesession"."Plugin:kateprojectplugin:"."projects" = "";
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."BinaryFiles" = false;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."CurrentExcludeFilter" = "-1";
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."CurrentFilter" = "-1";
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."ExcludeFilters" = "";
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."ExpandSearchResults" = false;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."Filters" = "";
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."FollowSymLink" = false;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."HiddenFiles" = false;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."MatchCase" = false;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."Place" = 1;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."Recursive" = true;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."Replaces" = "";
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."Search" = "";
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchAsYouTypeAllProjects" = true;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchAsYouTypeCurrentFile" = true;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchAsYouTypeFolder" = true;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchAsYouTypeOpenFiles" = true;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchAsYouTypeProject" = true;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchDiskFiles" = "";
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SearchDiskFiless" = "";
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."SizeLimit" = 128;
|
||||
"kate/anonymous.katesession"."Plugin:katesearchplugin:MainWindow:0"."UseRegExp" = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
xsession.windowManager.i3 = {
|
||||
enable = true;
|
||||
config = {
|
||||
modifier = "Mod4";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -2,18 +2,26 @@
|
||||
# your system. Help is available in the configuration.nix(5) man page, on
|
||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
../../roles/common/default.nix
|
||||
../../roles/nix/default.nix
|
||||
(import ../../roles/kodi/default.nix { autologin = true; wayland = true; inherit lib; inherit pkgs; })
|
||||
(import ../../roles/users/default.nix { extraGroups = []; })
|
||||
];
|
||||
|
||||
roles = {
|
||||
audio.enable = true;
|
||||
kodi = {
|
||||
enable = true;
|
||||
autologin = true;
|
||||
wayland = true;
|
||||
};
|
||||
users.enable = true;
|
||||
};
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
@@ -22,6 +30,8 @@
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
services.displayManager.enable = mkForce false;
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
#
|
||||
|
||||
@@ -10,9 +10,12 @@
|
||||
];
|
||||
|
||||
roles = {
|
||||
audio.enable = true;
|
||||
bluetooth.enable = true;
|
||||
desktop.enable = true;
|
||||
nfs-mounts.enable = true;
|
||||
printing.enable = true;
|
||||
spotifyd.enable = true;
|
||||
users = {
|
||||
enable = true;
|
||||
extraGroups = [ "video" ];
|
||||
|
||||
@@ -2,23 +2,32 @@
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ inputs, lib, pkgs, ... }:
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
../../roles/common/default.nix
|
||||
(import ../../roles/desktop/default.nix { x11Only = true; inherit inputs; inherit pkgs; })
|
||||
../../roles/kids/default.nix
|
||||
(import ../../roles/kodi/default.nix { autologin = false; wayland = false; inherit lib; inherit pkgs; })
|
||||
../../roles/nfs-mounts/default.nix
|
||||
../../roles/nix/default.nix
|
||||
../../roles/printing/default.nix
|
||||
(import ../../roles/users/default.nix { extraGroups = ["input" "libvirtd"]; })
|
||||
../../roles/virtualisation/default.nix
|
||||
];
|
||||
|
||||
roles = {
|
||||
audio.enable = true;
|
||||
desktop = {
|
||||
enable = true;
|
||||
x11Only = true;
|
||||
};
|
||||
kodi.enable = true;
|
||||
nfs-mounts.enable = true;
|
||||
printing.enable = true;
|
||||
spotifyd.enable = true;
|
||||
users = {
|
||||
enable = true;
|
||||
extraGroups = [ "input" "libvirtd" ];
|
||||
kids = true;
|
||||
};
|
||||
virtualisation.enable = true;
|
||||
};
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
@@ -15,11 +15,17 @@
|
||||
"nvidia_uvm"
|
||||
"nvidia_drm"
|
||||
];
|
||||
boot.kernelParams = [
|
||||
"nvidia_drm.fbdev=1"
|
||||
"nvidia_drm.modeset=1"
|
||||
];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
services.xserver.screenSection = ''Option "metamodes" "3440x1440_165 +0+0"'';
|
||||
services.xserver.enableTearFree = true;
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
@@ -46,6 +52,14 @@
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
services.beesd.filesystems = {
|
||||
root = {
|
||||
spec = "LABEL=nixos";
|
||||
hashTableSizeMB = 4096;
|
||||
verbosity = "crit";
|
||||
};
|
||||
};
|
||||
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
||||
4
packages/default.nix
Normal file
4
packages/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
nextcloudTalkDesktop = pkgs.callPackage ./nextcloud-talk-desktop {};
|
||||
}
|
||||
32
roles/audio/default.nix
Normal file
32
roles/audio/default.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ lib, config, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.roles.audio;
|
||||
in
|
||||
{
|
||||
options.roles.audio = {
|
||||
enable = mkEnableOption "Enable the audio role";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
paprefs
|
||||
pavucontrol
|
||||
pulsemixer
|
||||
];
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
hardware.pulseaudio.package = pkgs.pulseaudioFull;
|
||||
hardware.pulseaudio.extraConfig = "
|
||||
load-module module-combine-sink
|
||||
load-module module-switch-on-connect
|
||||
";
|
||||
};
|
||||
|
||||
}
|
||||
26
roles/bluetooth/default.nix
Normal file
26
roles/bluetooth/default.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{ lib, config, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.roles.bluetooth;
|
||||
in
|
||||
{
|
||||
options.roles.bluetooth = {
|
||||
enable = mkEnableOption "Enable the bluetooth role";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
hardware.bluetooth.settings = {
|
||||
General = {
|
||||
Enable = "Source,Sink,Media,Socket";
|
||||
};
|
||||
};
|
||||
|
||||
services.blueman.enable = true;
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,24 +1,21 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.roles;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./audio
|
||||
./bluetooth
|
||||
./desktop
|
||||
./kodi
|
||||
./nfs-mounts
|
||||
./printing
|
||||
./secrets
|
||||
./spotifyd
|
||||
./users
|
||||
./virtualisation
|
||||
];
|
||||
|
||||
options.roles = {
|
||||
enable = mkEnableOption "Enable roles";
|
||||
};
|
||||
|
||||
config = {
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
@@ -37,11 +34,6 @@ in
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
git
|
||||
@@ -66,9 +58,6 @@ in
|
||||
substituters = [
|
||||
"https://hyprland.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -4,6 +4,31 @@ with lib;
|
||||
|
||||
let
|
||||
cfg = config.roles.desktop;
|
||||
|
||||
basePackages = with pkgs; [
|
||||
brightnessctl
|
||||
mangohud # Should probably get refactored with steam/gamescope out to a gaming role
|
||||
polonium # auto tiling kwin addon
|
||||
];
|
||||
|
||||
x11BasePackages = with pkgs; [
|
||||
|
||||
];
|
||||
|
||||
x11OnlyPackages = with pkgs; [
|
||||
emacs
|
||||
];
|
||||
|
||||
waylandBasePackages = with pkgs; [
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
mako
|
||||
];
|
||||
|
||||
waylandOnlyPackages = with pkgs; [
|
||||
emacs-gtk
|
||||
];
|
||||
in
|
||||
{
|
||||
options.roles.desktop = {
|
||||
@@ -14,7 +39,7 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
config =
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
@@ -22,8 +47,10 @@ in
|
||||
options = "caps:escape";
|
||||
};
|
||||
services.xserver.enable = true;
|
||||
services.xserver.displayManager = {
|
||||
lightdm.enable = true;
|
||||
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = !cfg.x11Only;
|
||||
};
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
|
||||
@@ -38,12 +65,6 @@ in
|
||||
programs.dconf.enable = true;
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; mkIf (!cfg.x11Only) [
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
mako
|
||||
];
|
||||
programs.sway = mkIf (!cfg.x11Only) {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
@@ -52,10 +73,38 @@ in
|
||||
|
||||
programs.kdeconnect.enable = true;
|
||||
programs.java.enable = true;
|
||||
programs.gamemode = {
|
||||
enable = true;
|
||||
|
||||
};
|
||||
programs.gamescope = {
|
||||
enable = true;
|
||||
#capSysNice = true;
|
||||
args = [
|
||||
#"--adaptive-sync"
|
||||
#"--nested-refresh 165"
|
||||
#"--backend wayland"
|
||||
"--hdr-enabled"
|
||||
"--hdr-itm-enable"
|
||||
"--hdr-debug-force-output"
|
||||
"--mangoapp"
|
||||
"--rt"
|
||||
"--steam"
|
||||
#"--xwayland-count 2"
|
||||
];
|
||||
env = {
|
||||
#PROTON_DISABLE_NVAPI = "1";
|
||||
MANGOHUD = "1";
|
||||
#MANGOHUD_CONFIG = "cpu_temp gpu_temp ram vram";
|
||||
};
|
||||
};
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
gamescopeSession = {
|
||||
enable = true;
|
||||
};
|
||||
#package = pkgs.steam.override {
|
||||
#withJava = true;
|
||||
#withPrimus = true;
|
||||
@@ -71,6 +120,15 @@ in
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
users.extraGroups.docker.members = [ "johno" ];
|
||||
|
||||
environment.systemPackages = with pkgs; mkMerge [
|
||||
basePackages
|
||||
x11BasePackages
|
||||
(mkIf cfg.x11Only x11OnlyPackages)
|
||||
# TODO: Do we need a "wayland only" mode?
|
||||
(mkIf (!cfg.x11Only) waylandBasePackages)
|
||||
(mkIf (!cfg.x11Only) waylandOnlyPackages)
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -25,38 +25,47 @@ in
|
||||
steam-library
|
||||
youtube
|
||||
]);
|
||||
in {
|
||||
users.extraUsers.kodi.isNormalUser = true;
|
||||
in mkIf cfg.enable
|
||||
{
|
||||
users.extraUsers.kodi.isNormalUser = true;
|
||||
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [ 8080 ];
|
||||
allowedUDPPorts = [ 8080 ];
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [ 8080 ];
|
||||
allowedUDPPorts = [ 8080 ];
|
||||
};
|
||||
|
||||
services = if cfg.autologin then mkMerge [
|
||||
(mkIf cfg.wayland {
|
||||
cage = mkIf cfg.wayland {
|
||||
user = "kodi";
|
||||
program = "${kodiPkg}/bin/kodi-standalone";
|
||||
enable = true;
|
||||
};
|
||||
xserver = {
|
||||
enable = false;
|
||||
autorun = false;
|
||||
};
|
||||
})
|
||||
|
||||
(mkIf (!cfg.wayland) {
|
||||
xserver = {
|
||||
enable = true;
|
||||
desktopManager.kodi = {
|
||||
enable = true;
|
||||
package = kodiPkg;
|
||||
};
|
||||
displayManager.lightdm = {
|
||||
enable = true;
|
||||
greeter.enable = false;
|
||||
};
|
||||
};
|
||||
displayManager = {
|
||||
autoLogin.enable = true;
|
||||
autoLogin.user = "kodi";
|
||||
defaultSession = "kodi";
|
||||
sessionData.autologinSession = "kodi";
|
||||
};
|
||||
})
|
||||
] else {};
|
||||
};
|
||||
|
||||
services = mkIf cfg.autologin {
|
||||
cage = mkIf cfg.wayland {
|
||||
user = "kodi";
|
||||
program = "${kodiPkg}/bin/kodi-standalone";
|
||||
enable = true;
|
||||
};
|
||||
|
||||
xserver = mkIf (!cfg.wayland) {
|
||||
enable = true;
|
||||
desktopManager.kodi = {
|
||||
enable = true;
|
||||
package = kodiPkg;
|
||||
};
|
||||
displayManager.lightdm = {
|
||||
enable = true;
|
||||
greeter.enable = false;
|
||||
};
|
||||
};
|
||||
displayManager = mkIf (!cfg.wayland) {
|
||||
autoLogin.enable = true;
|
||||
autoLogin.user = "kodi";
|
||||
defaultSession = "kodi";
|
||||
sessionData.autologinSession = "kodi";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -16,15 +16,16 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
fileSystems."/media" = {
|
||||
device = "10.0.0.43:/media";
|
||||
fsType = "nfs";
|
||||
options = [
|
||||
"defaults"
|
||||
"nofail"
|
||||
"softreval"
|
||||
];
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
fileSystems."/media" = {
|
||||
device = "10.0.0.43:/media";
|
||||
fsType = "nfs";
|
||||
options = [
|
||||
"defaults"
|
||||
"nofail"
|
||||
"softreval"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,14 +2,22 @@
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.roles.printing;
|
||||
in
|
||||
{
|
||||
options.roles.printing = {
|
||||
enable = mkEnableOption "Enable default printing setup";
|
||||
};
|
||||
|
||||
config = {
|
||||
services.printing.enable = true;
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
services.printing.enable = true;
|
||||
|
||||
# TODO: Add actual printer setup config here...
|
||||
};
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
8
roles/secrets/default.nix
Normal file
8
roles/secrets/default.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ config, lib, pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
sops.defaultSopsFile = ../../secrets/secrets.yaml;
|
||||
sops.defaultSopsFormat = "yaml";
|
||||
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" "/home/johno/.ssh/id_ed25519" ];
|
||||
sops.secrets.example_key = {};
|
||||
}
|
||||
40
roles/spotifyd/default.nix
Normal file
40
roles/spotifyd/default.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.roles.spotifyd;
|
||||
in
|
||||
{
|
||||
options.roles.spotifyd = {
|
||||
enable = mkEnableOption "Enable the spotifyd role";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
roles.audio.enable = true;
|
||||
|
||||
services.spotifyd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
global = {
|
||||
use_mpris = false;
|
||||
backend = "alsa";
|
||||
device = "sysdefault";
|
||||
bitrate = 320;
|
||||
cache_path = "";
|
||||
zeroconf_port = 1234;
|
||||
autoplay = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
1234
|
||||
57621
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
5353
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -21,7 +21,7 @@ in
|
||||
kidsPackages = with pkgs; [
|
||||
firefox
|
||||
];
|
||||
in {
|
||||
in mkIf cfg.enable {
|
||||
users.users.johno = {
|
||||
isNormalUser = true;
|
||||
description = "John Ogle";
|
||||
|
||||
@@ -2,13 +2,17 @@
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.roles.virtualisation;
|
||||
in
|
||||
{
|
||||
options.roles.virtualisation = {
|
||||
enable = mkEnableOption "Enable virtualisation";
|
||||
};
|
||||
|
||||
config = {
|
||||
virtualisation.libvirtd.enable = true;
|
||||
programs.virt-manager.enable = true;
|
||||
};
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
virtualisation.libvirtd.enable = true;
|
||||
programs.virt-manager.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
48
secrets/secrets.yaml
Normal file
48
secrets/secrets.yaml
Normal file
@@ -0,0 +1,48 @@
|
||||
hello: ENC[AES256_GCM,data:5ZpbPx3D8gQc1fOhViUqiCr0zLWYotB+vIBixqTbqP9XLS52y6tr5DXus0aV9mTgka5deqc=,iv:yPJaCqDD9WD56swfBjSm7A62ZTTIQDqyAKOgP1ese+U=,tag:bo8+7Ne2f9aEZSvpkt1fzA==,type:str]
|
||||
example_key: ENC[AES256_GCM,data:v15bEcb0H3vaj13blg==,iv:9P3IA7ChBamo41VE8G8tj46sZqeijsO1LcvwLtEPVPA=,tag:o/lAyAYYGNLP9EjQNa/K8Q==,type:str]
|
||||
example_array:
|
||||
- ENC[AES256_GCM,data:3Vwa7dfNfKzRc/xpk6I=,iv:IevBgxwWdaBvZY1ywteWcfWwDIA8lK3FTWs67lLBKxw=,tag:Mx5lzUeNZ/3wJBWAl5XSBw==,type:str]
|
||||
- ENC[AES256_GCM,data:epkT6WPGW5Oe/S+4HtU=,iv:N0yoDuieAaEi+NuCoCL4zrkhaDDdkttboI89m+UccjQ=,tag:OoERRByb0OM4un9oGLJQgA==,type:str]
|
||||
#ENC[AES256_GCM,data:YzMFXxn3sbbHpGB4jPRtRw==,iv:TN6ogQuH7c6xtDoWt0Ew9B2f7wuaipJynvscZmaJYoU=,tag:No0UwEktEyMNBg/46P+Zmg==,type:comment]
|
||||
example_number: ENC[AES256_GCM,data:jmLoVC+8YIlB2A==,iv:u9GztD/aE9UN5zWq3Am2nhYwmYt3sf8sy65MHbhVoD0=,tag:wKuf1mMr5XBJveJrz0uHPA==,type:float]
|
||||
example_booleans:
|
||||
- ENC[AES256_GCM,data:ZacILA==,iv:xo+7aFFQXzbJzKDY0mYTeFLf10AlnHkywDRAMHeprEM=,tag:F/OnJdqjrZP02sTLWLmnbg==,type:bool]
|
||||
- ENC[AES256_GCM,data:NaFrvrs=,iv:kKDmGs9u/w5qrZ/379Jlx8AotUVADvH+eHwHCqykmkE=,tag:nD9TsmkXUm4ABaT1ABWmcg==,type:bool]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1ls6a033d4p4u8h4rwazjwt8w4c4xg73wq0mdnm64jajxzcz4k9asvjnks3
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjak9vRVJtVmJoanhEZ0hQ
|
||||
MFJwMEE4UDcrRkdPRmZ6R09FSDY1aTk3Y1dNClZJYXRLNU5senR3Qzh6VmZGMlhu
|
||||
bnl6VjlaUEFISnBtSTVrcEd0ZjI5Q2MKLS0tIFl1b3A5ZWVqc1gvWVZnZis0ZHFk
|
||||
bWhnNVB2TUJ4YzY4NHdSVXhPc3dReTgKWRYBbBE3+oGsRNw1CROhFY+btENbShfv
|
||||
gw3IdW7OoZV6JpJBOcI82eOuOkIxrmgSGDGeyy10/a5MA/cB1umm+w==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age12l5u7sw59u5pkwp83qm8t3ff7uv0ld2c9k3zh5j4ame9k2szcynqu7ftqe
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGcmV3TDlNL2Zxb0h5QTYx
|
||||
QkVmczA0MDc2ZnpNNU1YeFVzSXJwc3RWUmk4CjF4bHIrVU9VM3htTUxGZ2FUR256
|
||||
UEovdVV2cmNIbkloS1VobTNFSDVyRG8KLS0tIEFhUk5kL3hCNGs4MGJBTmNJaVFm
|
||||
b2ZBUGJ1K0lKTitKYTRUMWszQzhBU0UKBaM6t6JmWfiG+wPorGea1gqvV5RSIPyw
|
||||
6yb2PcH2oZ0HrjJM5sjfu7XOWY3KneiZZikR1BpD5KvevfagWTSR/w==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1fa3zqavfmqk4ssa22yne9td90gyqv9q5a8y0s8jp3xak8q7p3yjqyn7rkg
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaMFJiNjVOb0lTcmJ3VnhH
|
||||
WlRKZERRZFM3TFZBZGNSZC9GdHlHakMza21zClJ3SDdFUkVRc3oyVVU3WEtDQzBu
|
||||
OEFqS3NwbHZFUlpCYlN6RW84N0F1amcKLS0tIHFZK21aTHdwZ2dWbVRrWEZDWFZj
|
||||
aU1IQzdTMVhnbHhsNENwMG05dXhOU2MK8fEJea9sL5JLgltVlTI6mRDb+Tl83Iz7
|
||||
4wPYvo68cn8vimXqSk45ldHRrNa3zhYai3CalQaGtDT3fkWGvSq0zQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-09-28T15:44:39Z"
|
||||
mac: ENC[AES256_GCM,data:YUi+AbS6DQTmrSyOXsbkZWfWaMyKGR8fYm/MHcxmqChi8hng+UWHBZjsLBe6ef/FLH3rnP6bhfwK8KYnVS6fHvHahoqIq/BHydTsqrclnSgRAGl8Lh0yuhwISNRvP1AuW5pd50sdQaS0uGOtzOCharI/pZ9H+cmt2SB5WOCdeLs=,iv:2nBG6it3tNSLSia8hGzCcesuK9QwzB9EzfjWegjQ2kw=,tag:RGGPAPw/rQKhWA2OqLjTJw==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.9.0
|
||||
Reference in New Issue
Block a user