summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2022-09-14 12:08:10 +0300
committerAzat Bahawi <azat@bahawi.net>2022-09-14 12:08:10 +0300
commit6a02d658dde1fd5e9d9e84478796b6881b236578 (patch)
tree02b5e0372998ca089b22e2d78bfa499b736ee13e /modules
parentcc1ed99b3ec1cb8d025c11bc4db45bf643ef3780 (diff)
2022-09-14
Diffstat (limited to 'modules')
-rw-r--r--modules/nixfiles/alacritty.nix2
-rw-r--r--modules/nixfiles/common/nix/default.nix17
-rw-r--r--modules/nixfiles/common/xdg.nix67
-rw-r--r--modules/nixfiles/games/minecraft.nix12
-rw-r--r--modules/nixfiles/profiles/common.nix106
-rw-r--r--modules/nixfiles/profiles/default.nix109
-rw-r--r--modules/nixfiles/profiles/dev/common.nix267
-rw-r--r--modules/nixfiles/profiles/dev/containers.nix (renamed from modules/nixfiles/profiles/dev/containers/default.nix)10
-rw-r--r--modules/nixfiles/profiles/dev/default.nix274
-rw-r--r--modules/nixfiles/profiles/dev/sql.nix (renamed from modules/nixfiles/profiles/dev/sql/default.nix)7
-rw-r--r--modules/nixfiles/profiles/headful.nix15
-rw-r--r--modules/nixfiles/profiles/headless.nix13
-rw-r--r--modules/nixfiles/x11.nix4
-rw-r--r--modules/nixfiles/zathura.nix6
14 files changed, 448 insertions, 461 deletions
diff --git a/modules/nixfiles/alacritty.nix b/modules/nixfiles/alacritty.nix
index 4afd11b..728e6ee 100644
--- a/modules/nixfiles/alacritty.nix
+++ b/modules/nixfiles/alacritty.nix
@@ -43,7 +43,7 @@ in {
};
inherit size;
};
- colors = with profiles.common.colourScheme; {
+ colors = with config.colourScheme; {
primary = {inherit background foreground;};
cursor = {
text = "CellBackground";
diff --git a/modules/nixfiles/common/nix/default.nix b/modules/nixfiles/common/nix/default.nix
index 550749a..9fc585b 100644
--- a/modules/nixfiles/common/nix/default.nix
+++ b/modules/nixfiles/common/nix/default.nix
@@ -14,10 +14,9 @@
with lib; {
_module.args = let
importNixpkgs = nixpkgs:
- import nixpkgs {
- inherit (config.nixpkgs) localSystem crossSystem config;
- };
+ import nixpkgs {inherit (config.nixpkgs) config localSystem;};
in rec {
+ pkgsLocal = importNixpkgs "${config.my.home}/src/nixpkgs"; # Impure!
pkgsMaster = importNixpkgs inputs.nixpkgs-master;
pkgsStable = importNixpkgs inputs.nixpkgs-stable;
pkgsRev = rev: hash:
@@ -27,7 +26,6 @@ with lib; {
inherit rev hash;
});
pkgsPR = pr: pkgsRev "refs/pull/${toString pr}/head";
- pkgsLocal = importNixpkgs "${config.my.home}/src/nixpkgs";
};
nix = let
@@ -51,9 +49,7 @@ with lib; {
registry =
mapAttrs (_: flake: {inherit flake;}) filteredInputs
- // {
- nixfiles.flake = inputs.self;
- };
+ // {nixfiles.flake = inputs.self;};
settings = {
trusted-users = ["root" "@wheel"];
@@ -96,7 +92,7 @@ with lib; {
// (with super; let
np = nodePackages;
in {
- # Normalises package names.
+ # Normalises package names. This is done purely for aesthetics.
dockerfile-language-server = np.dockerfile-language-server-nodejs;
editorconfig = editorconfig-core-c;
inherit (np) bash-language-server;
@@ -113,6 +109,7 @@ with lib; {
emacs-overlay.overlay
nix-minecraft-servers.overlays.default
nur.overlay
+ pollymc.overlay
xmonad-ng.overlays.default
];
@@ -123,9 +120,9 @@ with lib; {
localBinInPath = true;
- defaultPackages = mkForce [];
+ defaultPackages = [];
systemPackages = with pkgs;
- optionals config.profile.headful [
+ optionals this.isHeadful [
nix-top
nix-tree
];
diff --git a/modules/nixfiles/common/xdg.nix b/modules/nixfiles/common/xdg.nix
index 72a8e4c..60d5286 100644
--- a/modules/nixfiles/common/xdg.nix
+++ b/modules/nixfiles/common/xdg.nix
@@ -38,45 +38,50 @@ with lib; {
};
}
(mkIf this.isHeadful {
- mimeApps = let
- images = [
- "image/bmp"
- "image/gif"
- "image/jpeg"
- "image/jpg"
- "image/png"
- "image/svg+xml"
- "image/tiff"
- "image/webp"
- ];
- media = [
- "audio/aac"
- "audio/flac"
- "audio/mp3"
- "audio/ogg"
- "audio/wav"
- "audio/webm"
- "video/mkv"
- "video/mp4"
- "video/ogg"
- "video/webm"
- "video/x-matroska"
- ];
- in {
+ mimeApps = {
enable = true;
-
defaultApplications = mkMerge (mapAttrsToList
- (n: ms: genAttrs ms (_: ["${n}.desktop"]))
+ (n: v: genAttrs v (_: ["${n}.desktop"]))
{
- aria2 = ["application/x-bittorrent" "x-scheme-handler/magnet"];
- emacsclient = ["x-scheme-handler/mailto"];
+ emacsclient = [
+ "application/json"
+ "application/vnd.ms-publisher"
+ "application/x-desktop"
+ "application/x-shellscript"
+ "application/x-trash"
+ "application/x-wine-extension-ini"
+ "application/xml"
+ "text/markdown"
+ "text/plain"
+ ];
firefox = [
"text/html"
"x-scheme-handler/http"
"x-scheme-handler/https"
];
- gwenview = images;
- mpv = media;
+ gwenview = [
+ "image/bmp"
+ "image/gif"
+ "image/jpeg"
+ "image/jpg"
+ "image/png"
+ "image/svg+xml"
+ "image/tiff"
+ "image/webp"
+ ];
+ mpv = [
+ "audio/aac"
+ "audio/flac"
+ "audio/mp3"
+ "audio/ogg"
+ "audio/wav"
+ "audio/webm"
+ "video/mkv"
+ "video/mp4"
+ "video/ogg"
+ "video/webm"
+ "video/x-matroska"
+ ];
});
};
})
diff --git a/modules/nixfiles/games/minecraft.nix b/modules/nixfiles/games/minecraft.nix
index 2fc9bd8..e53f9eb 100644
--- a/modules/nixfiles/games/minecraft.nix
+++ b/modules/nixfiles/games/minecraft.nix
@@ -2,7 +2,6 @@
config,
lib,
pkgs,
- pkgsPR,
...
}:
with lib; let
@@ -21,16 +20,13 @@ in {
};
};
- # Configurations, opslist, whitelist and plugins are managed imperatively.
- # TODO Make it declarative.
config = mkMerge [
(mkIf cfg.client.enable {
- hm.home.packages = with pkgs; [
- UltimMC # I refuse to use a Microsoft account. Using GitHub is painful enough.
- jre # Unfortunately, this cannot be provided as a PATH injection to UltimMC.
- ];
+ hm.home.packages = with pkgs; [pollymc];
})
(mkIf cfg.server.enable {
+ # Configurations, opslist, whitelist and plugins are managed imperatively.
+ # TODO Make it declarative.
services.minecraft-server = {
enable = true;
eula = true;
@@ -47,7 +43,7 @@ in {
+ " ";
};
- # Found in /var/lib/minecraft/server.properties.
+ # Defined in /var/lib/minecraft/server.properties.
networking.firewall.allowedTCPPorts = [55565];
})
];
diff --git a/modules/nixfiles/profiles/common.nix b/modules/nixfiles/profiles/common.nix
deleted file mode 100644
index 3f77da6..0000000
--- a/modules/nixfiles/profiles/common.nix
+++ /dev/null
@@ -1,106 +0,0 @@
-{
- config,
- lib,
- pkgs,
- this,
- ...
-}:
-with lib; let
- cfg = config.nixfiles.modules.profiles.common;
-in {
- imports = [
- (mkAliasOptionModule ["colourScheme"] [
- "nixfiles"
- "modules"
- "profiles"
- "common"
- "colourScheme"
- ])
- ];
-
- options.nixfiles.modules.profiles.common = {
- enable = mkEnableOption "The most common profiles of all profiles.";
-
- colourScheme = let
- mkColour = default:
- mkOption {
- type = types.str;
- inherit default;
- description = "Color in a standard hexademical notation.";
- example = "#000000";
- };
- in rec {
- black = mkColour "#161719";
- red = mkColour "#cc6666";
- green = mkColour "#b5bd68";
- yellow = mkColour "#f0c674";
- blue = mkColour "#81a2be";
- magenta = mkColour "#b294bb";
- cyan = mkColour "#8abeb7";
- white = mkColour "#c5c8c6";
-
- brightBlack = mkColour "#969896";
- brightRed = mkColour "#cc6666";
- brightGreen = mkColour "#b5bd68";
- brightYellow = mkColour "#f0c674";
- brightBlue = mkColour "#81a2be";
- brightMagenta = mkColour "#b294bb";
- brightCyan = mkColour "#8abeb7";
- brightWhite = mkColour "#ffffff";
-
- background = black;
- foreground = white;
- };
- };
-
- config = mkIf cfg.enable {
- assertions = [
- {
- assertion = !(with this; isHeadless && isHeadful);
- message = ''
- The configuration cannot be both "headful" and "headless" at the same
- time.
- '';
- }
- ];
-
- profile = with this; {
- headless = isHeadless;
- headful = isHeadful;
- };
-
- nixfiles.modules = {
- htop.enable = true;
- tmux.enable = true;
- vim.enable = true;
- };
-
- home-manager.users.root.home.file.".bash_history".source =
- config.hm.lib.file.mkOutOfStoreSymlink "/dev/null";
-
- hm.home.language = {
- collate = "C";
- messages = "C";
- };
-
- programs.less = {
- enable = true;
- envVariables.LESSHISTFILE = "-";
- };
-
- environment.systemPackages = with pkgs; [
- cryptsetup
- ddrescue
- file
- git
- gnupg
- lshw
- lsof
- pciutils
- psmisc
- tree
- usbutils
- util-linux
- ];
- };
-}
diff --git a/modules/nixfiles/profiles/default.nix b/modules/nixfiles/profiles/default.nix
index 3df88f8..c236722 100644
--- a/modules/nixfiles/profiles/default.nix
+++ b/modules/nixfiles/profiles/default.nix
@@ -1,5 +1,108 @@
-{lib, ...}: {
- imports = [./common.nix ./dev ./headful.nix ./headless.nix];
+{
+ config,
+ lib,
+ pkgs,
+ this,
+ ...
+}:
+with lib; let
+ cfg = config.nixfiles.modules.profiles.default;
+in {
+ imports = [
+ ./dev
+ ./headful.nix
+ ./headless.nix
+ (mkAliasOptionModule ["colourScheme"] [
+ "nixfiles"
+ "modules"
+ "profiles"
+ "default"
+ "colourScheme"
+ ])
+ ];
- config.nixfiles.modules.profiles.common.enable = lib.mkDefault true;
+ options.nixfiles.modules.profiles.default = {
+ enable =
+ mkEnableOption "The most default profile of them all."
+ // {
+ default = true;
+ };
+
+ colourScheme = let
+ mkColour = default:
+ mkOption {
+ type = types.str;
+ inherit default;
+ description = "Colour in a standard hexadecimal notation.";
+ example = "#000000";
+ };
+ in rec {
+ black = mkColour "#161719";
+ red = mkColour "#cc6666";
+ green = mkColour "#b5bd68";
+ yellow = mkColour "#f0c674";
+ blue = mkColour "#81a2be";
+ magenta = mkColour "#b294bb";
+ cyan = mkColour "#8abeb7";
+ white = mkColour "#c5c8c6";
+
+ brightBlack = mkColour "#969896";
+ brightRed = mkColour "#cc6666";
+ brightGreen = mkColour "#b5bd68";
+ brightYellow = mkColour "#f0c674";
+ brightBlue = mkColour "#81a2be";
+ brightMagenta = mkColour "#b294bb";
+ brightCyan = mkColour "#8abeb7";
+ brightWhite = mkColour "#ffffff";
+
+ background = black;
+ foreground = white;
+ };
+ };
+
+ config = mkIf cfg.enable {
+ assertions = [
+ {
+ assertion = !(with this; isHeadless && isHeadful);
+ message = ''
+ The configuration cannot be both "headful" and "headless" at the same
+ time.
+ '';
+ }
+ ];
+
+ nixfiles.modules = {
+ htop.enable = true;
+ tmux.enable = true;
+ vim.enable = true;
+ };
+
+ home-manager.users.root.home.file.".bash_history".source =
+ config.hm.lib.file.mkOutOfStoreSymlink "/dev/null";
+
+ hm.home.language = {
+ collate = "C";
+ messages = "C";
+ };
+
+ programs.less = {
+ enable = true;
+ envVariables.LESSHISTFILE = "-";
+ };
+
+ environment.systemPackages = with pkgs; [
+ cryptsetup
+ ddrescue
+ file
+ git
+ gnupg
+ lshw
+ lsof
+ pciutils
+ psmisc
+ tree
+ usbutils
+ util-linux
+ ];
+ };
}
diff --git a/modules/nixfiles/profiles/dev/common.nix b/modules/nixfiles/profiles/dev/common.nix
deleted file mode 100644
index 497a573..0000000
--- a/modules/nixfiles/profiles/dev/common.nix
+++ /dev/null
@@ -1,267 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-with lib; let
- cfg = config.nixfiles.modules.profiles.dev.common;
-in {
- options.nixfiles.modules.profiles.dev.common.enable = mkEnableOption "";
-
- config = mkIf cfg.enable {
- nixfiles.modules = {
- bat.enable = true;
- curl.enable = true;
- direnv.enable = true;
- git.enable = true;
- gnupg.enable = true;
- nmap.enable = true;
- wget.enable = true;
- };
-
- hm.home = {
- file = {
- ".editorconfig".text = ''
- root = true
-
- [*]
- charset = utf-8
- end_of_line = lf
- indent_size = 4
- indent_style = space
- insert_final_newline = true
- max_line_length = 80
- trim_trailing_whitespace = true
-
- [*.nix]
- indent_size = 2
- indent_style = space
-
- [*.{S,s,asm}]
- indent_size = 4
- indent_style = tab
-
- [*.{C,H,c,c++,cc,cpp,cxx,h,h++,hh,hpp,hxx}]
- indent_size = 4
- indent_style = tab
-
- [*.{cl,clj,el,l,lisp,lsp,rkt,scm,ss}]
- indent_size = 2
- indent_style = space
-
- [*.go]
- indent_size = 4
- indent_style = tab
-
- [*.{py,pyx}]
- indent_size = 4
- indent_style = space
-
- [*.{hs,lhs}]
- indent_size = 2
- indent_style = space
-
- [*.{html,xhtml,xml}]
- indent_size = 4
- indent_style = tab
-
- [*.json]
- indent_size = 2
- indent_style = space
-
- [*.{yaml,yml}]
- indent_size = 2
- indent_style = space
-
- [*.{toml,tml}]
- indent_size = 4
- indent_style = space
-
- [*.{py,pyx}]
- indent_size = 4
- indent_style = space
- max_line_length = 72
-
- [*.zig]
- indent_size = 4
- indent_style = tab
-
- [configure.ac]
- indent_size = 4
- indent_style = tab
-
- [{Makefile*,*.mk}]
- indent_size = 4
- indent_style = tab
-
- [{CMakeLists.txt,*.cmake}]
- indent_size = 8
- indent_style = tab
-
- [*.tex]
- indent_size = 4
- indent_style = tab
-
- [*.{md,adoc,rtf,txt}]
- indent_size = 4
- indent_style = tab
- '';
-
- ".ghc/ghci.conf".source = ./ghci.conf;
-
- "${config.dirs.data}/stack/config.yaml".text = generators.toYAML {} {
- templates.params = rec {
- author-name = my.fullname;
- author-email = my.email;
- copyright = "Copyright (c) ${author-name} <${author-email}>";
- github-username = my.username;
- };
- };
-
- ".clang-format".text = generators.toYAML {} {
- AccessModifierOffset = -4;
- AlignAfterOpenBracket = "Align";
- AlignConsecutiveAssignments = "Consecutive";
- AlignConsecutiveBitFields = "Consecutive";
- AlignConsecutiveDeclarations = "Consecutive";
- AlignConsecutiveMacros = "Consecutive";
- AlignEscapedNewlines = "Right";
- AlignOperands = "Align";
- AlignTrailingComments = false;
- AllowAllArgumentsOnNextLine = false;
- AllowAllConstructorInitializersOnNextLine = true;
- AllowAllParametersOfDeclarationOnNextLine = true;
- AllowShortBlocksOnASingleLine = "Never";
- AllowShortCaseLabelsOnASingleLine = false;
- AllowShortEnumsOnASingleLine = false;
- AllowShortFunctionsOnASingleLine = "None";
- AllowShortIfStatementsOnASingleLine = "Never";
- AllowShortLambdasOnASingleLine = "Inline";
- AllowShortLoopsOnASingleLine = false;
- AlwaysBreakAfterDefinitionReturnType = "All";
- AlwaysBreakAfterReturnType = "AllDefinitions";
- AlwaysBreakBeforeMultilineStrings = false;
- AlwaysBreakTemplateDeclarations = "Yes";
- BinPackArguments = false;
- BinPackParameters = false;
- BreakBeforeBinaryOperators = "None";
- BreakBeforeBraces = "Allman";
- BreakBeforeTernaryOperators = true;
- BreakConstructorInitializers = "BeforeComma";
- BreakInheritanceList = "BeforeComma";
- BreakStringLiterals = true;
- ColumnLimit = 80;
- CommentPragmas = "^ IWYU pragma:";
- CompactNamespaces = false;
- ConstructorInitializerAllOnOneLineOrOnePerLine = false;
- ConstructorInitializerIndentWidth = 4;
- ContinuationIndentWidth = 4;
- Cpp11BracedListStyle = true;
- DeriveLineEnding = false;
- DerivePointerAlignment = false;
- DisableFormat = false;
- ExperimentalAutoDetectBinPacking = false;
- FixNamespaceComments = true;
- IncludeBlocks = "Regroup";
- IndentCaseBlocks = false;
- IndentCaseLabels = false;
- IndentExternBlock = "NoIndent";
- IndentGotoLabels = false;
- IndentPPDirectives = "None";
- IndentWidth = 4;
- IndentWrappedFunctionNames = false;
- KeepEmptyLinesAtTheStartOfBlocks = false;
- Language = "Cpp";
- MaxEmptyLinesToKeep = 1;
- NamespaceIndentation = "None";
- PointerAlignment = "Left";
- ReflowComments = false;
- SortIncludes = "CaseSensitive";
- SortUsingDeclarations = true;
- SpaceAfterCStyleCast = false;
- SpaceAfterLogicalNot = false;
- SpaceAfterTemplateKeyword = true;
- SpaceBeforeAssignmentOperators = true;
- SpaceBeforeCpp11BracedList = false;
- SpaceBeforeCtorInitializerColon = true;
- SpaceBeforeInheritanceColon = true;
- SpaceBeforeParens = "ControlStatements";
- SpaceBeforeRangeBasedForLoopColon = true;
- SpaceInEmptyParentheses = false;
- SpacesBeforeTrailingComments = 1;
- SpacesInAngles = false;
- SpacesInCStyleCastParentheses = false;
- SpacesInContainerLiterals = false;
- SpacesInParentheses = false;
- SpacesInSquareBrackets = false;
- Standard = "Latest";
- TabWidth = 4;
- UseTab = "Always";
- };
-
- ".gdbinit".text = ''
- set confirm off
- set verbose off
- set editing off
-
- set history expansion on
-
- set height 0
- set width 0
-
- handle SIGALRM nostop print nopass
- handle SIGBUS stop print nopass
- handle SIGPIPE nostop print nopass
- handle SIGSEGV stop print nopass
-
- set print address on
- set print elements 0
- set print object on
- set print pretty on
- set print repeats 0
- set print static-members on
- set print vtbl on
-
- set output-radix 10
-
- set demangle-style gnu-v3
-
- set disassembly-flavor intel
-
- alias iv=info variables
-
- alias da=disassemble
-
- define fs
- finish
- step
- end
-
- define btc
- backtrace
- continue
- end
- '';
- };
-
- sessionVariables = with config.dirs; {
- ANDROID_HOME = "${data}/android";
- CABAL_CONFIG = "${data}/cabal/config";
- CABAL_DIR = "${data}/cabal";
- CARGO_HOME = "${data}/cargo";
- GOPATH = "${data}/go";
- PYTHONSTARTUP = ./pystartup.py;
- STACK_ROOT = "${data}/stack";
- };
-
- packages = with pkgs; [
- htmlq
- jq
- yq
- ];
- };
-
- my.extraGroups = ["kvm"];
- };
-}
diff --git a/modules/nixfiles/profiles/dev/containers/default.nix b/modules/nixfiles/profiles/dev/containers.nix
index c03a30c..c9e82d7 100644
--- a/modules/nixfiles/profiles/dev/containers/default.nix
+++ b/modules/nixfiles/profiles/dev/containers.nix
@@ -8,13 +8,13 @@ with lib; let
cfg = config.nixfiles.modules.profiles.dev.containers;
in {
options.nixfiles.modules.profiles.dev.containers.enable =
- mkEnableOption "Wether to enable tools for working with Kubernetes.";
+ mkEnableOption "Tools for working with containers and container orchestration"
+ // {
+ default = config.nixfiles.modules.profiles.dev.default.enable;
+ };
config = mkIf cfg.enable {
- nixfiles.modules = {
- profiles.dev.common.enable = true;
- podman.enable = true;
- };
+ nixfiles.modules.podman.enable = true;
hm = let
minikubeHome = "${config.dirs.data}/minikube";
diff --git a/modules/nixfiles/profiles/dev/default.nix b/modules/nixfiles/profiles/dev/default.nix
index 1e0bd01..14c0730 100644
--- a/modules/nixfiles/profiles/dev/default.nix
+++ b/modules/nixfiles/profiles/dev/default.nix
@@ -1 +1,273 @@
-_: {imports = [./common.nix ./containers ./sql];}
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+with lib; let
+ cfg = config.nixfiles.modules.profiles.dev.default;
+in {
+ imports = [
+ ./containers.nix
+ ./sql.nix
+ ];
+
+ options.nixfiles.modules.profiles.dev.default.enable =
+ mkEnableOption "Catch-all profile for stuff related to software development and etc.";
+
+ config = mkIf cfg.enable {
+ nixfiles.modules = {
+ bat.enable = true;
+ curl.enable = true;
+ direnv.enable = true;
+ git.enable = true;
+ gnupg.enable = true;
+ nmap.enable = true;
+ wget.enable = true;
+ };
+
+ hm.home = {
+ file = {
+ ".editorconfig".text = ''
+ root = true
+
+ [*]
+ charset = utf-8
+ end_of_line = lf
+ indent_size = 4
+ indent_style = space
+ insert_final_newline = true
+ max_line_length = 80
+ trim_trailing_whitespace = true
+
+ [*.nix]
+ indent_size = 2
+ indent_style = space
+
+ [*.{S,s,asm}]
+ indent_size = 4
+ indent_style = tab
+
+ [*.{C,H,c,c++,cc,cpp,cxx,h,h++,hh,hpp,hxx}]
+ indent_size = 4
+ indent_style = tab
+
+ [*.{cl,clj,el,l,lisp,lsp,rkt,scm,ss}]
+ indent_size = 2
+ indent_style = space
+
+ [*.go]
+ indent_size = 4
+ indent_style = tab
+
+ [*.{py,pyx}]
+ indent_size = 4
+ indent_style = space
+
+ [*.{hs,lhs}]
+ indent_size = 2
+ indent_style = space
+
+ [*.{html,xhtml,xml}]
+ indent_size = 4
+ indent_style = tab
+
+ [*.json]
+ indent_size = 2
+ indent_style = space
+
+ [*.{yaml,yml}]
+ indent_size = 2
+ indent_style = space
+
+ [*.{toml,tml}]
+ indent_size = 4
+ indent_style = space
+
+ [*.{py,pyx}]
+ indent_size = 4
+ indent_style = space
+ max_line_length = 72
+
+ [*.zig]
+ indent_size = 4
+ indent_style = tab
+
+ [configure.ac]
+ indent_size = 4
+ indent_style = tab
+
+ [{Makefile*,*.mk}]
+ indent_size = 4
+ indent_style = tab
+
+ [{CMakeLists.txt,*.cmake}]
+ indent_size = 8
+ indent_style = tab
+
+ [*.tex]
+ indent_size = 4
+ indent_style = tab
+
+ [*.{md,adoc,rtf,txt}]
+ indent_size = 4
+ indent_style = tab
+ '';
+
+ ".ghc/ghci.conf".source = ./ghci.conf;
+
+ "${config.dirs.data}/stack/config.yaml".text = generators.toYAML {} {
+ templates.params = rec {
+ author-name = my.fullname;
+ author-email = my.email;
+ copyright = "Copyright (c) ${author-name} <${author-email}>";
+ github-username = my.username;
+ };
+ };
+
+ ".clang-format".text = generators.toYAML {} {
+ AccessModifierOffset = -4;
+ AlignAfterOpenBracket = "Align";
+ AlignConsecutiveAssignments = "Consecutive";
+ AlignConsecutiveBitFields = "Consecutive";
+ AlignConsecutiveDeclarations = "Consecutive";
+ AlignConsecutiveMacros = "Consecutive";
+ AlignEscapedNewlines = "Right";
+ AlignOperands = "Align";
+ AlignTrailingComments = false;
+ AllowAllArgumentsOnNextLine = false;
+ AllowAllConstructorInitializersOnNextLine = true;
+ AllowAllParametersOfDeclarationOnNextLine = true;
+ AllowShortBlocksOnASingleLine = "Never";
+ AllowShortCaseLabelsOnASingleLine = false;
+ AllowShortEnumsOnASingleLine = false;
+ AllowShortFunctionsOnASingleLine = "None";
+ AllowShortIfStatementsOnASingleLine = "Never";
+ AllowShortLambdasOnASingleLine = "Inline";
+ AllowShortLoopsOnASingleLine = false;
+ AlwaysBreakAfterDefinitionReturnType = "All";
+ AlwaysBreakAfterReturnType = "AllDefinitions";
+ AlwaysBreakBeforeMultilineStrings = false;
+ AlwaysBreakTemplateDeclarations = "Yes";
+ BinPackArguments = false;
+ BinPackParameters = false;
+ BreakBeforeBinaryOperators = "None";
+ BreakBeforeBraces = "Allman";
+ BreakBeforeTernaryOperators = true;
+ BreakConstructorInitializers = "BeforeComma";
+ BreakInheritanceList = "BeforeComma";
+ BreakStringLiterals = true;
+ ColumnLimit = 80;
+ CommentPragmas = "^ IWYU pragma:";
+ CompactNamespaces = false;
+ ConstructorInitializerAllOnOneLineOrOnePerLine = false;
+ ConstructorInitializerIndentWidth = 4;
+ ContinuationIndentWidth = 4;
+ Cpp11BracedListStyle = true;
+ DeriveLineEnding = false;
+ DerivePointerAlignment = false;
+ DisableFormat = false;
+ ExperimentalAutoDetectBinPacking = false;
+ FixNamespaceComments = true;
+ IncludeBlocks = "Regroup";
+ IndentCaseBlocks = false;
+ IndentCaseLabels = false;
+ IndentExternBlock = "NoIndent";
+ IndentGotoLabels = false;
+ IndentPPDirectives = "None";
+ IndentWidth = 4;
+ IndentWrappedFunctionNames = false;
+ KeepEmptyLinesAtTheStartOfBlocks = false;
+ Language = "Cpp";
+ MaxEmptyLinesToKeep = 1;
+ NamespaceIndentation = "None";
+ PointerAlignment = "Left";
+ ReflowComments = false;
+ SortIncludes = "CaseSensitive";
+ SortUsingDeclarations = true;
+ SpaceAfterCStyleCast = false;
+ SpaceAfterLogicalNot = false;
+ SpaceAfterTemplateKeyword = true;
+ SpaceBeforeAssignmentOperators = true;
+ SpaceBeforeCpp11BracedList = false;
+ SpaceBeforeCtorInitializerColon = true;
+ SpaceBeforeInheritanceColon = true;
+ SpaceBeforeParens = "ControlStatements";
+ SpaceBeforeRangeBasedForLoopColon = true;
+ SpaceInEmptyParentheses = false;
+ SpacesBeforeTrailingComments = 1;
+ SpacesInAngles = false;
+ SpacesInCStyleCastParentheses = false;
+ SpacesInContainerLiterals = false;
+ SpacesInParentheses = false;
+ SpacesInSquareBrackets = false;
+ Standard = "Latest";
+ TabWidth = 4;
+ UseTab = "Always";
+ };
+
+ ".gdbinit".text = ''
+ set confirm off
+ set verbose off
+ set editing off
+
+ set history expansion on
+
+ set height 0
+ set width 0
+
+ handle SIGALRM nostop print nopass
+ handle SIGBUS stop print nopass
+ handle SIGPIPE nostop print nopass
+ handle SIGSEGV stop print nopass
+
+ set print address on
+ set print elements 0
+ set print object on
+ set print pretty on
+ set print repeats 0
+ set print static-members on
+ set print vtbl on
+
+ set output-radix 10
+
+ set demangle-style gnu-v3
+
+ set disassembly-flavor intel
+
+ alias iv=info variables
+
+ alias da=disassemble
+
+ define fs
+ finish
+ step
+ end
+
+ define btc
+ backtrace
+ continue
+ end
+ '';
+ };
+
+ sessionVariables = with config.dirs; {
+ ANDROID_HOME = "${data}/android";
+ CABAL_CONFIG = "${data}/cabal/config";
+ CABAL_DIR = "${data}/cabal";
+ CARGO_HOME = "${data}/cargo";
+ GOPATH = "${data}/go";
+ PYTHONSTARTUP = ./pystartup.py;
+ STACK_ROOT = "${data}/stack";
+ };
+
+ packages = with pkgs; [
+ htmlq
+ jq
+ yq
+ ];
+ };
+
+ my.extraGroups = ["kvm"];
+ };
+}
diff --git a/modules/nixfiles/profiles/dev/sql/default.nix b/modules/nixfiles/profiles/dev/sql.nix
index e448e08..d6bcba8 100644
--- a/modules/nixfiles/profiles/dev/sql/default.nix
+++ b/modules/nixfiles/profiles/dev/sql.nix
@@ -8,7 +8,10 @@ with lib; let
cfg = config.nixfiles.modules.profiles.dev.sql;
in {
options.nixfiles.modules.profiles.dev.sql.enable =
- mkEnableOption "SQL database management tools";
+ mkEnableOption "SQL stuff and database management tools"
+ // {
+ default = config.nixfiles.modules.profiles.dev.default.enable;
+ };
config = mkIf cfg.enable {
hm = {
@@ -27,7 +30,7 @@ in {
table_format = "fancy_grid";
};
- colorsSection = with config.nixfiles.modules.profiles.common.colourScheme; {
+ colorsSection = with config.colourScheme; {
"arg-toolbar" = "noinherit bold";
"arg-toolbar.text" = "nobold";
"bottom-toolbar" = "bg:${black} ${white}";
diff --git a/modules/nixfiles/profiles/headful.nix b/modules/nixfiles/profiles/headful.nix
index 94c0d28..f4d3dc9 100644
--- a/modules/nixfiles/profiles/headful.nix
+++ b/modules/nixfiles/profiles/headful.nix
@@ -2,26 +2,19 @@
config,
lib,
pkgs,
+ this,
...
}:
with lib; let
cfg = config.nixfiles.modules.profiles.headful;
in {
- imports = [
- (mkAliasOptionModule ["profile" "headful"] [
- "nixfiles"
- "modules"
- "profiles"
- "headful"
- "enable"
- ])
- ];
-
options.nixfiles.modules.profiles.headful.enable =
- mkEnableOption "headful profile";
+ mkEnableOption "headful profile" // {default = this.isHeadful;};
config = mkIf cfg.enable {
nixfiles.modules = {
+ profiles.dev.default.enable = true;
+
alacritty.enable = true;
aria2.enable = true;
chromium.enable = true;
diff --git a/modules/nixfiles/profiles/headless.nix b/modules/nixfiles/profiles/headless.nix
index b3c5c86..6ac91c1 100644
--- a/modules/nixfiles/profiles/headless.nix
+++ b/modules/nixfiles/profiles/headless.nix
@@ -2,23 +2,14 @@
config,
lib,
pkgs,
+ this,
...
}:
with lib; let
cfg = config.nixfiles.modules.profiles.headless;
in {
- imports = [
- (mkAliasOptionModule ["profile" "headless"] [
- "nixfiles"
- "modules"
- "profiles"
- "headless"
- "enable"
- ])
- ];
-
options.nixfiles.modules.profiles.headless.enable =
- mkEnableOption "headless profile";
+ mkEnableOption "headless profile" // {default = this.isHeadless;};
config = mkIf cfg.enable {
nixfiles.modules = {
diff --git a/modules/nixfiles/x11.nix b/modules/nixfiles/x11.nix
index 03c11cb..cd8dfbe 100644
--- a/modules/nixfiles/x11.nix
+++ b/modules/nixfiles/x11.nix
@@ -20,7 +20,7 @@ in {
xsession.scriptPath = ".xinitrc";
- xresources.properties = with config.nixfiles.modules;
+ xresources.properties =
(let
font = with config.fontScheme.monospaceFont; "${family}:style=${style}:size=${toString size}";
in {
@@ -34,7 +34,7 @@ in {
"Xft.lcdfilter" = "lcddefault";
"Xft.rgba" = "rgb";
})
- // (with profiles.common.colourScheme; {
+ // (with config.colourScheme; {
"*.color0" = black;
"*.color8" = brightBlack;
"*.color1" = red;
diff --git a/modules/nixfiles/zathura.nix b/modules/nixfiles/zathura.nix
index fd38ab0..03a8311 100644
--- a/modules/nixfiles/zathura.nix
+++ b/modules/nixfiles/zathura.nix
@@ -14,7 +14,7 @@ in {
enable = true;
options =
- (with profiles.common.colourScheme; {
+ (with config.colourScheme; {
default-fg = white;
default-bg = black;
@@ -55,7 +55,7 @@ in {
highlight-transparency = "0.3";
- font = fonts.fontScheme.monospaceFont.family;
+ font = config.fontScheme.monospaceFont.family;
n-completion-items = 10;
@@ -112,7 +112,7 @@ in {
scroll-wrap = true;
scroll-page-aware = false;
- selection-clipboard =
+ selection-clipboard = with config.nixfiles.modules;
if (kde.enable || gnome.enable)
then "clipboard"
else "primary";