Update the modules

This commit is contained in:
Gabriel Arazas 2020-12-29 22:32:59 +08:00
parent 90cfb23a5e
commit 44f692976e
43 changed files with 305 additions and 269 deletions

View File

@ -18,8 +18,8 @@
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
# Change the Linux kernel version. # Change the Linux kernel version.
boot.kernelPackages = pkgs.linuxPackages_5_8; boot.kernelPackages = pkgs.linuxPackages_5_10;
boot.extraModulePackages = [ pkgs.linuxPackages_5_8.nvidia_x11 ]; boot.extraModulePackages = [ pkgs.linuxPackages_5_10.nvidia_x11 ];
# Clean up the /tmp directory. # Clean up the /tmp directory.
boot.cleanTmpDir = true; boot.cleanTmpDir = true;
@ -73,6 +73,11 @@
fontconfig.enable = true; fontconfig.enable = true;
}; };
location = {
latitude = 15.0;
longitude = 121.0;
};
# Module configurations. # Module configurations.
modules = { modules = {
desktop = { desktop = {
@ -86,7 +91,7 @@
firefox.enable = true; firefox.enable = true;
nyxt.enable = true; nyxt.enable = true;
}; };
cad.enable = true; #cad.enable = true;
fonts.enable = true; fonts.enable = true;
files.enable = true; files.enable = true;
graphics = { graphics = {
@ -97,6 +102,7 @@
}; };
multimedia.enable = true; multimedia.enable = true;
research.enable = true; research.enable = true;
wine.enable = true;
}; };
dev = { dev = {
@ -158,6 +164,7 @@
services = { recoll.enable = true; }; services = { recoll.enable = true; };
shell = { shell = {
archiving.enable = true;
base.enable = true; base.enable = true;
lf.enable = true; lf.enable = true;
zsh.enable = true; zsh.enable = true;
@ -180,12 +187,14 @@
dwarf-fortress # Losing is fun! dwarf-fortress # Losing is fun!
endless-sky # Losing is meh! endless-sky # Losing is meh!
minetest # Losing?! What's that? minetest # Losing?! What's that?
the-powder-toy # Losing? The only thing losing is your time!
wesnoth # Losing is frustrating! wesnoth # Losing is frustrating!
#zeroad # Losing is fun and frustrating! #zeroad # Losing is fun and frustrating!
# Installing some of the dependencies required for my scripts. # Installing some of the dependencies required for my scripts.
ffcast ffcast
giflib giflib
imageworsener
leptonica leptonica
libpng libpng
libwebp libwebp
@ -199,11 +208,18 @@
zbar zbar
# Some other packages. # Some other packages.
leocad
screenkey screenkey
] ]
# My custom packages. # My custom packages.
++ (with pkgs.nur.foo-dogsquared; [ julia-bin license-cli openring segno ]); ++ (with pkgs.nur.foo-dogsquared; [
flavours
julia-bin
hantemcli
license-cli
segno
]);
# Setting up the shell environment. # Setting up the shell environment.
my.env = { my.env = {
@ -224,8 +240,6 @@
# Set your time zone. # Set your time zone.
time.timeZone = "Asia/Manila"; time.timeZone = "Asia/Manila";
services.openssh.enable = true;
services.lorri.enable = true;
# Setup GnuPG. # Setup GnuPG.
programs.gnupg.agent = { programs.gnupg.agent = {
@ -235,12 +249,32 @@
}; };
# Install a proprietary Nvidia graphics driver. # Install a proprietary Nvidia graphics driver.
services.xserver = { services = {
xserver = {
digimend.enable = true;
libinput = { libinput = {
enable = true; enable = true;
middleEmulation = true; middleEmulation = true;
}; };
digimend.enable = true; };
lorri.enable = true;
nfs = {
server = {
enable = true;
exports = ''
/home 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
'';
};
};
openssh = {
enable = true;
permitRootLogin = "yes";
extraConfig = ''
PasswordAuthentication yes
'';
ports = [ 22664 ];
};
redshift.enable = true;
# videoDrivers = [ "nvidiaLegacy390" ]; # videoDrivers = [ "nvidiaLegacy390" ];
}; };
@ -264,9 +298,20 @@
# Use the entire suite. # Use the entire suite.
package = pkgs.gitAndTools.gitFull; package = pkgs.gitAndTools.gitFull;
# Enable Delta syntax highlighter.
delta.enable = true;
userName = "Gabriel Arazas"; userName = "Gabriel Arazas";
userEmail = "${config.my.email}"; userEmail = "${config.my.email}";
}; };
# Enable this to make your prompt out of this world.
starship = {
enableBashIntegration = true;
enableFishIntegration = true;
enableZshIntegration = true;
enable = true;
};
}; };
services = { services = {
@ -281,9 +326,12 @@
commandOptions = { commandOptions = {
auto = "true"; auto = "true";
batch = "true"; batch = "true";
dontchmod = "true";
fat = "true"; fat = "true";
force = "${homeDirectory}"; force = "${homeDirectory}";
group = "true";
links = "false"; links = "false";
rsrc = "true";
ui = "text"; ui = "text";
}; };
}; };

View File

@ -47,25 +47,6 @@ in {
alias = mkOption { alias = mkOption {
type = with types; nullOr (attrsOf (nullOr (either str path))); type = with types; nullOr (attrsOf (nullOr (either str path)));
}; };
zsh = {
rc = mkOption {
type = types.lines;
default = "";
description = ''
Zsh lines to be written to $XDG_CONFIG_HOME/zsh/extra.zshrc and
sourced by $XDG_CONFIG_HOME/zsh/.zshrc
'';
};
env = mkOption {
type = types.lines;
default = "";
description = ''
Zsh lines to be written to $XDG_CONFIG_HOME/zsh/extra.zshenv and
sourced by $XDG_CONFIG_HOME/zsh/.zshenv
'';
};
};
}; };
}; };
@ -91,19 +72,12 @@ in {
${concatStringsSep "\n" exportLines} ${concatStringsSep "\n" exportLines}
''; '';
my.home.xdg.configFile = { my.home = {
"zsh/.zshrc".text = let programs = {
aliasLines = mapAttrsToList (key: value: ''alias ${key}="${value}"'') bash.shellAliases = config.my.alias;
config.my.alias; zsh.shellAliases = config.my.alias;
in '' fish.shellAliases = config.my.alias;
# This file is autogenerated, do not edit it! };
${concatStringsSep "\n" aliasLines}
${config.my.zsh.rc}
'';
"zsh/.zshenv".text = ''
# This file is autogenerated, please do not edit it!
${config.my.zsh.env}
'';
}; };
}; };
} }

View File

@ -5,8 +5,7 @@
with lib; with lib;
let let cfg = config.modules.desktop.audio;
cfg = config.modules.desktop.audio;
in { in {
options.modules.desktop.audio = let options.modules.desktop.audio = let
mkBoolDefault = bool: mkBoolDefault = bool:
@ -20,7 +19,6 @@ in {
production.enable = mkBoolDefault false; production.enable = mkBoolDefault false;
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
my.packages = with pkgs; my.packages = with pkgs;
[ [
@ -47,7 +45,7 @@ in {
hydrogen # Them drum beats composition will get good. hydrogen # Them drum beats composition will get good.
lmms # A decent libre FL Studio clone. lmms # A decent libre FL Studio clone.
polyphone # Edit your fonts for sound. polyphone # Edit your fonts for sound.
sunvox # A modular sequencer... ooh... #sunvox # A modular sequencer... ooh...
#zrythm # An up-and-coming DAW in Linux town. #zrythm # An up-and-coming DAW in Linux town.
zynaddsubfx # Ze most advanced synthesizer I've seen so far (aside from the upcoming Vital syntehsizer). zynaddsubfx # Ze most advanced synthesizer I've seen so far (aside from the upcoming Vital syntehsizer).
] else ] else

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.desktop.browsers;
cfg = config.modules.desktop.browsers;
in { in {
options.modules.desktop.browsers = let options.modules.desktop.browsers = let
mkBoolDefault = bool: mkBoolDefault = bool:

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.desktop.cad;
cfg = config.modules.desktop.cad;
in { in {
options.modules.desktop.cad = { options.modules.desktop.cad = {
enable = mkOption { enable = mkOption {
@ -16,7 +15,7 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
my.packages = with pkgs; [ my.packages = with pkgs; [
freecad # FREE AS A BIRD, FREE AS A ALL-YOU-CAN-EAT BUFFER! freecad # FREE AS A BIRD, FREE AS A ALL-YOU-CAN-EAT BUFFER!
#kicad # The CAD for ki which is a form of energy found everywhere. kicad # The CAD for ki which is a form of energy found everywhere.
leocad # A CAD for leos, a well-known brand of toys. leocad # A CAD for leos, a well-known brand of toys.
openscad # A programmable CAD for programmers. openscad # A programmable CAD for programmers.
]; ];

View File

@ -11,5 +11,6 @@
./graphics.nix ./graphics.nix
./multimedia.nix ./multimedia.nix
./research.nix ./research.nix
./wine.nix
]; ];
} }

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.desktop.files;
cfg = config.modules.desktop.files;
in { in {
options.modules.desktop.files = { options.modules.desktop.files = {
enable = mkOption { enable = mkOption {
@ -15,12 +14,12 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
my.packages = with pkgs; [ my.packages = with pkgs; [
croc # Despite the name, it is a good and tame tool to send your files over.
exiftool # A file metadata reader/writer/manager/helicopter. exiftool # A file metadata reader/writer/manager/helicopter.
(recoll.override { (recoll.override {
withGui = false; withGui = false;
}) # Bring the search engine to the desktop! }) # Bring the search engine to the desktop!
unison # Back those files up, son. unison # Back those files up, son.
magic-wormhole # Magically transfer stuff between your wormholes!
oneshot # Basically `python -m http.server` that can deliver files to various devices. oneshot # Basically `python -m http.server` that can deliver files to various devices.
qbittorrent # Free version of uBittorrent. qbittorrent # Free version of uBittorrent.
xfce.thunar # A graphical file manager. xfce.thunar # A graphical file manager.
@ -28,10 +27,16 @@ in {
udiskie # An automounter for external devices with authentication. udiskie # An automounter for external devices with authentication.
]; ];
my.home = {
services = { services = {
# Enable Syncthing for them cross-device syncing. # Enable Syncthing for them cross-device syncing.
syncthing.enable = true; syncthing = {
enable = true;
};
};
};
services = {
# Argh! Open t' gateweh t' th' high seas! # Argh! Open t' gateweh t' th' high seas!
transmission.enable = true; transmission.enable = true;
}; };

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.desktop.fonts;
cfg = config.modules.desktop.fonts;
in { in {
options.modules.desktop.fonts = { options.modules.desktop.fonts = {
enable = mkOption { enable = mkOption {

View File

@ -4,8 +4,7 @@
with lib; with lib;
let let cfg = config.modules.desktop.graphics;
cfg = config.modules.desktop.graphics;
in { in {
options.modules.desktop.graphics = let options.modules.desktop.graphics = let
mkBoolDefault = bool: mkBoolDefault = bool:
@ -40,6 +39,7 @@ in {
gimp # Adobe Photoshop replacement. gimp # Adobe Photoshop replacement.
krita # A good painting program useful for "pure" digital arts. krita # A good painting program useful for "pure" digital arts.
aseprite-unfree # A pixel art editor. aseprite-unfree # A pixel art editor.
rawtherapee # A therapy session for improving your photos.
] else ] else
[ ]) ++ [ ]) ++

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.desktop.multimedia;
cfg = config.modules.desktop.multimedia;
in { in {
options.modules.desktop.multimedia = { options.modules.desktop.multimedia = {
enable = mkOption { enable = mkOption {

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.desktop.research;
cfg = config.modules.desktop.research;
in { in {
options.modules.desktop.research = { options.modules.desktop.research = {
enable = mkOption { enable = mkOption {

21
modules/desktop/wine.nix Normal file
View File

@ -0,0 +1,21 @@
{ config, options, lib, pkgs, ... }:
with lib;
let cfg = config.modules.desktop.wine;
in {
options.modules.desktop.wine = {
enable = mkOption {
type = types.bool;
default = false;
};
};
config = mkIf cfg.enable {
my.packages = with pkgs; [
#airwave
wine
winetricks
];
};
}

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.dev.android;
cfg = config.modules.dev.android;
in { in {
options.modules.dev.android = { options.modules.dev.android = {
enable = mkOption { enable = mkOption {
@ -20,14 +19,19 @@ in {
flutter # It's Electron except saner and slimmer. flutter # It's Electron except saner and slimmer.
kotlin # It's Java except saner and slimmer. kotlin # It's Java except saner and slimmer.
scrcpy # Cast your phone over TCP/IP! scrcpy # Cast your phone over TCP/IP!
termshark # Know where those files from your Android app in command line.
wireshark # Know where those files from your Android app.
]; ];
# Enable Android Debug Bridge for some device debugging. # Enable Android Debug Bridge for some device debugging.
programs.adb.enable = true; programs.adb.enable = true;
# Enable Wireshark for them data-mining... I mean, analyzing and debugging HTTP requests.
programs.wireshark.enable = true;
# Install Anbox emulation. # Install Anbox emulation.
#virtualisation.anbox.enable = true; #virtualisation.anbox.enable = true;
my.user.extraGroups = [ "adbusers" ]; my.user.extraGroups = [ "adbusers" "wireshark" ];
}; };
} }

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.dev.base;
cfg = config.modules.dev.base;
in { in {
options.modules.dev.base = { options.modules.dev.base = {
enable = mkOption { enable = mkOption {
@ -19,11 +18,13 @@ in {
cmake # Yo, I heard you like Makefiles. cmake # Yo, I heard you like Makefiles.
cookiecutter # A project scaffolding tool. cookiecutter # A project scaffolding tool.
gnumake # Make your life easier with GNU Make. gnumake # Make your life easier with GNU Make.
gitAndTools.hub # I wish Gitlab has something called lab.
hyperfine # You shouldn't be feel just fine with your programs... hyperfine # You shouldn't be feel just fine with your programs...
kmon # A Linux kernel monitoring tool, right... kmon # A Linux kernel monitoring tool, right...
nixfmt # Formatter for uniform Nix code. nixfmt # Formatter for uniform Nix code.
radare2-cutter # Rev-eng tools to feel like a hacker.
stow # Build your symlink farm on the other side of the country, er, filesystem. stow # Build your symlink farm on the other side of the country, er, filesystem.
tldr # What manuals should include. tealdeer # What manuals should include.
universal-ctags # Enable fast traveling to your code (assuming written in a supported language). universal-ctags # Enable fast traveling to your code (assuming written in a supported language).
]; ];
@ -35,13 +36,11 @@ in {
enableFishIntegration = true; enableFishIntegration = true;
enableZshIntegration = true; enableZshIntegration = true;
}; };
fish.enable = true;
};
};
my.zsh = { # Enabling all of the shells for cross-testing purposes.
rc = '' fish.enable = true;
eval "$(${pkgs.direnv}/bin/direnv hook zsh)" bash.enable = true;
''; zsh.enable = true;
};
}; };
} }

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.dev.cc;
cfg = config.modules.dev.cc;
in { in {
options.modules.dev.cc = { options.modules.dev.cc = {
enable = mkOption { enable = mkOption {

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.dev.data;
cfg = config.modules.dev.data;
in { in {
options.modules.dev.data = { options.modules.dev.data = {
enable = mkOption { enable = mkOption {
@ -19,7 +18,8 @@ in {
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
my.packages = with pkgs; [ my.packages = with pkgs;
[
cfitsio # A data library for FITS images which is an image used for analyzing your fitness level. cfitsio # A data library for FITS images which is an image used for analyzing your fitness level.
hdf5 # A binary data format with hierarchy and metadata. hdf5 # A binary data format with hierarchy and metadata.
#hdfview # HDF4 and HDF5 viewer. #hdfview # HDF4 and HDF5 viewer.
@ -27,7 +27,7 @@ in {
pup # A cute little puppy that can understand HTML. pup # A cute little puppy that can understand HTML.
sqlite # A cute little battle-tested library for your data abominations. sqlite # A cute little battle-tested library for your data abominations.
sqlitebrowser # Skim the DB and create a quick scraping script for it. sqlitebrowser # Skim the DB and create a quick scraping script for it.
yq # A YAML parser on the command-line. yq-go # A YAML parser on the command-line.
] ++ ] ++
(if cfg.dhall.enable then [ (if cfg.dhall.enable then [
@ -37,6 +37,12 @@ in {
dhall-json dhall-json
dhall-text dhall-text
dhall-lsp-server dhall-lsp-server
] else []); ] else
[ ]);
my.alias = {
yaml2json = "${pkgs.yq-go}/bin/yq r --prettyPrint --tojson";
json2yaml = "${pkgs.yq-go}/bin/yq r --prettyPrint";
};
}; };
} }

View File

@ -5,8 +5,7 @@
with lib; with lib;
let let cfg = config.modules.dev.documentation;
cfg = config.modules.dev.documentation;
in { in {
options.modules.dev.documentation = let options.modules.dev.documentation = let
mkBoolOption = bool: mkBoolOption = bool:

View File

@ -4,8 +4,7 @@
with lib; with lib;
let let cfg = config.modules.dev.game-dev;
cfg = config.modules.dev.game-dev;
in { in {
options.modules.dev.game-dev = let options.modules.dev.game-dev = let
mkBoolOption = bool: mkBoolOption = bool:

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.dev.go;
cfg = config.modules.dev.go;
in { in {
options.modules.dev.go = { options.modules.dev.go = {
enable = mkOption { enable = mkOption {

View File

@ -4,8 +4,7 @@
with lib; with lib;
let let cfg = config.modules.dev.java;
cfg = config.modules.dev.java;
in { in {
options.modules.dev.java = { options.modules.dev.java = {
enable = mkOption { enable = mkOption {

View File

@ -5,8 +5,7 @@
with lib; with lib;
let let cfg = config.modules.dev.lisp;
cfg = config.modules.dev.lisp;
in { in {
options.modules.dev.lisp = let options.modules.dev.lisp = let
mkBoolDefault = bool: mkBoolDefault = bool:

View File

@ -26,7 +26,6 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
my.packages = [ perlWithPackages ] my.packages = [ perlWithPackages ]
++ (if cfg.raku.enable then [ ++ (if cfg.raku.enable then [ pkgs.rakudo ] else [ ]);
pkgs.rakudo };
] else []); };
} }

View File

@ -5,8 +5,7 @@
with lib; with lib;
let let cfg = config.modules.dev.python;
cfg = config.modules.dev.python;
in { in {
options.modules.dev.python = let options.modules.dev.python = let
mkBoolOption = bool: mkBoolOption = bool:

View File

@ -4,8 +4,7 @@
with lib; with lib;
let let cfg = config.modules.dev.rust;
cfg = config.modules.dev.rust;
in { in {
options.modules.dev.rust = { options.modules.dev.rust = {
enable = mkOption { enable = mkOption {

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.dev.vcs;
cfg = config.modules.dev.vcs;
in { in {
options.modules.dev.vcs = { options.modules.dev.vcs = {
enable = mkOption { enable = mkOption {

View File

@ -6,8 +6,7 @@
with lib; with lib;
let let cfg = config.modules.dev.web;
cfg = config.modules.dev.web;
in { in {
options.modules.dev.web = let options.modules.dev.web = let
mkBoolOption = bool: mkBoolOption = bool:

View File

@ -1,8 +1,7 @@
{ config, options, lib, pkgs, ... }: { config, options, lib, pkgs, ... }:
with lib; with lib;
let let cfg = config.modules.hardware.audio;
cfg = config.modules.hardware.audio;
in { in {
options.modules.hardware.audio = let options.modules.hardware.audio = let
mkBoolDefault = bool: mkBoolDefault = bool:

View File

@ -2,8 +2,7 @@
{ config, options, lib, pkgs, ... }: { config, options, lib, pkgs, ... }:
with lib; with lib;
let let cfg = config.modules.hardware.veikk;
cfg = config.modules.hardware.veikk;
in { in {
options.modules.hardware.veikk = { options.modules.hardware.veikk = {
enable = mkOption { enable = mkOption {
@ -12,7 +11,6 @@ in {
}; };
}; };
config = mkIf cfg.enable { config =
boot.extraModulePackages = [ pkgs.veikk-linux-driver ]; mkIf cfg.enable { boot.extraModulePackages = [ pkgs.veikk-linux-driver ]; };
};
} }

View File

@ -0,0 +1,21 @@
{ config, options, lib, pkgs, ... }:
with lib;
let cfg = config.modules.shell.archiving;
in {
options.modules.shell.archiving = {
enable = mkOption {
type = types.bool;
default = false;
};
};
config = mkIf cfg.enable {
my.packages = with pkgs; [
aria2 # The sequel to aria(1).
fanficfare # youtube-dl for fanfics. Not that I read fanfics.
youtube-dl # A program that can be sued for false advertisement as you can download from other video sources.
];
};
}

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.shell.base;
cfg = config.modules.shell.base;
in { in {
options.modules.shell.base = { options.modules.shell.base = {
enable = mkOption { enable = mkOption {
@ -15,7 +14,6 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
my.packages = with pkgs; [ my.packages = with pkgs; [
aria2 # The sequel to aria(1).
aspell # Hunt down a spelling bee champion to come to your shell. aspell # Hunt down a spelling bee champion to come to your shell.
bat # cat(1) with wings. bat # cat(1) with wings.
buku # A developer-oriented browser-independent bookmark manager. buku # A developer-oriented browser-independent bookmark manager.
@ -27,7 +25,7 @@ in {
graphviz # The biz central for graphical flowcharts. graphviz # The biz central for graphical flowcharts.
hexyl # Binary viewer with a cool name on the command-line. hexyl # Binary viewer with a cool name on the command-line.
hledger # Do your accountancy thing ON THE COMMAND LINE, sure why not! hledger # Do your accountancy thing ON THE COMMAND LINE, sure why not!
httpie # Want a piece of the HTTP pie. httpie # Want a piece of the humble pie to humbly HTTP requests?
jq # A command-line interface for parsing JSON. jq # A command-line interface for parsing JSON.
lazygit # For the lazy gits who cannot get good at Git. lazygit # For the lazy gits who cannot get good at Git.
lazydocker # For the lazy gits who cannot get good at Docker. lazydocker # For the lazy gits who cannot get good at Docker.
@ -51,13 +49,9 @@ in {
enable = true; enable = true;
config = { theme = "base16"; }; config = { theme = "base16"; };
}; };
};
};
my.zsh = { zoxide.enable = true;
rc = '' };
eval "$(${pkgs.zoxide}/bin/zoxide init zsh)"
'';
}; };
}; };
} }

View File

@ -2,5 +2,5 @@
{ config, options, lib, pkgs, ... }: { config, options, lib, pkgs, ... }:
with lib; { with lib; {
imports = [ ./base.nix ./lf.nix ./zsh.nix ]; imports = [ ./archiving.nix ./base.nix ./lf.nix ./zsh.nix ];
} }

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.shell.lf;
cfg = config.modules.shell.lf;
in { in {
options.modules.shell.lf = { options.modules.shell.lf = {
enable = mkOption { enable = mkOption {

View File

@ -3,8 +3,7 @@
with lib; with lib;
let let cfg = config.modules.shell.zsh;
cfg = config.modules.shell.zsh;
in { in {
options.modules.shell.zsh = { options.modules.shell.zsh = {
enable = mkOption { enable = mkOption {
@ -21,11 +20,6 @@ in {
autosuggestions.enable = true; autosuggestions.enable = true;
histFile = "$XDG_DATA_HOME/zsh/history"; histFile = "$XDG_DATA_HOME/zsh/history";
# Adding basic version control support to the zsh prompt.
# https://git-scm.com/book/en/v2/Appendix-A%3A-Git-in-Other-Environments-Git-in-Zsh
promptInit =
"\n autoload -Uz vcs_info\n precmd_vcs_info() { vcs_info }\n precmd_functions+=( precmd_vcs_info )\n setopt prompt_subst\n zstyle ':vcs_info:*' formats '[%s] (%b)'\n autoload -U colors && colors\n PROMPT=\"%F%{\${fg[white]}%}%(0?..%?) %B%{$fg[magenta]%}%1~%{$reset_color%} $vcs_info_msg_0_ $%f%b \"\n RPROMPT=\"[%D %*]\"\n ";
interactiveShellInit = '' interactiveShellInit = ''
# Use lf to switch directories and bind it to ctrl-o # Use lf to switch directories and bind it to ctrl-o
lfcd () { lfcd () {
@ -43,11 +37,5 @@ in {
ohMyZsh.plugins = [ "history-substring-search" ]; ohMyZsh.plugins = [ "history-substring-search" ];
syntaxHighlighting.enable = true; syntaxHighlighting.enable = true;
}; };
my.home.home.file = {
".zshenv".text = ''
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
'';
};
}; };
} }

View File

@ -56,28 +56,28 @@ window:
colors: colors:
primary: primary:
background: "#2E3440" background: "#2b221f"
foreground: "#D8DEE9" foreground: "#fefefe"
normal: normal:
black: "#3B4252" black: "#2b221f"
red: "#BF616A" red: "#d03e68"
green: "#A3BE8C" green: "#afa644"
yellow: "#EBCB8B" yellow: "#dbbc48"
blue: "#81A1C1" blue: "#a15c40"
magenta: "#B48EAD" magenta: "#8b7ab9"
cyan: "#88C0D0" cyan: "#df937a"
white: "#E5E9F0" white: "#e9d3ce"
bright: bright:
black: "#727B8A" black: "#8d5c4c"
red: "#BF616A" red: "#d03e68"
green: "#A3BE8C" green: "#afa644"
yellow: "#EBCB8B" yellow: "#dbbc48"
blue: "#81A1C1" blue: "#a15c40"
magenta: "#B48EAD" magenta: "#8b7ab9"
cyan: "#8FBCBB" cyan: "#df937a"
white: "#ECEFF4" white: "#fefefe"
scrolling: scrolling:
@ -94,7 +94,7 @@ scrolling:
font: font:
normal: normal:
family: monospace family: monospace
family: Iosevka family: Iosevka Nerd Font
# Point size # Point size
size: 13.0 size: 13.0

View File

@ -1,9 +1,9 @@
#!/bin/sh #!/usr/bin/env sh
# Open all of the programs needed. # Open all of the programs needed.
pkill polybar || polybar "fds-bar" & pkill polybar; polybar "fds-bar" &
pkill feh || feh --bg-fill $HOME/.background-image pkill feh; feh --bg-fill $HOME/.background-image
pkill dunst || dunst & pkill dunst; dunst &
# Removing all rules at startup to prevent duplicating rules. # Removing all rules at startup to prevent duplicating rules.
bspc rule -r "*" bspc rule -r "*"
@ -12,12 +12,12 @@ bspc rule -r "*"
bspc monitor -d I II III IV V bspc monitor -d I II III IV V
bspc config border_width 2 bspc config border_width 2
bspc config window_gap 9 bspc config window_gap 5
bspc config split_ratio 0.50 bspc config split_ratio 0.50
bspc config borderless_monocle true bspc config borderless_monocle true
bspc config gapless_monocle true bspc config gapless_monocle true
bspc config focused_border_color "#88C0D0" bspc config focused_border_color "#e9d3ce"
bspc config focus_follows_pointer true bspc config focus_follows_pointer true
# Set the default cursor to pointer # Set the default cursor to pointer

View File

@ -29,7 +29,7 @@
# the top and down respectively. # the top and down respectively.
# The width can be negative. In this case the actual width is the # The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option. # screen width minus the width defined in within the geometry option.
geometry = "350x50-10+50" geometry = "350x50-10-10"
# Show how many messages are currently hidden (because of geometry). # Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes indicate_hidden = yes
@ -61,10 +61,10 @@
# Defines width in pixels of frame around the notification window. # Defines width in pixels of frame around the notification window.
# Set to 0 to disable. # Set to 0 to disable.
frame_width = 2 frame_width = 1
# Defines color of the frame around the notification window. # Defines color of the frame around the notification window.
frame_color = "#D8DEE9" frame_color = "#eb8a65"
# Define a color for the separator. # Define a color for the separator.
# possible values are: # possible values are:
@ -87,7 +87,7 @@
### Text ### ### Text ###
font = Iosevka 12 font = Iosevka Nerd Font 12
# The spacing between lines. If the height is smaller than the # The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height. # font height, it will get raised to the font height.
@ -167,9 +167,6 @@
# Scale larger icons down to this size, set to 0 to disable # Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32 max_icon_size = 32
# Paths to default icons.
icon_path = /usr/share/icons/Adwaita/16x16/status/:/usr/share/icons/Adwaita/16x16/devices/
### History ### ### History ###
@ -286,8 +283,8 @@
[urgency_low] [urgency_low]
# IMPORTANT: colors have to be defined in quotation marks. # IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment. # Otherwise the "#" and following would be interpreted as a comment.
background = "#2E3440" background = "#412c26"
foreground = "#ECEFF4" foreground = "#eb8a65"
timeout = 10 timeout = 10
# Icon for notifications with low urgency, uncomment to enable # Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon #icon = /path/to/icon
@ -295,8 +292,8 @@
[urgency_normal] [urgency_normal]
background = "#2E3440" background = "#2b221f"
foreground = "#D8DEE9" foreground = "#eb8a65"
timeout = 10 timeout = 10
# Icon for notifications with normal urgency, uncomment to enable # Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon #icon = /path/to/icon
@ -304,9 +301,9 @@
[urgency_critical] [urgency_critical]
background = "#2E3440" background = "#2b221f"
foreground = "#A3BE8C" foreground = "#d03e68"
frame_color = "#A3BE8C" frame_color = "#d03e68"
timeout = 0 timeout = 0
# Icon for notifications with critical urgency, uncomment to enable # Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon #icon = /path/to/icon

View File

@ -2,11 +2,11 @@
; However, formats in RGB is fine. ; However, formats in RGB is fine.
; This is where all of the colors should be placed for those who are lazy to scroll down (like me). ; This is where all of the colors should be placed for those who are lazy to scroll down (like me).
[colors] [colors]
background = "#2E3440" background = "#2b221f"
background-light = "#727B8A" background-light = "#412c26"
foreground = "#D8DEE9" foreground = "#fefefe"
foreground-light = "#ECEFF4" foreground-light = "#eb8a65"
accent = "#88C0D0" accent = "#d03e68"
; The common style between bars. ; The common style between bars.
@ -24,8 +24,8 @@
module-margin = 1 module-margin = 1
module-padding = 1 module-padding = 1
font-0 = "Iosevka;2" font-0 = "Iosevka Nerd Font;2"
font-1 = "Fira Code;2" font-1 = "Iosevka;2"
; Our fallback fonts are mostly used as icon fonts. ; Our fallback fonts are mostly used as icon fonts.
; For future references, the version of Font Awesome used here is at v5.13.0. ; For future references, the version of Font Awesome used here is at v5.13.0.
@ -76,9 +76,9 @@
[module/home-fs] [module/home-fs]
type = internal/fs type = internal/fs
mount-0 = /home mount-0 = /home
format-mounted-prefix = "" format-mounted-prefix = ""
format-mounted-prefix-margin-right = 1 format-mounted-prefix-margin-right = 1
format-unmounted-prefix = "" format-unmounted-prefix = ""
format-unmounted-prefix-margin-right = 1 format-unmounted-prefix-margin-right = 1
label-mounted = %free% label-mounted = %free%
label-unmounted = N/A label-unmounted = N/A

View File

@ -3,7 +3,7 @@ configuration {
display-run: "Execute"; display-run: "Execute";
display-window: "Window"; display-window: "Window";
display-ssh: "SSH"; display-ssh: "SSH";
font: "Iosevka 12"; font: "Iosevka Nerd Font 12";
show-icons: true; show-icons: true;
theme: "themes/fds-mini-sidebar"; theme: "themes/fds-mini-sidebar";
} }

View File

@ -8,29 +8,29 @@
* { * {
/* The color swatch */ /* The color swatch */
/* Useful for quick editing of the colors */ /* Useful for quick editing of the colors */
background: #2E3440; background: #2b221f;
foreground: #D8DEE9; foreground: #eb8a65;
color0: #3B4252; color0: #2b221f;
color1: #BF616A; color1: #412c26;
color2: #A3BE8C; color2: #54352c;
color3: #EBCB8B; color3: #8d5c4c;
color4: #81A1C1; color4: #e1bcb2;
color5: #B48EAD; color5: #e9d3ce;
color6: #88C0D0; color6: #fefefe;
color7: #E5E9F0; color7: #eb8a65;
color8: #727B8A; color8: #d03e68;
color9: #BF616A; color9: #eb914a;
color10: #A3BE8C; color10: #dbbc48;
color11: #EBCB8B; color11: #afa644;
color12: #81A1C1; color12: #df937a;
color13: #B48EAD; color13: #a15c40;
color14: #8FBCBB; color14: #8b7ab9;
color15: #ECEFF4; color15: #6f3920;
background-color: @background; background-color: @background;
border-color: @foreground; border-color: @foreground;
text-color: @foreground; text-color: @foreground;
font: "Iosevka 12"; font: "Iosevka Nerd Font 12";
} }
window { window {

View File

@ -1,24 +1,24 @@
* { * {
/* The color configuration */ /* The color swatch */
/* Useful for quick editing in case for compiled templates */ /* Useful for quick editing of the colors */
background: #2E3440; background: #2b221f;
foreground: #D8DEE9; foreground: #eb8a65;
color0: #3B4252; color0: #2b221f;
color1: #BF616A; color1: #412c26;
color2: #A3BE8C; color2: #54352c;
color3: #EBCB8B; color3: #8d5c4c;
color4: #81A1C1; color4: #e1bcb2;
color5: #B48EAD; color5: #e9d3ce;
color6: #88C0D0; color6: #fefefe;
color7: #E5E9F0; color7: #eb8a65;
color8: #727B8A; color8: #d03e68;
color9: #BF616A; color9: #eb914a;
color10: #A3BE8C; color10: #dbbc48;
color11: #EBCB8B; color11: #afa644;
color12: #81A1C1; color12: #df937a;
color13: #B48EAD; color13: #a15c40;
color14: #8FBCBB; color14: #8b7ab9;
color15: #ECEFF4; color15: #6f3920;
/* Theme settings */ /* Theme settings */
highlight: bold italic; highlight: bold italic;
@ -28,7 +28,7 @@
text-color: @foreground; text-color: @foreground;
background-color: @background; background-color: @background;
font: "Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid 14"; font: "Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid 14";
font: "Iosevka 12"; font: "Iosevka Nerd Font 12";
} }
window { window {

View File

@ -1,24 +1,24 @@
* { * {
/* The color configuration */ /* The color swatch */
/* Useful for quick editing in case for compiled templates */ /* Useful for quick editing of the colors */
background: #2E3440; background: #2b221f;
foreground: #D8DEE9; foreground: #eb8a65;
color0: #3B4252; color0: #2b221f;
color1: #BF616A; color1: #412c26;
color2: #A3BE8C; color2: #54352c;
color3: #EBCB8B; color3: #8d5c4c;
color4: #81A1C1; color4: #e1bcb2;
color5: #B48EAD; color5: #e9d3ce;
color6: #88C0D0; color6: #fefefe;
color7: #E5E9F0; color7: #eb8a65;
color8: #727B8A; color8: #d03e68;
color9: #BF616A; color9: #eb914a;
color10: #A3BE8C; color10: #dbbc48;
color11: #EBCB8B; color11: #afa644;
color12: #81A1C1; color12: #df937a;
color13: #B48EAD; color13: #a15c40;
color14: #8FBCBB; color14: #8b7ab9;
color15: #ECEFF4; color15: #6f3920;
/* General theme settings */ /* General theme settings */
highlight: bold italic; highlight: bold italic;
@ -28,7 +28,7 @@
text-color: @foreground; text-color: @foreground;
background-color: @background; background-color: @background;
font: "Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid 14"; font: "Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid 14";
font: "Iosevka 12"; font: "Iosevka Nerd Font 12";
} }

View File

@ -111,6 +111,6 @@ with lib; {
arc-theme arc-theme
]; ];
fonts.fonts = with pkgs; [ iosevka font-awesome-ttf ]; fonts.fonts = with pkgs; [ iosevka nerdfonts font-awesome-ttf ];
}; };
} }

View File

@ -2,7 +2,7 @@
(self: super: (self: super:
with super; { with super; {
veikk-linux-driver = veikk-linux-driver =
(callPackage ./veikk-driver.nix { kernel = pkgs.linux_5_8; }); (callPackage ./veikk-driver.nix { kernel = pkgs.linux_5_10; });
nur.foo-dogsquared = import (fetchTarball nur.foo-dogsquared = import (fetchTarball
"https://github.com/foo-dogsquared/nur-packages/archive/master.tar.gz") { "https://github.com/foo-dogsquared/nur-packages/archive/master.tar.gz") {
inherit pkgs; inherit pkgs;