Refining
This commit is contained in:
parent
6382c9ea39
commit
d5098220e0
24 changed files with 677 additions and 60 deletions
103
flake.lock
103
flake.lock
|
@ -2,11 +2,11 @@
|
|||
"nodes": {
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1634851050,
|
||||
"narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=",
|
||||
"lastModified": 1637014545,
|
||||
"narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c91f3de5adaf1de973b797ef7485e441a65b8935",
|
||||
"rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -15,6 +15,31 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ha-now-playing": {
|
||||
"inputs": {
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"utils": [
|
||||
"flake-utils"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1637510878,
|
||||
"narHash": "sha256-7dVyPvVpj+qat8+XCmWbD7v4m3pW4ah85sV8Olzxs84=",
|
||||
"ref": "main",
|
||||
"rev": "3b33c60e64a7aa5b02fbbdee1182d9ad70ad8f58",
|
||||
"revCount": 5,
|
||||
"type": "git",
|
||||
"url": "ssh://git@git.datarift.nl/erwin/ha-now-playing.git"
|
||||
},
|
||||
"original": {
|
||||
"ref": "main",
|
||||
"type": "git",
|
||||
"url": "ssh://git@git.datarift.nl/erwin/ha-now-playing.git"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -22,11 +47,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1636520380,
|
||||
"narHash": "sha256-gBiQ8+AQG6Dia34rqJDuqs6VFe/J1SjIhOZBeTXCKQI=",
|
||||
"lastModified": 1637481586,
|
||||
"narHash": "sha256-cvgegmCRfNFuA/vPseMcSptmlNqD2nC0lLI9BQWU46A=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "1e5c8e9bff00d0844bc3d25d1a98eab5633e600b",
|
||||
"rev": "1abd311eef125e7b64dff723f198d15e5aca2dd4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -35,13 +60,45 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"naersk": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1636968630,
|
||||
"narHash": "sha256-/C8OVV8mo9M9MgQprHo4A5bM9waWMsw6PI4hb4DnGaA=",
|
||||
"owner": "nmattia",
|
||||
"repo": "naersk",
|
||||
"rev": "55c4c0288ea3f115b5dd73af88052c4712994746",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nmattia",
|
||||
"ref": "master",
|
||||
"repo": "naersk",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1636623366,
|
||||
"narHash": "sha256-jOQMlv9qFSj0U66HB+ujZoapty0UbewmSNbX8+3ujUQ=",
|
||||
"lastModified": 1636976544,
|
||||
"narHash": "sha256-9ZmdyoRz4Qu8bP5BKR1T10YbzcB9nvCeQjOEw2cRKR0=",
|
||||
"path": "/nix/store/ha4ld6wd29q1igjmhjdvkvbxpxxxxbxf-source",
|
||||
"rev": "931ab058daa7e4cd539533963f95e2bb0dbd41e6",
|
||||
"type": "path"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1637155076,
|
||||
"narHash": "sha256-26ZPNiuzlsnXpt55Q44+yzXvp385aNAfevzVEKbrU5Q=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c5ed8beb478a8ca035f033f659b60c89500a3034",
|
||||
"rev": "715f63411952c86c8f57ab9e3e3cb866a015b5f2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -51,11 +108,37 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pamedia": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"utils": [
|
||||
"flake-utils"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1637438696,
|
||||
"narHash": "sha256-nhr2A0tf5afMIceNkHcRVO1lSeI/Ocu9RBfOXDuvaVE=",
|
||||
"ref": "main",
|
||||
"rev": "e9005826c19acc110c0e613a4cdba5d95715af61",
|
||||
"revCount": 5,
|
||||
"type": "git",
|
||||
"url": "ssh://git@git.datarift.nl/erwin/pamedia.git"
|
||||
},
|
||||
"original": {
|
||||
"ref": "main",
|
||||
"type": "git",
|
||||
"url": "ssh://git@git.datarift.nl/erwin/pamedia.git"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"ha-now-playing": "ha-now-playing",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"pamedia": "pamedia"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
48
flake.nix
48
flake.nix
|
@ -11,24 +11,40 @@
|
|||
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
|
||||
|
||||
ha-now-playing = {
|
||||
url = "git+ssh://git@git.datarift.nl/erwin/ha-now-playing.git?ref=main";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.utils.follows = "flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, ... }@inputs:
|
||||
pamedia = {
|
||||
url = "git+ssh://git@git.datarift.nl/erwin/pamedia.git?ref=main";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.utils.follows = "flake-utils";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, ha-now-playing, pamedia, ... }@inputs:
|
||||
with inputs;
|
||||
let
|
||||
|
||||
defSystem = systemArch: baseConfig:
|
||||
defSystem = system: baseConfig:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
system = "${systemArch}";
|
||||
system = "${system}";
|
||||
modules = [
|
||||
{ _module.args.inputs = inputs; }
|
||||
{ _module.args.self-overlay = self.overlay; }
|
||||
{ _module.args.pamedia-overlay = pamedia.overlay; }
|
||||
{ _module.args.ha-now-playing-overlay = ha-now-playing.overlay; }
|
||||
({ ... }: {
|
||||
imports = builtins.attrValues self.nixosModules ++ [
|
||||
{
|
||||
nix.nixPath = [ "nixpkgs=${nixpkgs}" ];
|
||||
nixpkgs.overlays = [ self.overlay ];
|
||||
nixpkgs.overlays = [
|
||||
self.overlay
|
||||
ha-now-playing.overlay
|
||||
pamedia.overlay
|
||||
];
|
||||
}
|
||||
|
||||
baseConfig
|
||||
|
@ -44,7 +60,7 @@
|
|||
|
||||
in
|
||||
{
|
||||
overlay = final: prev: (import ./overlays) final prev;
|
||||
overlay = import ./overlays;
|
||||
# overlay = final: prev: {
|
||||
# unstable = import nixpkgs {
|
||||
# system = "x86_64-linux";
|
||||
|
@ -71,11 +87,11 @@
|
|||
];
|
||||
};
|
||||
|
||||
# loki = defSystem "x86_64-linux" {
|
||||
# imports = [
|
||||
# (import (./machines/loki/configuration.nix) { inherit self; })
|
||||
# ];
|
||||
# };
|
||||
loki = defSystem "x86_64-linux" {
|
||||
imports = [
|
||||
(import (./machines/loki/configuration.nix) { inherit self; })
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
} //
|
||||
|
@ -84,7 +100,11 @@
|
|||
let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ self.overlay ];
|
||||
overlays = [
|
||||
self.overlay
|
||||
ha-now-playing.overlay
|
||||
pamedia.overlay
|
||||
];
|
||||
config = {
|
||||
allowUnsupportedSystem = true;
|
||||
allowUnfree = true;
|
||||
|
@ -94,12 +114,12 @@
|
|||
rec {
|
||||
packages = flake-utils.lib.flattenTree {
|
||||
rofi-wayland = pkgs.rofi-wayland;
|
||||
pamedia = pkgs.pamedia;
|
||||
# pamedia = pkgs.pamedia;
|
||||
};
|
||||
|
||||
apps = {
|
||||
rofi-wayland = flake-utils.lib.mkApp { drv = packages.rofi-wayland; };
|
||||
pamedia = flake-utils.lib.mkApp { drv = packages.pamedia; };
|
||||
# pamedia = flake-utils.lib.mkApp { drv = packages.pamedia; };
|
||||
};
|
||||
}
|
||||
);
|
||||
|
|
19
home-manager/modules/bat/default.nix
Normal file
19
home-manager/modules/bat/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
with lib;
|
||||
let cfg = config.eboskma.programs.bat;
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.bat = {
|
||||
enable = mkEnableOption "enable bat";
|
||||
};
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "Monokai Extended Bright";
|
||||
pager = "less -FR";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -11,6 +11,7 @@ let
|
|||
"image.avif.enable" = true;
|
||||
"privacy.webrtc.allowSilencingNotifications" = true;
|
||||
"privacy.webrtc.legacyGlobalIndicator" = false;
|
||||
"browser.shell.checkDefaultBrowser" = false;
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
|
@ -11,7 +11,24 @@ in
|
|||
config = mkIf (cfg.enable) {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
functions = {
|
||||
reload = {
|
||||
body = ''
|
||||
history --save
|
||||
set -gx dirprev $dirprev
|
||||
set -gx dirnext $dirnext
|
||||
set -gx dirstack $dirstack
|
||||
set -g fish_greeting ""
|
||||
exec fish
|
||||
'';
|
||||
description = "Reload Fish while keeping some context";
|
||||
};
|
||||
};
|
||||
|
||||
shellAliases = {
|
||||
code = "${pkgs.vscode}/bin/code --enable-features=UseOzonePlatform --ozone-platform=wayland";
|
||||
ls = "${pkgs.exa}/bin/exa -Fb";
|
||||
};
|
||||
# interactiveShellInit = ''
|
||||
# '';
|
||||
};
|
||||
|
@ -19,6 +36,19 @@ in
|
|||
programs.starship = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
settings = {
|
||||
aws.disabled = true;
|
||||
git_branch.symbol = " ";
|
||||
memory_usage.symbol = " ";
|
||||
package.symbol = " ";
|
||||
python.symbol = " ";
|
||||
rust.symbol = " ";
|
||||
time.disabled = false;
|
||||
status = {
|
||||
disabled = false;
|
||||
format = "[$symbol $status]($style) ";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.fzf = {
|
||||
|
|
109
home-manager/modules/git/default.nix
Normal file
109
home-manager/modules/git/default.nix
Normal file
|
@ -0,0 +1,109 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
with lib;
|
||||
let cfg = config.eboskma.programs.git;
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.git = {
|
||||
enable = mkEnableOption "enable git";
|
||||
|
||||
name = mkOption {
|
||||
description = "your name";
|
||||
type = types.nonEmptyStr;
|
||||
};
|
||||
|
||||
email = mkOption {
|
||||
description = "your e-mail address";
|
||||
type = types.nonEmptyStr;
|
||||
};
|
||||
|
||||
signingKey = mkOption {
|
||||
description = "your GPG signing key ID";
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = cfg.name;
|
||||
userEmail = cfg.email;
|
||||
signing = mkIf (cfg.signingKey != null) {
|
||||
key = cfg.signingKey;
|
||||
signByDefault = true;
|
||||
};
|
||||
|
||||
delta = {
|
||||
enable = true;
|
||||
options = {
|
||||
side-by-side = true;
|
||||
};
|
||||
};
|
||||
|
||||
aliases = {
|
||||
ls = "ls-files";
|
||||
ignored = "ls-files -o -i --exclude-standard";
|
||||
st = "status -s -b";
|
||||
branches = "branch -a";
|
||||
tags = "tag";
|
||||
stashes = "stash list";
|
||||
nevermind = "!git reset --hard HEAD && git clean -d -f";
|
||||
graph = "log --graph -10 --branches --remotes --tags --format=format:'%Cgreen%h %Creset• %<(75,trunc)%s (%cN, %cr) %Cred%d' --date-order";
|
||||
precommit = "diff --cached --diff-algorithm=minimal -w";
|
||||
track = "branch -u";
|
||||
stat = "status -s";
|
||||
up = "pull --autostash --rebase";
|
||||
cm = "commit -m";
|
||||
changelog = "log --oneline --no-merges";
|
||||
source = "remote get-url origin";
|
||||
};
|
||||
|
||||
extraConfig = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
core = {
|
||||
editor = "${pkgs.neovim}/bin/nvim";
|
||||
# pager = "${pkgs.bat}/bin/bat";
|
||||
};
|
||||
merge = {
|
||||
ff = "only";
|
||||
conflictstyle = "diff3";
|
||||
tool = "${pkgs.meld}/bin/meld";
|
||||
};
|
||||
pull = {
|
||||
ff = "only";
|
||||
};
|
||||
rebase = {
|
||||
autoStash = true;
|
||||
};
|
||||
color = {
|
||||
ui = "auto";
|
||||
status = {
|
||||
added = "yellow";
|
||||
changed = "green";
|
||||
untracked = "cyan";
|
||||
};
|
||||
branch = {
|
||||
current = "yellow reverse";
|
||||
local = "yellow";
|
||||
remote = "green";
|
||||
};
|
||||
diff = {
|
||||
meta = "yellow bold";
|
||||
frag = "magenta bold";
|
||||
old = "red bold";
|
||||
new = "green bold";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.gh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
git_protocol = "ssh";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -9,7 +9,7 @@ in
|
|||
|
||||
config = mkIf (cfg.enable) {
|
||||
home.packages = with pkgs; [
|
||||
pinentry-curses
|
||||
pinentry-gnome
|
||||
];
|
||||
|
||||
programs.gpg = {
|
||||
|
@ -18,7 +18,7 @@ in
|
|||
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
pinentryFlavor = "curses";
|
||||
pinentryFlavor = "gnome3";
|
||||
enableSshSupport = true;
|
||||
defaultCacheTtlSsh = 14400;
|
||||
maxCacheTtlSsh = 14400;
|
||||
|
|
|
@ -3,7 +3,7 @@ with lib;
|
|||
let
|
||||
cfg = config.eboskma.programs.sway;
|
||||
mod = "Mod4";
|
||||
swaylockcmd = "${pkgs.swaylock}/bin/swaylock --ignore-empty-password --daemonize --show-failed-attempts --indicator-caps-lock --clock --image ~/.wallpapers/river-2560.png --fade-in 0.5 --scaling fill";
|
||||
swaylockcmd = "${pkgs.swaylock-effects}/bin/swaylock --ignore-empty-password --daemonize --show-failed-attempts --indicator-caps-lock --clock --image ~/.wallpapers/river-2560.png --fade-in 0.5 --scaling fill";
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.sway.enable = mkEnableOption "Enable sway";
|
||||
|
@ -152,9 +152,9 @@ in
|
|||
"${mod}+Shift+Ctrl+Print" = "exec ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.wl-clipboard}/bin/wl-copy -t \"image/png\" -f";
|
||||
"${mod}+Shift+Alt+Print" = "exec ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\"";
|
||||
|
||||
"XF86AudioRaiseVolume" = "exec ${pkgs.pamedia}/bin/pamedia up";
|
||||
"XF86AudioLowerVolume" = "exec ${pkgs.pamedia}/bin/pamedia down";
|
||||
"XF86AudioMute" = "exec ${pkgs.pamedia}/bin/pamedia mute";
|
||||
# "XF86AudioRaiseVolume" = "exec ${pkgs.pamedia}/bin/pamedia up";
|
||||
# "XF86AudioLowerVolume" = "exec ${pkgs.pamedia}/bin/pamedia down";
|
||||
# "XF86AudioMute" = "exec ${pkgs.pamedia}/bin/pamedia mute";
|
||||
"XF86Calculator" = "exec ${pkgs.gnome.gnome-calculator}/bin/gnome-calculator";
|
||||
};
|
||||
|
||||
|
|
63
home-manager/modules/tmux/default.nix
Normal file
63
home-manager/modules/tmux/default.nix
Normal file
|
@ -0,0 +1,63 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
with lib;
|
||||
let cfg = config.eboskma.programs.tmux;
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.tmux = {
|
||||
enable = mkEnableOption "enable tmux";
|
||||
};
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
shortcut = "a";
|
||||
terminal = "tmux-256color";
|
||||
clock24 = true;
|
||||
baseIndex = 1;
|
||||
keyMode = "vi";
|
||||
|
||||
extraConfig = ''
|
||||
source ${pkgs.powerline}/share/tmux/powerline.conf
|
||||
setw -g automatic-rename
|
||||
|
||||
set -ag update-environment "SWAYSOCK"
|
||||
|
||||
bind-key r source ~/.tmux.conf \; display "Reloaded config."
|
||||
|
||||
bind-key C-a send-prefix
|
||||
|
||||
bind-key | split-window -h
|
||||
bind-key - split-window -v
|
||||
|
||||
bind-key h select-pane -L
|
||||
bind-key n select-pane -D
|
||||
bind-key e select-pane -U
|
||||
bind-key i select-pane -R
|
||||
|
||||
bind-key -r C-h select-window -t :-
|
||||
bind-key -r C-i select-window -t :+
|
||||
|
||||
bind-key -r H resize-pane -L 5
|
||||
bind-key -r N resize-pane -D 5
|
||||
bind-key -r E resize-pane -U 5
|
||||
bind-key -r I resize-pane -R 5
|
||||
|
||||
bind-key C-[ swap-window -t -1
|
||||
bind-key C-] swap-window -t +1
|
||||
|
||||
bind-key -T copy-mode-vi h send-keys -X cursor-left
|
||||
bind-key -T copy-mode-vi n send-keys -X cursor-down
|
||||
bind-key -T copy-mode-vi e send-keys -X cursor-up
|
||||
bind-key -T copy-mode-vi i send-keys -X cursor-right
|
||||
|
||||
set -g mouse on
|
||||
bind-key -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
|
||||
bind-key -n WheelDownPane select-pane -t= \; send-keys -M
|
||||
'';
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
powerline
|
||||
];
|
||||
};
|
||||
}
|
|
@ -11,6 +11,7 @@ in
|
|||
enable = true;
|
||||
package = pkgs.vscode;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
arrterian.nix-env-selector
|
||||
bbenoist.nix
|
||||
brettm12345.nixfmt-vscode
|
||||
# aaronduino.nix-lsp
|
||||
|
|
|
@ -447,9 +447,6 @@
|
|||
"[markdown]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"[rust]": {
|
||||
"editor.defaultFormatter": "dprint.dprint"
|
||||
},
|
||||
"[cpp]": {
|
||||
"editor.defaultFormatter": "xaver.clang-format"
|
||||
},
|
||||
|
|
|
@ -18,7 +18,7 @@ in
|
|||
modules-left = [
|
||||
"sway/workspaces"
|
||||
"sway/mode"
|
||||
# "custom/now_playing"
|
||||
"custom/now_playing"
|
||||
];
|
||||
modules-center = [
|
||||
"sway/window"
|
||||
|
@ -89,14 +89,14 @@ in
|
|||
};
|
||||
|
||||
# TODO: package as nix thingy
|
||||
# "custom/now_playing" = {
|
||||
# exec = "${HOME}/.config/waybar/ha-now-playing --host home.datarift.nl --entity media_player.sonos_woonkamer --token <TOKEN>";
|
||||
# format = " ♪ {}";
|
||||
# interval = 2;
|
||||
# on-click = "${HOME}/.config/waybar/ha-now-playing --host home.datarift.nl --entity media_player.sonos_woonkamer --token <TOKEN>";
|
||||
# on-scroll-down = "${HOME}/.config/waybar/ha-now-playing --host home.datarift.nl --entity media_player.sonos_woonkamer --token <TOKEN>";
|
||||
# on-scroll-up = "${HOME}/.config/waybar/ha-now-playing --host home.datarift.nl --entity media_player.sonos_woonkamer --token <TOKEN>";
|
||||
# };
|
||||
"custom/now_playing" = {
|
||||
exec = "${pkgs.ha-now-playing}/bin/ha-now-playing --host home.datarift.nl --entity media_player.sonos_woonkamer --token <TOKEN>";
|
||||
format = " ♪ {}";
|
||||
interval = 2;
|
||||
on-click = "${pkgs.ha-now-playing}/bin/ha-now-playing --host home.datarift.nl --entity media_player.sonos_woonkamer --token <TOKEN> play-pause";
|
||||
on-scroll-down = "${pkgs.ha-now-playing}/bin/ha-now-playing --host home.datarift.nl --entity media_player.sonos_woonkamer --token <TOKEN> volume-up";
|
||||
on-scroll-up = "${pkgs.ha-now-playing}/bin/ha-now-playing --host home.datarift.nl --entity media_player.sonos_woonkamer --token <TOKEN> volume-down";
|
||||
};
|
||||
|
||||
"sway/window" = {
|
||||
format = "{}";
|
||||
|
|
53
machines/loki/configuration.nix
Normal file
53
machines/loki/configuration.nix
Normal file
|
@ -0,0 +1,53 @@
|
|||
{ self, ... }:
|
||||
{
|
||||
imports = [ ./hardware-configuration.nix ];
|
||||
|
||||
eboskma = {
|
||||
base = {
|
||||
plymouth.enable = true;
|
||||
work = false;
|
||||
};
|
||||
desktop = {
|
||||
enable = true;
|
||||
home-manager = true;
|
||||
};
|
||||
nix-common = {
|
||||
enable = true;
|
||||
};
|
||||
greetd.enable = true;
|
||||
fonts.enable = true;
|
||||
networking = {
|
||||
enable = true;
|
||||
dhcpInterfaces = [ "enp4s0" ];
|
||||
};
|
||||
sound.enable = true;
|
||||
docker.enable = true;
|
||||
gnome.enable = true;
|
||||
};
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
time.timeZone = "Europe/Amsterdam";
|
||||
|
||||
networking = {
|
||||
hostName = "loki";
|
||||
useDHCP = false;
|
||||
};
|
||||
|
||||
# nix = {
|
||||
# package = pkgs.nixUnstable;
|
||||
# extraOptions = ''
|
||||
# experimental-features = nix-command flakes
|
||||
# '';
|
||||
# };
|
||||
|
||||
services.openssh.enable = true;
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "21.11"; # Did you read the comment?
|
||||
}
|
37
machines/loki/hardware-configuration.nix
Normal file
37
machines/loki/hardware-configuration.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/42065c7e-d0aa-4de8-a913-014cf59d48ac";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/4064-A1BE";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/36d7ee19-f591-4c29-b7da-cafd9bf2c7f6";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/d93788f7-1b94-4687-8313-055d17f42b7e"; }
|
||||
];
|
||||
|
||||
# high-resolution display
|
||||
hardware.video.hidpi.enable = lib.mkDefault true;
|
||||
}
|
|
@ -34,5 +34,7 @@ in
|
|||
enable = true;
|
||||
driSupport = true;
|
||||
};
|
||||
|
||||
programs.fish.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, pkgs, config, inputs, self-overlay, ... }:
|
||||
{ lib, pkgs, config, inputs, self-overlay, ha-now-playing-overlay, pamedia-overlay, ... }:
|
||||
with lib;
|
||||
let cfg = config.eboskma.desktop;
|
||||
in
|
||||
|
@ -25,59 +25,109 @@ in
|
|||
|
||||
home.username = "erwin";
|
||||
home.homeDirectory = "/home/erwin";
|
||||
home.sessionVariables = {
|
||||
EDITOR = "${pkgs.neovim}/bin/nvim";
|
||||
};
|
||||
|
||||
nixpkgs.config = { allowUnfree = true; };
|
||||
services.gnome-keyring.enable = true;
|
||||
|
||||
home.stateVersion = "21.11";
|
||||
|
||||
eboskma = {
|
||||
programs = {
|
||||
alacritty.enable = true;
|
||||
bat.enable = true;
|
||||
firefox = {
|
||||
enable = true;
|
||||
work = config.eboskma.base.work;
|
||||
};
|
||||
fish.enable = true;
|
||||
git = {
|
||||
enable = true;
|
||||
name = "Erwin Boskma";
|
||||
email = "erwin@datarift.nl";
|
||||
signingKey = "EE7ADEFE1D943C7B";
|
||||
};
|
||||
gpg.enable = true;
|
||||
rofi.enable = true;
|
||||
vscode.enable = true;
|
||||
sway.enable = true;
|
||||
tmux.enable = true;
|
||||
waybar.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
(nerdfonts.override { fonts = [ "CascadiaCode" "FantasqueSansMono" "FiraCode" "Iosevka" "JetBrainsMono" "Meslo" "Noto" "SourceCodePro" ]; })
|
||||
bitwarden
|
||||
fd
|
||||
git
|
||||
gnome.nautilus
|
||||
jetbrains.clion
|
||||
neovim
|
||||
ripgrep
|
||||
signal-desktop
|
||||
steam
|
||||
tdesktop
|
||||
unzip
|
||||
wl-clipboard
|
||||
];
|
||||
|
||||
xdg = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "Arc-Dark";
|
||||
package = pkgs.arc-theme;
|
||||
};
|
||||
|
||||
iconTheme = {
|
||||
name = "Paper";
|
||||
package = pkgs.paper-icon-theme;
|
||||
};
|
||||
|
||||
gtk3.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = true;
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
{
|
||||
nixpkgs.overlays = [ self-overlay ];
|
||||
nixpkgs.overlays = [
|
||||
self-overlay
|
||||
ha-now-playing-overlay
|
||||
pamedia-overlay
|
||||
];
|
||||
}
|
||||
../../home-manager/modules/alacritty
|
||||
../../home-manager/modules/bat
|
||||
../../home-manager/modules/firefox
|
||||
../../home-manager/modules/fish
|
||||
../../home-manager/modules/git
|
||||
../../home-manager/modules/gpg
|
||||
../../home-manager/modules/rofi
|
||||
../../home-manager/modules/vscode
|
||||
../../home-manager/modules/sway
|
||||
../../home-manager/modules/tmux
|
||||
../../home-manager/modules/waybar
|
||||
];
|
||||
};
|
||||
|
||||
programs = {
|
||||
dconf.enable = true;
|
||||
|
||||
sway = {
|
||||
enable = true;
|
||||
wrapperFeatures = {
|
||||
gtk = true;
|
||||
base = true;
|
||||
};
|
||||
extraPackages = with pkgs; [ swaylock-effects swayidle ];
|
||||
};
|
||||
};
|
||||
|
||||
xdg = {
|
||||
mime.enable = true;
|
||||
menus.enable = true;
|
||||
|
@ -92,12 +142,13 @@ in
|
|||
};
|
||||
|
||||
services = {
|
||||
pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
media-session.enable = true;
|
||||
dbus.packages = [ pkgs.gcr ];
|
||||
};
|
||||
|
||||
security.pam.services.swaylock = {
|
||||
text = ''
|
||||
auth include login
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
25
modules/docker/default.nix
Normal file
25
modules/docker/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
with lib;
|
||||
let cfg = config.eboskma.docker;
|
||||
in
|
||||
{
|
||||
|
||||
options.eboskma.docker = { enable = mkEnableOption "activate docker"; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = with pkgs; [ docker-compose ];
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
autoPrune = {
|
||||
enable = true;
|
||||
dates = "weekly";
|
||||
};
|
||||
};
|
||||
|
||||
users.extraUsers.${config.eboskma.var.mainUser}.extraGroups =
|
||||
[ "docker" ];
|
||||
|
||||
};
|
||||
}
|
35
modules/fonts/default.nix
Normal file
35
modules/fonts/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
with lib;
|
||||
let cfg = config.eboskma.fonts;
|
||||
in
|
||||
{
|
||||
|
||||
options.eboskma.fonts = { enable = mkEnableOption "activate fonts"; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
fonts = {
|
||||
|
||||
fontDir.enable = true;
|
||||
|
||||
fonts = with pkgs; [
|
||||
(nerdfonts.override { fonts = [ "CascadiaCode" "FantasqueSansMono" "FiraCode" "Iosevka" "JetBrainsMono" "Meslo" "Noto" "SourceCodePro" ]; })
|
||||
dejavu_fonts
|
||||
kochi-substitute
|
||||
noto-fonts-emoji
|
||||
corefonts
|
||||
recursive
|
||||
ttf_bitstream_vera
|
||||
];
|
||||
|
||||
fontconfig = {
|
||||
defaultFonts = {
|
||||
serif = [ "Recursive Sans Casual Static Medium" ];
|
||||
sansSerif = [ "Recursive Sans Linear Static Medium" ];
|
||||
monospace = [ "Iosevka Nerd Font" ];
|
||||
emoji = [ "Noto Color Emoji" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
17
modules/gnome/default.nix
Normal file
17
modules/gnome/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
with lib;
|
||||
let cfg = config.eboskma.gnome;
|
||||
in
|
||||
{
|
||||
options.eboskma.gnome.enable = mkEnableOption "activate gnome support settings";
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnomeExtensions.appindicator
|
||||
];
|
||||
services.udev.packages = with pkgs; [
|
||||
gnome3.gnome-settings-daemon
|
||||
];
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
};
|
||||
}
|
27
modules/networking/default.nix
Normal file
27
modules/networking/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
with lib;
|
||||
let cfg = config.eboskma.networking;
|
||||
in
|
||||
{
|
||||
options.eboskma.networking = {
|
||||
enable = mkEnableOption "activate networing settings";
|
||||
|
||||
dhcpInterfaces = mkOption {
|
||||
description = "list of interfaces to enable DHCP on";
|
||||
type = types.listOf types.nonEmptyStr;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
interfaces = listToAttrs (builtins.map
|
||||
(iface: {
|
||||
name = iface;
|
||||
value = { useDHCP = true; };
|
||||
})
|
||||
cfg.dhcpInterfaces);
|
||||
};
|
||||
users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = [ "networkmanager" ];
|
||||
};
|
||||
}
|
23
modules/options/default.nix
Normal file
23
modules/options/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
with lib;
|
||||
let cfg = config.eboskma.var;
|
||||
in
|
||||
{
|
||||
|
||||
options.eboskma.var.mainUser = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "erwin";
|
||||
description = ''
|
||||
The main system user
|
||||
'';
|
||||
};
|
||||
|
||||
options.eboskma.system = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "x86_64-linux";
|
||||
description = ''
|
||||
System type
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
21
modules/sound/default.nix
Normal file
21
modules/sound/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
with lib;
|
||||
let cfg = config.eboskma.sound;
|
||||
in
|
||||
{
|
||||
options.eboskma.sound.enable = mkEnableOption "activate sound settings";
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
sound.enable = true;
|
||||
services = {
|
||||
pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
media-session.enable = true;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [ pavucontrol ];
|
||||
|
||||
users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = [ "audio" ];
|
||||
};
|
||||
}
|
|
@ -1,11 +1,11 @@
|
|||
final: prev: {
|
||||
rofi-wayland = prev.pkgs.callPackage ../pkgs/rofi-wayland { };
|
||||
pamedia = prev.pkgs.callPackage ../pkgs/pamedia {
|
||||
buildPythonPackage = prev.pkgs.python3.pkgs.buildPythonPackage;
|
||||
pulsectl = prev.pkgs.python39Packages.pulsectl;
|
||||
pygobject3 = prev.pkgs.python39Packages.pygobject3;
|
||||
gobject-introspection = prev.pkgs.gobject-introspection;
|
||||
libnotify = prev.pkgs.libnotify;
|
||||
lib = prev.pkgs.lib;
|
||||
};
|
||||
# pamedia = prev.pkgs.callPackage ../pkgs/pamedia {
|
||||
# buildPythonPackage = prev.pkgs.python3.pkgs.buildPythonPackage;
|
||||
# pulsectl = prev.pkgs.python39Packages.pulsectl;
|
||||
# pygobject3 = prev.pkgs.python39Packages.pygobject3;
|
||||
# gobject-introspection = prev.pkgs.gobject-introspection;
|
||||
# libnotify = prev.pkgs.libnotify;
|
||||
# lib = prev.pkgs.lib;
|
||||
# };
|
||||
}
|
||||
|
|
|
@ -11,11 +11,14 @@ buildPythonPackage rec {
|
|||
|
||||
src = ./src;
|
||||
|
||||
buildInputs = [
|
||||
gobject-introspection
|
||||
libnotify
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pulsectl
|
||||
pygobject3
|
||||
gobject-introspection
|
||||
libnotify
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
|
Loading…
Reference in a new issue