ritual: Nix-darwin hackintosh init
This commit is contained in:
parent
e60bbd7f41
commit
efa8532935
25
README.md
25
README.md
|
@ -2,9 +2,10 @@
|
||||||
Using [colmena](https://github.com/zhaofengli/colmena)
|
Using [colmena](https://github.com/zhaofengli/colmena)
|
||||||
|
|
||||||
## Hosts
|
## Hosts
|
||||||
- `bloodletting`: Main server
|
- `Agathas-Mac-mini`: macOS/nix-darwin desktop
|
||||||
- `ritual`: NixOS laptop
|
- `bloodletting`: Main server / technogothic.net
|
||||||
- `tears`: NixOS desktop
|
- `ritual`: macOS/nix-darwin laptop
|
||||||
|
- `watchtower`: Home server
|
||||||
|
|
||||||
### Manual setup on blank system/migrations
|
### Manual setup on blank system/migrations
|
||||||
Bloodletting:
|
Bloodletting:
|
||||||
|
@ -16,6 +17,8 @@ Bloodletting:
|
||||||
- `bin_rs`
|
- `bin_rs`
|
||||||
- `fail2ban`
|
- `fail2ban`
|
||||||
- `grafana`
|
- `grafana`
|
||||||
|
- `headscale`
|
||||||
|
- `hedgedoc`
|
||||||
- `mastodon`
|
- `mastodon`
|
||||||
- dump and import Postgres and Redis DBs
|
- dump and import Postgres and Redis DBs
|
||||||
- `matterbridge`
|
- `matterbridge`
|
||||||
|
@ -27,18 +30,10 @@ Bloodletting:
|
||||||
- `prosody`
|
- `prosody`
|
||||||
- `/home/ftp`
|
- `/home/ftp`
|
||||||
|
|
||||||
Ritual/Tears:
|
Agathas-Mac-mini/Ritual:
|
||||||
- `colmena apply[-local]` - deploy config
|
- `darwin-rebuild switch --flake .` - deploy config
|
||||||
- `mkdir -p ~/.gnupg` - create directory for gnupg
|
|
||||||
- copy `~/.ssh/id_ed25519`
|
[Last commit which includes BSPWM configs](https://git.lain.faith/sorceress/nix-infra/commit/e60bbd7f41bdb4456319637f38a25425b6f5fef7)
|
||||||
- manual configuration/login:
|
|
||||||
- Firefox
|
|
||||||
- Copy extension data
|
|
||||||
- Element
|
|
||||||
- Dino
|
|
||||||
- Telegram Desktop
|
|
||||||
- Geary
|
|
||||||
- Obsidian
|
|
||||||
|
|
||||||
### Rsyncd Modules
|
### Rsyncd Modules
|
||||||
Modded minecraft instance rsync modules can be accessed through `mc-[modpack]@bloodletting::mc-[modpack]` with `--rsh=ssh`
|
Modded minecraft instance rsync modules can be accessed through `mc-[modpack]@bloodletting::mc-[modpack]` with `--rsh=ssh`
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
## Optimizations
|
## Optimizations
|
||||||
|
|
||||||
# Link identical files
|
# Link identical files
|
||||||
nix.settings.auto-optimise-store = true;
|
nix.optimise.automatic = true;
|
||||||
|
|
||||||
# Garbage collection
|
# Garbage collection
|
||||||
nix.gc = {
|
nix.gc = {
|
||||||
|
@ -43,8 +43,6 @@
|
||||||
xclip
|
xclip
|
||||||
];
|
];
|
||||||
|
|
||||||
services.tailscale.enable = true;
|
|
||||||
|
|
||||||
# 🥺
|
# 🥺
|
||||||
# security.please.enable = true;
|
# security.please.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,95 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }: {
|
|
||||||
# Pipewire
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.noisetorch.enable = true;
|
|
||||||
|
|
||||||
systemd.user.services."noisetorch" = {
|
|
||||||
description =
|
|
||||||
"Virtual microphone device with noise supression for PulseAudio";
|
|
||||||
|
|
||||||
after = [ "graphical-session-pre.target" ];
|
|
||||||
partOf = [ "graphical-session.target" "pipewire.service" ];
|
|
||||||
wantedBy = [ "graphical-session.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.noisetorch}/bin/noisetorch -i -s ${
|
|
||||||
if config.networking.hostName == "tears" then
|
|
||||||
"US-4x4HR_ch0"
|
|
||||||
else
|
|
||||||
"alsa_input.pci-0000_00_1f.3.analog-stereo"
|
|
||||||
}";
|
|
||||||
ExecStop = "${pkgs.noisetorch}/bin/noisetorch -u";
|
|
||||||
Restart = "on-failure";
|
|
||||||
RestartSec = 5;
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# User packages
|
|
||||||
users.users.agatha.packages = with pkgs; [ pamixer pavucontrol playerctl ];
|
|
||||||
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
services.easyeffects = {
|
|
||||||
enable = false;
|
|
||||||
preset = "DT-770-flat-eq";
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."easyeffects/output/DT-770-flat-eq.json".text = let
|
|
||||||
band = num: freq: gain: ''
|
|
||||||
"band${toString num}": {
|
|
||||||
"frequency": ${toString freq},
|
|
||||||
"gain": ${toString gain},
|
|
||||||
"mode": "RLC (BT)",
|
|
||||||
"mute": false,
|
|
||||||
"q": 1.41,
|
|
||||||
"slope": "x1",
|
|
||||||
"solo": false,
|
|
||||||
"type": "Bell"
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
bands = lib.concatStringsSep ''
|
|
||||||
,
|
|
||||||
'' [
|
|
||||||
(band 0 31.0 5.8)
|
|
||||||
(band 1 62.0 8.0)
|
|
||||||
(band 2 125.0 (-8.03))
|
|
||||||
(band 3 250.0 (-2.42))
|
|
||||||
(band 4 500.0 0.71)
|
|
||||||
(band 5 1000.0 1.67)
|
|
||||||
(band 6 2000.0 (-2.42))
|
|
||||||
(band 7 4000.0 7.12)
|
|
||||||
(band 8 8000.0 (-0.61))
|
|
||||||
(band 9 16000.0 (-2.58))
|
|
||||||
];
|
|
||||||
in ''
|
|
||||||
{
|
|
||||||
"output": {
|
|
||||||
"blocklist": [],
|
|
||||||
"equalizer": {
|
|
||||||
"input-gain": 0.0,
|
|
||||||
"left": {
|
|
||||||
${bands}
|
|
||||||
},
|
|
||||||
"mode": "IIR",
|
|
||||||
"num-bands": 10,
|
|
||||||
"output-gain": 0.0,
|
|
||||||
"right": {
|
|
||||||
${bands}
|
|
||||||
},
|
|
||||||
"split-channels": false
|
|
||||||
},
|
|
||||||
"plugins_order": [
|
|
||||||
"equalizer"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
# Config for client devices, but not necessarily a full desktop environment.
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
../restic.nix
|
|
||||||
../yubikey.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# User packages
|
|
||||||
users.users.agatha.packages = with pkgs; [
|
|
||||||
android-tools
|
|
||||||
broot
|
|
||||||
colmena
|
|
||||||
exiftool
|
|
||||||
ffmpeg
|
|
||||||
flac
|
|
||||||
hyperfine
|
|
||||||
just
|
|
||||||
magic-wormhole
|
|
||||||
neofetch
|
|
||||||
nil
|
|
||||||
pfetch
|
|
||||||
pridefetch
|
|
||||||
rink
|
|
||||||
sshfs
|
|
||||||
unstable.rustmission
|
|
||||||
whois
|
|
||||||
wireguard-tools
|
|
||||||
yt-dlp
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
programs.direnv.enable = true;
|
|
||||||
home.sessionVariables = {
|
|
||||||
"DIRENV_LOG_FORMAT" = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.ssh.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,129 +0,0 @@
|
||||||
{ lib, pkgs, config, ... }: {
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
xsession.windowManager.bspwm = {
|
|
||||||
enable = true;
|
|
||||||
extraConfigEarly = lib.strings.concatStringsSep "\n" [
|
|
||||||
"xsetroot -cursor_name left_ptr"
|
|
||||||
"xinput set-prop 'SynPS/2 Synaptics TouchPad' 'libinput Scrolling Pixel Distance' 10"
|
|
||||||
"setxkbmap"
|
|
||||||
];
|
|
||||||
extraConfig = let
|
|
||||||
startOnce =
|
|
||||||
map (v: "! pgrep ${builtins.head (lib.splitString " " v)} && ${v} &");
|
|
||||||
startup = startOnce [
|
|
||||||
"firefox"
|
|
||||||
"element-desktop"
|
|
||||||
"dino"
|
|
||||||
"telegram-desktop"
|
|
||||||
"cider"
|
|
||||||
"geary"
|
|
||||||
"bspm -d"
|
|
||||||
];
|
|
||||||
monitors = builtins.genList (_: _) (builtins.length (builtins.attrValues
|
|
||||||
config.home-manager.users.agatha.xsession.windowManager.bspwm.monitors));
|
|
||||||
nitrogen = map (i:
|
|
||||||
"nitrogen --head=${toString i} --set-zoom-fill ${
|
|
||||||
config.environment.graphical.colorschemes."${config.environment.graphical.theme.name}".image
|
|
||||||
}") monitors;
|
|
||||||
in lib.strings.concatStringsSep "\n" (nitrogen ++ startup);
|
|
||||||
settings = let
|
|
||||||
color = n:
|
|
||||||
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
|
|
||||||
n}";
|
|
||||||
in {
|
|
||||||
border_width = 3;
|
|
||||||
window_gap = 15;
|
|
||||||
top_padding = 45;
|
|
||||||
split_ratio = 0.5;
|
|
||||||
borderless_monocle = false;
|
|
||||||
gapless_monocle = false;
|
|
||||||
normal_border_color = color 0;
|
|
||||||
focused_border_color = color 1;
|
|
||||||
active_border_color = color 2;
|
|
||||||
urgent_border_color = color 2;
|
|
||||||
presel_feedback_color = color 2;
|
|
||||||
};
|
|
||||||
rules = {
|
|
||||||
"Gimp" = {
|
|
||||||
state = "tiled";
|
|
||||||
follow = true;
|
|
||||||
};
|
|
||||||
"Yubico Authenticator".state = "floating";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.sxhkd = {
|
|
||||||
enable = true;
|
|
||||||
keybindings = {
|
|
||||||
# Disable middle click paste
|
|
||||||
"~button2" = "echo -n | xclip -in";
|
|
||||||
# Terminal
|
|
||||||
"super + Return" = "kitty";
|
|
||||||
"Caps_Lock" = "kitty";
|
|
||||||
# File explorer
|
|
||||||
"super + e" = "nautilus";
|
|
||||||
# Program launcher
|
|
||||||
"super + @space" = "rofi -show drun";
|
|
||||||
# Clipboard
|
|
||||||
"super + v" = "clipcat-menu";
|
|
||||||
# Calculator
|
|
||||||
"super + shift + c" = ''
|
|
||||||
ROFI_PLUGIN_PATH=${pkgs.rofi-calc}/lib/rofi rofi -show calc -modi calc -calc-command '${pkgs.xdotool}/bin/xdotool type --clearmodifiers "\{result\}'
|
|
||||||
'';
|
|
||||||
"super + shift + e" = ''
|
|
||||||
rofimoji --action clipboard
|
|
||||||
'';
|
|
||||||
# Media keys
|
|
||||||
"XF86Audio{Raise,Lower}Volume" = "pamixer {-i,-d} 5";
|
|
||||||
"XF86AudioMute" = "pamixer -t";
|
|
||||||
"XF86Audio{Prev,Next}" = "playerctl {previous,next}";
|
|
||||||
"XF86AudioPlay" = "playerctl play-pause";
|
|
||||||
"XF86MonBrightness{Up,Down}" = ''
|
|
||||||
brightnessctl set 10%{+,-} && dunstify -r 98114 -h int:value:$(( $(brightnessctl get) * 100 / $(brightnessctl max) )) "Brightness set to:"
|
|
||||||
'';
|
|
||||||
# Switch outputs
|
|
||||||
"super + o" = ''
|
|
||||||
dunstify -r 112119 "Sound output switched to $(${pkgs.pads}/bin/pads next && ${pkgs.pads}/bin/pads list | rg '^\*' | choose 1:)"'';
|
|
||||||
# Screenshot
|
|
||||||
"Print" = "flameshot gui && bspc desktop --focus focused";
|
|
||||||
"shift + Print" =
|
|
||||||
"flameshot gui -d 3000 && bspc desktop --focus focused";
|
|
||||||
# Pause notifications
|
|
||||||
"super + n" = "dunstctl set-paused toggle";
|
|
||||||
# Reload WM
|
|
||||||
"super + shift + {q,r}" = ''
|
|
||||||
pkill -USR1 -x sxhkd \
|
|
||||||
; for p in picom polybar dunst; killall $p; end \
|
|
||||||
; bspc {quit,wm -r}
|
|
||||||
'';
|
|
||||||
# Close/kill window
|
|
||||||
"super + {_,shift + }w" = "bspc node -{c,k}";
|
|
||||||
# Monocle layout
|
|
||||||
"super + m" = "bspm monocle --toggle";
|
|
||||||
"super + shift + m" = "bspm monocle --next";
|
|
||||||
# Toggle hide all windows
|
|
||||||
"super + d" =
|
|
||||||
"bspc query -N -n .window | xargs -I node_id bspc node node_id -g hidden";
|
|
||||||
# Change window state
|
|
||||||
"super + {t,shift + t,s,f}" =
|
|
||||||
"bspc node -t {tiled,pseudo_tiled,floating,fullscreen}";
|
|
||||||
# Focus/move window
|
|
||||||
"super + {_,shift + }{j,k,i,l}" =
|
|
||||||
"bspc node -{f,s} {west,south,north,east}";
|
|
||||||
# Focus the next window in the current desktop
|
|
||||||
"super + c" = "bspc node -f next.local.!hidden.window";
|
|
||||||
# Focus previous/next desktop on current monitor
|
|
||||||
"super + bracket{left,right}" = "bspc desktop -f {prev,next}.local";
|
|
||||||
# Switch desktops / Move window to desktop
|
|
||||||
"super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} '^{1-9,10}'";
|
|
||||||
# Window switcher
|
|
||||||
"alt + Tab" = "rofi -show window";
|
|
||||||
# Move floating window
|
|
||||||
"super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}";
|
|
||||||
# Lock screen
|
|
||||||
"super + x" = ''
|
|
||||||
betterlockscreen --lock dimblur --time-format "%H:%M"; systemctl --user restart gpg-agent'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,67 +0,0 @@
|
||||||
{
|
|
||||||
# Persistent clipboard
|
|
||||||
services.clipcat.enable = true;
|
|
||||||
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
xdg.configFile."clipcat/clipcatd.toml".text = ''
|
|
||||||
daemonize = true
|
|
||||||
pid_file = "/run/user/1000/clipcatd.pid"
|
|
||||||
max_history = 50
|
|
||||||
history_file_path = "/home/agatha/.cache/clipcat/clipcatd-history"
|
|
||||||
snippets = []
|
|
||||||
|
|
||||||
[log]
|
|
||||||
emit_journald = true
|
|
||||||
emit_stdout = false
|
|
||||||
emit_stderr = false
|
|
||||||
level = "INFO"
|
|
||||||
|
|
||||||
[watcher]
|
|
||||||
load_current = true
|
|
||||||
enable_clipboard = true
|
|
||||||
enable_primary = false
|
|
||||||
sensitive_x11_atoms = []
|
|
||||||
filter_text_min_length = 1
|
|
||||||
denied_text_regex_patterns = []
|
|
||||||
capture_image = true
|
|
||||||
|
|
||||||
[grpc]
|
|
||||||
enable_http = false
|
|
||||||
enable_local_socket = true
|
|
||||||
local_socket = "/run/user/1000/clipcat/grpc.sock"
|
|
||||||
|
|
||||||
[desktop_notification]
|
|
||||||
enable = true
|
|
||||||
icon = "accessories-clipboard"
|
|
||||||
timeout_ms = 2000
|
|
||||||
long_plaintext_length = 2000
|
|
||||||
'';
|
|
||||||
|
|
||||||
xdg.configFile."clipcat/clipcatctl.toml".text = ''
|
|
||||||
server_endpoint = "/run/user/1000/clipcat/grpc.sock"
|
|
||||||
|
|
||||||
[log]
|
|
||||||
emit_journald = true
|
|
||||||
emit_stdout = false
|
|
||||||
emit_stderr = false
|
|
||||||
level = "INFO"
|
|
||||||
'';
|
|
||||||
|
|
||||||
xdg.configFile."clipcat/clipcat-menu.toml".text = ''
|
|
||||||
server_endpoint = "/run/user/1000/clipcat/grpc.sock"
|
|
||||||
finder = "rofi"
|
|
||||||
|
|
||||||
[rofi]
|
|
||||||
line_length = 35
|
|
||||||
menu_length = 15
|
|
||||||
menu_prompt = "Clipboard"
|
|
||||||
extra_arguments = []
|
|
||||||
|
|
||||||
[log]
|
|
||||||
emit_journald = true
|
|
||||||
emit_stdout = false
|
|
||||||
emit_stderr = false
|
|
||||||
level = "INFO"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./default.nix
|
||||||
|
./iosevka.nix
|
||||||
|
../../home_manager/common.nix
|
||||||
|
../../remote-builds.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
services.nix-daemon.enable = true;
|
||||||
|
nix.settings = {
|
||||||
|
extra-nix-path = "nixpkgs=flake:nixpkgs";
|
||||||
|
substituters = [
|
||||||
|
"https://cache.nixos.org"
|
||||||
|
"https://cache.lix.systems"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||||
|
"cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
|
||||||
|
];
|
||||||
|
trusted-users = [ "@admin" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Needed for the nix-darwin environment even if zsh is not used.
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
|
||||||
|
users.users.agatha = {
|
||||||
|
name = "agatha";
|
||||||
|
home = lib.mkForce "/Users/agatha";
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
(nerdfonts.override {
|
||||||
|
fonts = [
|
||||||
|
"DaddyTimeMono"
|
||||||
|
"NerdFontsSymbolsOnly"
|
||||||
|
];
|
||||||
|
})
|
||||||
|
fira-code
|
||||||
|
fira-code-symbols
|
||||||
|
font-awesome_5
|
||||||
|
iosevka
|
||||||
|
siji
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,215 +1,35 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
pkgs,
|
# Config for client devices, but not necessarily a full desktop environment.
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./barebones.nix
|
|
||||||
./audio.nix
|
|
||||||
./bspwm.nix
|
|
||||||
./clipboard.nix
|
|
||||||
./dunst.nix
|
|
||||||
./element.nix
|
|
||||||
./iosevka.nix
|
|
||||||
./kitty.nix
|
|
||||||
./lockscreen.nix
|
|
||||||
./mail.nix
|
|
||||||
./picom.nix
|
|
||||||
./polybar.nix
|
|
||||||
./rofi.nix
|
|
||||||
./syncthing.nix
|
|
||||||
./theme.nix
|
|
||||||
./url-eater.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(final: prev: {
|
|
||||||
pads = final.callPackage ../../../common/pkgs/pads.nix { };
|
|
||||||
bspm = final.callPackage ../../../common/pkgs/bspm.nix { };
|
|
||||||
polybar-scripts = final.callPackage ../../../common/pkgs/polybar-scripts.nix { };
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
# User packages
|
# User packages
|
||||||
users.users.agatha.packages = with pkgs; [
|
users.users.agatha.packages = with pkgs; [
|
||||||
blueberry
|
android-tools
|
||||||
brightnessctl
|
broot
|
||||||
bspm
|
colmena
|
||||||
cider
|
exiftool
|
||||||
darktable
|
ffmpeg
|
||||||
dino
|
flac
|
||||||
element-desktop
|
hyperfine
|
||||||
flameshot
|
just
|
||||||
gimp
|
magic-wormhole
|
||||||
glib
|
neofetch
|
||||||
gnome.eog
|
nil
|
||||||
gnome.file-roller
|
pfetch
|
||||||
gnome.gnome-calendar
|
pridefetch
|
||||||
gnome.gnome-control-center
|
rink
|
||||||
gnome.gnome-disk-utility
|
sshfs
|
||||||
gnome.gnome-font-viewer
|
unstable.rustmission
|
||||||
gnome.nautilus
|
whois
|
||||||
mpv
|
wireguard-tools
|
||||||
mumble
|
yt-dlp
|
||||||
nitrogen
|
|
||||||
obs-studio
|
|
||||||
obsidian
|
|
||||||
polybar-scripts
|
|
||||||
prismlauncher
|
|
||||||
rofi-calc
|
|
||||||
rofimoji
|
|
||||||
speechd
|
|
||||||
tdesktop
|
|
||||||
xdg-utils
|
|
||||||
xdotool
|
|
||||||
yubioath-flutter
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# blame Obsidian
|
|
||||||
nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ];
|
|
||||||
|
|
||||||
# Brightness/volume keys
|
|
||||||
users.users.agatha.extraGroups = [ "video" ];
|
|
||||||
|
|
||||||
location = {
|
|
||||||
latitude = 49.0;
|
|
||||||
longitude = 8.4;
|
|
||||||
};
|
|
||||||
services.redshift = {
|
|
||||||
enable = true;
|
|
||||||
brightness.night = "0.8";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.xserver = {
|
|
||||||
enable = true;
|
|
||||||
displayManager = {
|
|
||||||
gdm.enable = true;
|
|
||||||
|
|
||||||
sessionPackages = [ pkgs.sway ];
|
|
||||||
session = [
|
|
||||||
{
|
|
||||||
manage = "window";
|
|
||||||
name = "bspwm";
|
|
||||||
start =
|
|
||||||
let
|
|
||||||
cfg = config.home-manager.users.agatha;
|
|
||||||
in
|
|
||||||
''
|
|
||||||
${cfg.services.sxhkd.package}/bin/sxhkd ${toString cfg.services.sxhkd.extraOptions} &
|
|
||||||
${cfg.xsession.windowManager.bspwm.package}/bin/bspwm -c ${cfg.xdg.configHome}/bspwm/bspwmrc
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# Layout overrides
|
|
||||||
layout = lib.mkForce "eu,de(qwerty),ua,ru";
|
|
||||||
xkbOptions = "ctrl:nocaps,compose:rctrl";
|
|
||||||
|
|
||||||
autoRepeatDelay = 200;
|
|
||||||
autoRepeatInterval = 50;
|
|
||||||
|
|
||||||
libinput.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.agatha = {
|
home-manager.users.agatha = {
|
||||||
# Compose key sequences
|
programs.direnv.enable = true;
|
||||||
home.file.".XCompose".text = ''
|
home.sessionVariables = {
|
||||||
include "%L"
|
"DIRENV_LOG_FORMAT" = "";
|
||||||
|
|
||||||
<Multi_key> <l> <f> : "( ͡° ͜ʖ ͡°)"
|
|
||||||
<Multi_key> <s> <f> : "¯\\_(ツ)_/¯"
|
|
||||||
<Multi_key> <g> <f> : "༼ つ ◕_◕ ༽つ"
|
|
||||||
<Multi_key> <B> <B> : "🅱️"
|
|
||||||
<Multi_key> <o> <asterisk> : "•"
|
|
||||||
<Multi_key> <h> <r> : "◆"
|
|
||||||
<Multi_key> <v> <v> : "✔"
|
|
||||||
<Multi_key> <v> <period> <v> : "✓"
|
|
||||||
<Multi_key> <space> <space> : ""
|
|
||||||
<Multi_key> <s> <0> : "§"
|
|
||||||
<Multi_key> <b><l> : "█"
|
|
||||||
<Multi_key> <h><s> : "☭"
|
|
||||||
<Multi_key> <s><r> : "√"
|
|
||||||
<Multi_key> <t><r> : "⚧️ trans rights uwu"
|
|
||||||
<Multi_key> <w><apostrophe> : "òwó"
|
|
||||||
<Multi_key> <W><apostrophe> : "ÒwÓ"
|
|
||||||
<Multi_key> <p><t> : "👉👈"
|
|
||||||
<Multi_key> <p><l> : "🥺"
|
|
||||||
<Multi_key> <m><s> : "/html <span data-mx-spoiler=\"\"></span>"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
services.gvfs.enable = true;
|
|
||||||
security.polkit.enable = true;
|
|
||||||
programs.dconf.enable = true;
|
|
||||||
|
|
||||||
programs.geary.enable = true;
|
|
||||||
programs.steam.enable = true;
|
|
||||||
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
autoConfig = ''
|
|
||||||
pref("privacy.webrtc.legacyGlobalIndicator", false);
|
|
||||||
pref("privacy.webrtc.hideGlobalIndicator", true);
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
# Screenshare on wlroots
|
|
||||||
xdg = {
|
|
||||||
portal = {
|
|
||||||
enable = true;
|
|
||||||
config.common.default = "*";
|
|
||||||
wlr.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts.fontconfig.enable = true;
|
|
||||||
fonts.fontDir.enable = true;
|
|
||||||
fonts.packages = with pkgs; [
|
|
||||||
(nerdfonts.override {
|
|
||||||
fonts = [
|
|
||||||
"DaddyTimeMono"
|
|
||||||
"NerdFontsSymbolsOnly"
|
|
||||||
];
|
|
||||||
})
|
|
||||||
cantarell-fonts
|
|
||||||
cm_unicode
|
|
||||||
corefonts
|
|
||||||
crimson
|
|
||||||
crimson-pro
|
|
||||||
dejavu_fonts
|
|
||||||
fira-code
|
|
||||||
fira-code-symbols
|
|
||||||
font-awesome_5
|
|
||||||
helvetica-neue-lt-std
|
|
||||||
iosevka
|
|
||||||
noto-fonts-cjk
|
|
||||||
siji
|
|
||||||
twitter-color-emoji
|
|
||||||
];
|
|
||||||
|
|
||||||
services.printing = {
|
|
||||||
enable = true;
|
|
||||||
drivers = [ pkgs.hplip ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.avahi = {
|
|
||||||
enable = true;
|
|
||||||
nssmdns = true;
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
General = {
|
|
||||||
Disable = "Headset";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Virtual Camera config
|
|
||||||
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
|
||||||
boot.kernelModules = [ "v4l2loopback" ];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,109 +0,0 @@
|
||||||
{ pkgs, config, ... }:
|
|
||||||
let
|
|
||||||
color = n:
|
|
||||||
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
|
|
||||||
n}";
|
|
||||||
in {
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
services.dunst = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
global = {
|
|
||||||
# Display
|
|
||||||
monitor = 1;
|
|
||||||
|
|
||||||
follow = "none";
|
|
||||||
fullscreen = "pushback";
|
|
||||||
|
|
||||||
# Geometry
|
|
||||||
width = 300;
|
|
||||||
height = 300;
|
|
||||||
|
|
||||||
origin = "top-right";
|
|
||||||
offset = "15x63";
|
|
||||||
|
|
||||||
notification_limit = 5;
|
|
||||||
|
|
||||||
# Progress bar
|
|
||||||
progress_bar = true;
|
|
||||||
progress_bar_height = 3;
|
|
||||||
progress_bar_frame_width = 0;
|
|
||||||
progress_bar_min_width = 150;
|
|
||||||
progress_bar_max_width = 300;
|
|
||||||
|
|
||||||
indicate_hidden = true;
|
|
||||||
separator_height = 0;
|
|
||||||
padding = 8;
|
|
||||||
horizontal_padding = 8;
|
|
||||||
text_icon_padding = 0;
|
|
||||||
frame_width = 3;
|
|
||||||
|
|
||||||
frame_color = color 1;
|
|
||||||
highlight = color 3;
|
|
||||||
|
|
||||||
separator_color = "auto";
|
|
||||||
sort = true;
|
|
||||||
|
|
||||||
# Text
|
|
||||||
font = "Siji, DaddyTimeMono Nerd Font 10";
|
|
||||||
line_height = 0;
|
|
||||||
|
|
||||||
markup = "full";
|
|
||||||
format = ''
|
|
||||||
<b>%s</b>
|
|
||||||
%b %p'';
|
|
||||||
alignment = "left";
|
|
||||||
vertical_alignment = "center";
|
|
||||||
|
|
||||||
show_age_threshold = 60;
|
|
||||||
ellipsize = "middle";
|
|
||||||
ignore_newline = false;
|
|
||||||
hide_duplicate_coutn = false;
|
|
||||||
show_indicators = false;
|
|
||||||
|
|
||||||
# Icons
|
|
||||||
icon_position = "left";
|
|
||||||
min_icon_size = 0;
|
|
||||||
max_icon_size = 32;
|
|
||||||
|
|
||||||
# History
|
|
||||||
sticky_history = true;
|
|
||||||
history_length = 20;
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
browser = "${pkgs.xdg-utils}/bin/xdg-open";
|
|
||||||
always_run_script = true;
|
|
||||||
|
|
||||||
title = "Dunst";
|
|
||||||
class = "Dunst";
|
|
||||||
|
|
||||||
mouse_left_click = "do_action, close_curent";
|
|
||||||
mouse_right_click = "close_all";
|
|
||||||
};
|
|
||||||
urgency_low = {
|
|
||||||
background = color 0;
|
|
||||||
foreground = color 15;
|
|
||||||
timeout = 10;
|
|
||||||
};
|
|
||||||
urgency_normal = {
|
|
||||||
background = color 0;
|
|
||||||
foreground = color 15;
|
|
||||||
timeout = 10;
|
|
||||||
};
|
|
||||||
urgency_critical = {
|
|
||||||
background = color 0;
|
|
||||||
foreground = color 15;
|
|
||||||
frame_color = color 3;
|
|
||||||
|
|
||||||
fullscreen = "show";
|
|
||||||
timeout = 0;
|
|
||||||
};
|
|
||||||
# Horrible hack to fix alphabetical sorting overriding this
|
|
||||||
x-calendar = {
|
|
||||||
summary = " Calendar";
|
|
||||||
alignment = "center";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,109 +0,0 @@
|
||||||
{
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
xdg.configFile."Element/config.json".text = ''
|
|
||||||
{
|
|
||||||
"setting_defaults": {
|
|
||||||
"custom_themes": [
|
|
||||||
{
|
|
||||||
"name": "Sapphic Lavender",
|
|
||||||
"is_dark": true,
|
|
||||||
"fonts": {
|
|
||||||
"general": "Allust, Twemoji, Twitter Color Emoji, sans",
|
|
||||||
"monospace": "'Iosevka Medium Extended', 'Fira Code'"
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"accent": "#D2ADC6",
|
|
||||||
"accent-color": "#D2ADC6",
|
|
||||||
"primary-color": "#D2ADC6",
|
|
||||||
"warning-color": "#BF80A6",
|
|
||||||
"alert": "#BF80A6",
|
|
||||||
"sidebar-color": "#231724",
|
|
||||||
"primary-content": "#180F19",
|
|
||||||
"secondary-content": "#E5D9E6",
|
|
||||||
"tertiary-content": "#D2ADC6",
|
|
||||||
"quaternary-content": "#E5D9E6",
|
|
||||||
"quinary-content": "#251926",
|
|
||||||
"system": "#180F19",
|
|
||||||
"background": "#00f",
|
|
||||||
"roomlist-background-color": "#231724",
|
|
||||||
"roomlist-text-color": "#E5D9E6",
|
|
||||||
"roomlist-text-secondary-color": "#ffd1dc",
|
|
||||||
"roomlist-highlights-color": "#180F19",
|
|
||||||
"roomlist-separator-color": "#180F19",
|
|
||||||
"timeline-background-color": "#180F19",
|
|
||||||
"timeline-text-color": "#E5D9E6",
|
|
||||||
"timeline-text-secondary-color": "#D2ADC6",
|
|
||||||
"timeline-highlights-color": "#231724",
|
|
||||||
"eventbubble-self-bg": "#231724",
|
|
||||||
"eventbubble-others-bg": "#231724",
|
|
||||||
"eventbubble-bg-hover": "#231724",
|
|
||||||
"eventbubble-reply-color": "#231724",
|
|
||||||
"username-colors": [
|
|
||||||
"#D8BFD8",
|
|
||||||
"#ffd1dc",
|
|
||||||
"#DDA0DD",
|
|
||||||
"#DA70D6",
|
|
||||||
"#BA55D3",
|
|
||||||
"#9932CC",
|
|
||||||
"#800060",
|
|
||||||
"#8B008B"
|
|
||||||
],
|
|
||||||
"avatar-background-colors": ["#896bad", "#b09cc8", "#bdacd1"],
|
|
||||||
"reaction-row-button-selected-bg-color": "#bd93f9"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Transgender Vampirism",
|
|
||||||
"is_dark": true,
|
|
||||||
"fonts": {
|
|
||||||
"general": "Crimson, Noto Color Emoji, Twemoji, Twitter Color Emoji, sans",
|
|
||||||
"monospace": "'Iosevka Gothic', 'Fira Code'"
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"accent": "#747E9D",
|
|
||||||
"accent-color": "#747E9D",
|
|
||||||
"primary-color": "#747E9D",
|
|
||||||
"warning-color": "#110E18",
|
|
||||||
"sidebar-color": "#16121F",
|
|
||||||
"primary-content": "#110E18",
|
|
||||||
"secondary-content": "#D5D6E8",
|
|
||||||
"tertiary-content": "#747E9D",
|
|
||||||
"quaternary-content": "#D5D6E8",
|
|
||||||
"quinary-content": "#16121F",
|
|
||||||
"system": "#16121F",
|
|
||||||
"background": "#00f",
|
|
||||||
"roomlist-background-color": "#16121F",
|
|
||||||
"roomlist-text-color": "#D5D6E8",
|
|
||||||
"roomlist-text-secondary-color": "#747E9D",
|
|
||||||
"roomlist-highlights-color": "#110E18",
|
|
||||||
"roomlist-separator-color": "#110E18",
|
|
||||||
"timeline-background-color": "#110E18",
|
|
||||||
"timeline-text-color": "#D5D6E8",
|
|
||||||
"timeline-text-secondary-color": "#747E9D",
|
|
||||||
"timeline-highlights-color": "#16121F",
|
|
||||||
"eventbubble-self-bg": "#16121F",
|
|
||||||
"eventbubble-others-bg": "#16121F",
|
|
||||||
"eventbubble-bg-hover": "#16121F",
|
|
||||||
"eventbubble-reply-color": "#16121F",
|
|
||||||
"username-colors": [
|
|
||||||
"#D8BFD8",
|
|
||||||
"#AA9AB6",
|
|
||||||
"#DDA0DD",
|
|
||||||
"#DA70D6",
|
|
||||||
"#7A5286",
|
|
||||||
"#9932CC",
|
|
||||||
"#800060",
|
|
||||||
"#8B008B"
|
|
||||||
],
|
|
||||||
"avatar-background-colors": ["#896bad", "#b09cc8", "#bdacd1"],
|
|
||||||
"reaction-row-button-selected-bg-color": "#bd93f9"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"show_labs_settings": true,
|
|
||||||
"features": ["feature_latex_maths"]
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,81 +0,0 @@
|
||||||
{ pkgs, config, ... }:
|
|
||||||
let
|
|
||||||
color = n:
|
|
||||||
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
|
|
||||||
n}";
|
|
||||||
in {
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
home.sessionVariables.TERMINAL = "kitty";
|
|
||||||
|
|
||||||
programs.kitty = {
|
|
||||||
enable = true;
|
|
||||||
font = {
|
|
||||||
package = pkgs.iosevka;
|
|
||||||
name = "Iosevka Gothic";
|
|
||||||
size = 11.5;
|
|
||||||
};
|
|
||||||
|
|
||||||
keybindings = { "f5" = "load_config_file"; };
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
disable_ligatures = "never";
|
|
||||||
|
|
||||||
draw_minimal_borders = false;
|
|
||||||
active_tab_font_style = "italic";
|
|
||||||
inactive_tab_font_style = "normal";
|
|
||||||
|
|
||||||
scrollback_lines = -10000;
|
|
||||||
url_style = "single";
|
|
||||||
|
|
||||||
strip_trailing_spaces = "smart";
|
|
||||||
enable_audio_bell = false;
|
|
||||||
|
|
||||||
window_margin_width = 10;
|
|
||||||
window_padding_width = 10;
|
|
||||||
inactive_text_alpha = "0.8";
|
|
||||||
enabled_layouts = "vertical, grid, stack";
|
|
||||||
|
|
||||||
tab_bar_edge = "top";
|
|
||||||
tab_bar_style = "fade";
|
|
||||||
tab_bar_margin_width = 5;
|
|
||||||
tab_separator = "•";
|
|
||||||
tab_title_template = "☾ {index}";
|
|
||||||
|
|
||||||
foreground = color 15;
|
|
||||||
background = color 0;
|
|
||||||
cursor = color 15;
|
|
||||||
|
|
||||||
color0 = color 0;
|
|
||||||
color8 = color 8;
|
|
||||||
color1 = color 1;
|
|
||||||
color9 = color 9;
|
|
||||||
color2 = color 2;
|
|
||||||
color10 = color 10;
|
|
||||||
color3 = color 3;
|
|
||||||
color11 = color 11;
|
|
||||||
color4 = color 4;
|
|
||||||
color12 = color 12;
|
|
||||||
color5 = color 5;
|
|
||||||
color13 = color 13;
|
|
||||||
color6 = color 6;
|
|
||||||
color14 = color 14;
|
|
||||||
color7 = color 7;
|
|
||||||
color15 = color 15;
|
|
||||||
|
|
||||||
selection_foreground = color 1;
|
|
||||||
selection_background = color 15;
|
|
||||||
|
|
||||||
url_color = color 1;
|
|
||||||
|
|
||||||
active_border_color = color 1;
|
|
||||||
inactive_border_color = color 2;
|
|
||||||
bell_border_color = color 6;
|
|
||||||
|
|
||||||
active_tab_foreground = color 15;
|
|
||||||
active_tab_background = color 1;
|
|
||||||
inactive_tab_foreground = color 8;
|
|
||||||
inactive_tab_background = color 2;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ config, pkgs, ... }: {
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
# Lockscreen
|
|
||||||
services.betterlockscreen = {
|
|
||||||
enable = true;
|
|
||||||
arguments = [ "dimblur" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Update lockscreen wallpaper after locking
|
|
||||||
home.file.".config/betterlockscreen/custom-post.sh".text =
|
|
||||||
"betterlockscreen -u ${
|
|
||||||
config.environment.graphical.colorschemes."${config.environment.graphical.theme.name}".image
|
|
||||||
}";
|
|
||||||
|
|
||||||
home.file.".config/betterlockscreen/custom-post.sh".executable = true;
|
|
||||||
|
|
||||||
# Send a notification 10 seconds before locking
|
|
||||||
services.screen-locker.xautolock.extraOptions = [
|
|
||||||
"-notify 10"
|
|
||||||
"-notifier '${pkgs.dunst}/bin/dunstify -t 10000 -u 2 \"Screen will lock in 10 seconds\"'"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{ pkgs, ... }: {
|
|
||||||
systemd.user.services.protonmail-bridge = {
|
|
||||||
description = "Protonmail Bridge";
|
|
||||||
enable = true;
|
|
||||||
script =
|
|
||||||
"${pkgs.protonmail-bridge}/bin/protonmail-bridge --noninteractive --log-level info";
|
|
||||||
|
|
||||||
path = [ pkgs.gnome3.gnome-keyring ];
|
|
||||||
wantedBy = [ "graphical-session.target" ];
|
|
||||||
partOf = [ "graphical-session.target" ];
|
|
||||||
};
|
|
||||||
users.users.agatha.packages = [ pkgs.protonmail-bridge-gui ];
|
|
||||||
}
|
|
|
@ -1,96 +0,0 @@
|
||||||
{ pkgs, ... }: {
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
services.picom = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.picom-next;
|
|
||||||
|
|
||||||
# General
|
|
||||||
backend = "glx";
|
|
||||||
vSync = true;
|
|
||||||
settings = {
|
|
||||||
mark-wmwin-focused = true;
|
|
||||||
detect = {
|
|
||||||
rounded-corners = true;
|
|
||||||
client-opacity = true;
|
|
||||||
transient = true;
|
|
||||||
client-leader = true;
|
|
||||||
};
|
|
||||||
use-damage = true;
|
|
||||||
|
|
||||||
wintypes = {
|
|
||||||
tooltip = {
|
|
||||||
fade = true;
|
|
||||||
shadow = true;
|
|
||||||
opacity = 0.75;
|
|
||||||
focus = true;
|
|
||||||
full-shadow = false;
|
|
||||||
};
|
|
||||||
dock = { shadow = false; };
|
|
||||||
dnd = { shadow = false; };
|
|
||||||
popup_menu = { opacity = 0.8; };
|
|
||||||
dropdown_menu = { opacity = 0.8; };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Shadows
|
|
||||||
shadow = true;
|
|
||||||
shadowOpacity = 1.0;
|
|
||||||
shadowOffsets = [ (-7) (-7) ];
|
|
||||||
shadowExclude = [
|
|
||||||
"name = 'Notification'"
|
|
||||||
"class_g ?= 'Notify-osd'"
|
|
||||||
"class_g = 'Cairo-clock'"
|
|
||||||
"class_g = 'firefox-nightly' && argb"
|
|
||||||
"class_g = 'firefox' && argb"
|
|
||||||
"_GTK_FRAME_EXTENTS@:c"
|
|
||||||
"_NET_FRAME_EXTENTS@:c && WM_WINDOW_ROLE@:s = 'Popup'"
|
|
||||||
"override_redirect = true"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Fade
|
|
||||||
fade = true;
|
|
||||||
fadeSteps = [ 5.0e-2 5.0e-2 ];
|
|
||||||
|
|
||||||
# Opacity
|
|
||||||
settings.frame-opacity = 0.7;
|
|
||||||
settings.inactive-opacity-override = false;
|
|
||||||
settings.inactive-dim = 0.2;
|
|
||||||
settings.focus-exclude = [
|
|
||||||
"class_g = 'firefox-nightly'"
|
|
||||||
"class_g = 'firefox'"
|
|
||||||
"class_g = 'Dunst'"
|
|
||||||
];
|
|
||||||
opacityRules = [
|
|
||||||
"100:_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
|
||||||
"100:_NET_WM_STATE@[1]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
|
||||||
"100:_NET_WM_STATE@[2]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
|
||||||
"100:_NET_WM_STATE@[3]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
|
||||||
"100:_NET_WM_STATE@[4]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
|
||||||
"0:_COMPTON_MONOCLE@:32c = 0"
|
|
||||||
"70:class_g = 'kitty'"
|
|
||||||
"80:class_g = 'Dunst'"
|
|
||||||
"20:class_g = 'Bspwm' && class_i = 'presel_feedback'"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Blur
|
|
||||||
settings.blur = {
|
|
||||||
method = "dual_kawase";
|
|
||||||
strength = 3;
|
|
||||||
background = true;
|
|
||||||
kern = "3x3box";
|
|
||||||
background-exclude = [
|
|
||||||
"window_type = 'dock'"
|
|
||||||
"window_type = 'desktop'"
|
|
||||||
"window_type = 'dropdown_menu'"
|
|
||||||
"window_type = 'popup_menu'"
|
|
||||||
"window_type = 'tooltip'"
|
|
||||||
"_GTK_FRAME_EXTENTS@:c"
|
|
||||||
"_NET_FRAME_EXTENTS@:c && WM_WINDOW_ROLE@:s = 'Popup'"
|
|
||||||
"class_g = 'firefox-nightly' && argb"
|
|
||||||
"class_g = 'firefox' && argb"
|
|
||||||
"override_redirect = true"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,340 +0,0 @@
|
||||||
{ lib, pkgs, config, ... }: {
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
|
|
||||||
systemd.user.services.polybar = {
|
|
||||||
Service = {
|
|
||||||
Environment = lib.mkForce (lib.concatStringsSep ":" [
|
|
||||||
"PATH=${config.home-manager.users.agatha.services.polybar.package}/bin"
|
|
||||||
"/run/wrappers/bin"
|
|
||||||
"${pkgs.dbus}/bin"
|
|
||||||
"${pkgs.dunst}/bin"
|
|
||||||
"${pkgs.systemd}/bin"
|
|
||||||
"${pkgs.util-linux}/bin"
|
|
||||||
"${pkgs.gnused}/bin"
|
|
||||||
"${pkgs.kitty}/bin"
|
|
||||||
]);
|
|
||||||
};
|
|
||||||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."polybar/config.ini".onChange =
|
|
||||||
"${pkgs.systemd}/bin/systemctl --user restart polybar.service";
|
|
||||||
|
|
||||||
services.polybar = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.polybarFull;
|
|
||||||
|
|
||||||
settings = let
|
|
||||||
color = n:
|
|
||||||
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
|
|
||||||
n}";
|
|
||||||
in {
|
|
||||||
"colors" = {
|
|
||||||
background = color 0;
|
|
||||||
foreground = color 7;
|
|
||||||
foreground-alt = color 7;
|
|
||||||
primary = color 1;
|
|
||||||
secondary = color 2;
|
|
||||||
alert = color 3;
|
|
||||||
red = color 4;
|
|
||||||
};
|
|
||||||
|
|
||||||
"bar/left" = {
|
|
||||||
width = "100%:-30";
|
|
||||||
height = 30;
|
|
||||||
offset-x = 15;
|
|
||||||
offset-y = 12;
|
|
||||||
radius = 0;
|
|
||||||
fixed-center = true;
|
|
||||||
|
|
||||||
background = "\${colors.background}";
|
|
||||||
foreground = "\${colors.foreground}";
|
|
||||||
|
|
||||||
line = {
|
|
||||||
size = 0;
|
|
||||||
color = color 3;
|
|
||||||
};
|
|
||||||
border = {
|
|
||||||
size = 3;
|
|
||||||
color = color 1;
|
|
||||||
};
|
|
||||||
padding = {
|
|
||||||
left = 2;
|
|
||||||
right = 2;
|
|
||||||
};
|
|
||||||
module.margin = {
|
|
||||||
left = 1;
|
|
||||||
right = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
font = {
|
|
||||||
"0" = "Iosevka Gothic:pixelsize=10;3";
|
|
||||||
"1" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;2";
|
|
||||||
"2" = "Siji:pixelsize=11;2";
|
|
||||||
"3" = "Symbols Nerd Font:pixelsize=10;2";
|
|
||||||
"4" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;1";
|
|
||||||
};
|
|
||||||
|
|
||||||
modules = {
|
|
||||||
left = "bspwm";
|
|
||||||
center = "date";
|
|
||||||
right = "mpris wireguard notification-status";
|
|
||||||
};
|
|
||||||
|
|
||||||
wm-restack = "bspwm";
|
|
||||||
cursor-click = "pointer";
|
|
||||||
locale = "de_DE.UTF-8";
|
|
||||||
};
|
|
||||||
|
|
||||||
"bar/right" = {
|
|
||||||
width = "100%:-30";
|
|
||||||
height = 30;
|
|
||||||
offset-x = 15;
|
|
||||||
offset-y = 12;
|
|
||||||
radius = 0;
|
|
||||||
fixed-center = true;
|
|
||||||
|
|
||||||
background = "\${colors.background}";
|
|
||||||
foreground = "\${colors.foreground}";
|
|
||||||
|
|
||||||
line = {
|
|
||||||
size = 0;
|
|
||||||
color = color 3;
|
|
||||||
};
|
|
||||||
border = {
|
|
||||||
size = 3;
|
|
||||||
color = color 1;
|
|
||||||
};
|
|
||||||
padding = {
|
|
||||||
left = 2;
|
|
||||||
right = 2;
|
|
||||||
};
|
|
||||||
module.margin = {
|
|
||||||
left = 1;
|
|
||||||
right = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
font = {
|
|
||||||
"0" = "Iosevka Gothic:pixelsize=10;3";
|
|
||||||
"1" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;2";
|
|
||||||
"2" = "Siji:pixelsize=11;2";
|
|
||||||
"3" = "Symbols Nerd Font:pixelsize=10;2";
|
|
||||||
"4" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;1";
|
|
||||||
};
|
|
||||||
|
|
||||||
modules = {
|
|
||||||
left = "bspwm";
|
|
||||||
center = "date";
|
|
||||||
right = lib.mkDefault
|
|
||||||
"filesystem battery pulseaudio xkeyboard memory cpu notification-status powermenu";
|
|
||||||
};
|
|
||||||
|
|
||||||
wm-restack = "bspwm";
|
|
||||||
cursor-click = "pointer";
|
|
||||||
locale = "de_DE.UTF-8";
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/xkeyboard" = {
|
|
||||||
type = "internal/xkeyboard";
|
|
||||||
blacklist-0 = "num lock";
|
|
||||||
|
|
||||||
format-prefix = " ";
|
|
||||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
|
||||||
|
|
||||||
label = {
|
|
||||||
layout = "%layout%";
|
|
||||||
|
|
||||||
indicator = {
|
|
||||||
padding = 2;
|
|
||||||
margin = 1;
|
|
||||||
background = "\${colors.secondary}";
|
|
||||||
underline = "\${colors.secondary}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/bspwm" = {
|
|
||||||
type = "internal/bspwm";
|
|
||||||
|
|
||||||
label = {
|
|
||||||
focused = "%name%";
|
|
||||||
focused-foreground = "\${colors.primary}";
|
|
||||||
focused-padding = 1;
|
|
||||||
|
|
||||||
occupied = "%name%";
|
|
||||||
occupied-padding = 1;
|
|
||||||
|
|
||||||
urgent = "%name%!";
|
|
||||||
urgent-background = "\${xrdb:color1:#222}";
|
|
||||||
urgent-padding = 1;
|
|
||||||
|
|
||||||
empty = "%name%";
|
|
||||||
empty-foreground = "\${colors.foreground-alt}";
|
|
||||||
empty-padding = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/date" = {
|
|
||||||
type = "internal/date";
|
|
||||||
interval = 5;
|
|
||||||
|
|
||||||
date = "";
|
|
||||||
date-alt = " %a, %d %b %Y";
|
|
||||||
|
|
||||||
time = "%H:%M";
|
|
||||||
time-alt = "%H:%M:%S";
|
|
||||||
|
|
||||||
format-prefix = "";
|
|
||||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
|
||||||
|
|
||||||
label = ''
|
|
||||||
%{A3:${pkgs.dunst}/bin/dunstify ' Calendar' "$(${pkgs.util-linux}/bin/cal --color=always | ${pkgs.sd}/bin/sd '\\x1b\[7m' '<b>' | ${pkgs.sd}/bin/sd '\\x1b\[0m' '</b>')":}%date%%{A} %time%
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/filesystem" = {
|
|
||||||
type = "internal/fs";
|
|
||||||
interval = 25;
|
|
||||||
|
|
||||||
mount-0 = "/";
|
|
||||||
|
|
||||||
label-mounted = "%mountpoint%: %percentage_used%%";
|
|
||||||
label-unmounted = "%mountpoint% not mounted";
|
|
||||||
label-unmounted-foreground = "\${colors.foreground-alt}";
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/cpu" = {
|
|
||||||
type = "internal/cpu";
|
|
||||||
interval = 2;
|
|
||||||
format-prefix = " ";
|
|
||||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
|
||||||
label = "%{A1:kitty btop:}%percentage:2%%%{A}";
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/memory" = {
|
|
||||||
type = "internal/memory";
|
|
||||||
interval = 2;
|
|
||||||
format-prefix = " ";
|
|
||||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
|
||||||
label = "%{A1:kitty btop:}%percentage_used%%%{A}";
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/pulseaudio" = {
|
|
||||||
type = "internal/pulseaudio";
|
|
||||||
|
|
||||||
format-volume = "%{A3:pavucontrol:}<label-volume> <bar-volume>%{A}";
|
|
||||||
label-volume = " %percentage%%";
|
|
||||||
label-volume-foreground = "\${root.foreground}";
|
|
||||||
|
|
||||||
label-muted = " muted";
|
|
||||||
label-muted-foreground = "\${colors.primary}";
|
|
||||||
|
|
||||||
bar.volume = {
|
|
||||||
width = 14;
|
|
||||||
foreground-0 = "\${colors.secondary}";
|
|
||||||
foreground-1 = "\${colors.secondary}";
|
|
||||||
foreground-2 = "\${colors.primary}";
|
|
||||||
foreground-3 = "\${colors.primary}";
|
|
||||||
foreground-4 = "\${colors.primary}";
|
|
||||||
foreground-5 = "\${colors.alert}";
|
|
||||||
foreground-6 = "\${colors.red}";
|
|
||||||
gradient = false;
|
|
||||||
indicator = "|";
|
|
||||||
indicator-font = 5;
|
|
||||||
fill = "─";
|
|
||||||
fill-font = 2;
|
|
||||||
empty = "─";
|
|
||||||
empty-font = 2;
|
|
||||||
empty-foreground = "\${colors.foreground-alt}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/powermenu" = {
|
|
||||||
type = "custom/menu";
|
|
||||||
|
|
||||||
expand-right = true;
|
|
||||||
format-spacing = 1;
|
|
||||||
|
|
||||||
label = {
|
|
||||||
open = "";
|
|
||||||
open-foreground = "\${colors.secondary}";
|
|
||||||
close = " cancel";
|
|
||||||
close-foreground = "\${colors.secondary}";
|
|
||||||
separator = "|";
|
|
||||||
separator-foreground = "\${colors.foreground-alt}";
|
|
||||||
};
|
|
||||||
|
|
||||||
menu = {
|
|
||||||
"0-0" = "reboot";
|
|
||||||
"0-0-exec" = "${pkgs.systemd}/bin/reboot";
|
|
||||||
"0-1" = "power off";
|
|
||||||
"0-1-exec" = "${pkgs.systemd}/bin/shutdown now";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/battery" = {
|
|
||||||
type = "internal/battery";
|
|
||||||
full-at = 99;
|
|
||||||
low-at = 10;
|
|
||||||
battery = "BAT0";
|
|
||||||
adapter = "AC";
|
|
||||||
poll-interval = 3;
|
|
||||||
|
|
||||||
content-font = 3;
|
|
||||||
|
|
||||||
format-charging = "<animation-charging> <label-charging>";
|
|
||||||
format-discharging = "<ramp-capacity> <label-discharging>";
|
|
||||||
label = {
|
|
||||||
charging = "%percentage_raw%%";
|
|
||||||
discharging = "%percentage_raw%%";
|
|
||||||
full = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
ramp = {
|
|
||||||
capacity-0 = "";
|
|
||||||
capacity-1 = "";
|
|
||||||
capacity-2 = "";
|
|
||||||
capacity-3 = "";
|
|
||||||
capacity-4 = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
animation = {
|
|
||||||
charging-0 = "";
|
|
||||||
charging-1 = "";
|
|
||||||
charging-2 = "";
|
|
||||||
charging-3 = "";
|
|
||||||
charging-4 = "";
|
|
||||||
|
|
||||||
charging-framerate = 750;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/notification-status" = {
|
|
||||||
type = "custom/script";
|
|
||||||
exec = ''
|
|
||||||
if $(dunstctl is-paused); then echo "Notifications paused"; else echo ""; fi'';
|
|
||||||
interval = 2;
|
|
||||||
format-prefix = " ";
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/wireguard" = {
|
|
||||||
type = "custom/script";
|
|
||||||
exec = ''
|
|
||||||
${pkgs.networkmanager}/bin/nmcli conn show --active | ${pkgs.ripgrep}/bin/rg -q wireguard && echo "VPN Connected" || echo ""'';
|
|
||||||
click-left = "kitty nmtui";
|
|
||||||
interval = 5;
|
|
||||||
format-prefix = " ";
|
|
||||||
};
|
|
||||||
|
|
||||||
"module/mpris" = {
|
|
||||||
type = "custom/script";
|
|
||||||
tail = true;
|
|
||||||
exec =
|
|
||||||
"${pkgs.polybar-scripts}/bin/player-mpris-tail/player-mpris-tail.py -f ' {artist}: {:t64:{title}:}' -w mpv -w cider";
|
|
||||||
click-left =
|
|
||||||
"${pkgs.playerctl}/bin/playerctl --player=cider play-pause";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
{ lib, pkgs, config, ... }:
|
|
||||||
let
|
|
||||||
color = n:
|
|
||||||
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
|
|
||||||
n}";
|
|
||||||
in {
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
programs.rofi = {
|
|
||||||
enable = true;
|
|
||||||
font = "DaddyTimeMono Nerd Font 10";
|
|
||||||
terminal = "${pkgs.kitty}/bin/kitty";
|
|
||||||
|
|
||||||
theme = let
|
|
||||||
inherit (config.home-manager.users.agatha.lib.formats.rasi) mkLiteral;
|
|
||||||
in {
|
|
||||||
"*" = {
|
|
||||||
background = mkLiteral (color 0);
|
|
||||||
foreground = mkLiteral (color 15);
|
|
||||||
|
|
||||||
active-background = mkLiteral (color 2);
|
|
||||||
active-foreground = mkLiteral "@foreground";
|
|
||||||
alternate-active-background = mkLiteral "@background";
|
|
||||||
alternate-active-foreground = mkLiteral "@foreground";
|
|
||||||
alternate-normal-background = mkLiteral "@background";
|
|
||||||
alternate-normal-foreground = mkLiteral "@foreground";
|
|
||||||
alternate-urgent-background = mkLiteral "@background";
|
|
||||||
alternate-urgent-foreground = mkLiteral "@foreground";
|
|
||||||
background-color = mkLiteral "@background";
|
|
||||||
border-color = mkLiteral "@background";
|
|
||||||
border-radius = mkLiteral "0px";
|
|
||||||
lightfg = mkLiteral "#333b5c";
|
|
||||||
normal-background = mkLiteral "@background";
|
|
||||||
normal-foreground = mkLiteral "@foreground";
|
|
||||||
selected-active-background = mkLiteral (color 1);
|
|
||||||
selected-active-foreground = mkLiteral "@foreground";
|
|
||||||
selected-normal-background = mkLiteral (color 2);
|
|
||||||
selected-normal-foreground = mkLiteral "@foreground";
|
|
||||||
selected-urgent-background = mkLiteral (color 3);
|
|
||||||
selected-urgent-foreground = mkLiteral "@foreground";
|
|
||||||
separatorcolor = mkLiteral "@foreground";
|
|
||||||
urgent-background = mkLiteral (color 1);
|
|
||||||
urgent-foreground = mkLiteral "@foreground";
|
|
||||||
|
|
||||||
spacing = 4;
|
|
||||||
};
|
|
||||||
|
|
||||||
"#window" = {
|
|
||||||
background-color = mkLiteral "var(background)";
|
|
||||||
border-color = mkLiteral "var(urgent-background)";
|
|
||||||
|
|
||||||
width = mkLiteral "30em";
|
|
||||||
padding = 5;
|
|
||||||
border = 3;
|
|
||||||
};
|
|
||||||
|
|
||||||
"#message" = {
|
|
||||||
border-color = mkLiteral "@border-color";
|
|
||||||
padding = mkLiteral "1px";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#textbox" = { text-color = mkLiteral "@foreground"; };
|
|
||||||
|
|
||||||
"#textbox-prompt-colon" = {
|
|
||||||
text-color = mkLiteral "@normal-foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#listview" = {
|
|
||||||
border-color = mkLiteral "@border-color";
|
|
||||||
padding = mkLiteral "2px 0px 0px";
|
|
||||||
scrollbar = true;
|
|
||||||
spacing = mkLiteral "2px";
|
|
||||||
fixed-height = 0;
|
|
||||||
lines = 10;
|
|
||||||
};
|
|
||||||
|
|
||||||
"element" = {
|
|
||||||
padding = mkLiteral "5px";
|
|
||||||
cursor = mkLiteral "pointer";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#element-text, element-icon" = {
|
|
||||||
background-color = mkLiteral "transparent";
|
|
||||||
text-color = mkLiteral "inherit";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#element.normal.normal" = {
|
|
||||||
background-color = mkLiteral "@normal-background";
|
|
||||||
text-color = mkLiteral "@normal-foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#element.normal.urgent" = {
|
|
||||||
background-color = mkLiteral "@urgent-background";
|
|
||||||
text-color = mkLiteral "@urgent-foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#element.normal.active" = {
|
|
||||||
background-color = mkLiteral "@active-background";
|
|
||||||
text-color = mkLiteral "@active-foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#element.selected.normal" = {
|
|
||||||
background-color = mkLiteral "@selected-normal-background";
|
|
||||||
text-color = mkLiteral "@selected-normal-foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#element.selected.urgent" = {
|
|
||||||
background-color = mkLiteral "@selected-urgent-background";
|
|
||||||
text-color = mkLiteral "@selected-urgent-foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#element.selected.active" = {
|
|
||||||
background-color = mkLiteral "@selected-active-background";
|
|
||||||
text-color = mkLiteral "@selected-active-foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#element.alternate.normal" = {
|
|
||||||
background-color = mkLiteral "@alternate-normal-background";
|
|
||||||
text-color = mkLiteral "@alternate-normal-foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#element.alternate.urgent" = {
|
|
||||||
background-color = mkLiteral "@alternate-urgent-background";
|
|
||||||
text-color = mkLiteral "@alternate-urgent-foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#element.alternate.active" = {
|
|
||||||
background-color = mkLiteral "@alternate-active-background";
|
|
||||||
text-color = mkLiteral "@alternate-active-foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#sidebar" = { border-color = mkLiteral "@border-color"; };
|
|
||||||
|
|
||||||
"#button" = { text-color = mkLiteral "@normal-foreground"; };
|
|
||||||
|
|
||||||
"#button.selected" = {
|
|
||||||
background-color = mkLiteral "@selected-normal-background";
|
|
||||||
text-color = mkLiteral "@selected-normal-foreground";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#inputbar" = {
|
|
||||||
text-color = mkLiteral "@normal-foreground";
|
|
||||||
padding = mkLiteral "1px";
|
|
||||||
spacing = mkLiteral "0px";
|
|
||||||
children = mkLiteral
|
|
||||||
"[ prompt,textbox-prompt-colon,entry,num-filtered-rows,textbox-num-sep,num-rows,case-indicator ]";
|
|
||||||
};
|
|
||||||
|
|
||||||
"#case-indicator" = { text-color = mkLiteral "@normal-foreground"; };
|
|
||||||
|
|
||||||
"#entry" = { text-color = mkLiteral "@normal-foreground"; };
|
|
||||||
|
|
||||||
"#prompt" = { text-color = mkLiteral "@normal-foreground"; };
|
|
||||||
|
|
||||||
"num-filtered-rows" = {
|
|
||||||
expand = false;
|
|
||||||
text-color = mkLiteral (color 8);
|
|
||||||
};
|
|
||||||
|
|
||||||
"num-rows" = {
|
|
||||||
expand = false;
|
|
||||||
text-color = mkLiteral (color 8);
|
|
||||||
};
|
|
||||||
|
|
||||||
"textbox-num-sep" = {
|
|
||||||
expand = false;
|
|
||||||
str = "/";
|
|
||||||
text-color = mkLiteral (color 8);
|
|
||||||
};
|
|
||||||
|
|
||||||
"textbox-prompt-colon" = {
|
|
||||||
margin = mkLiteral "0 0.3em 0 0";
|
|
||||||
expand = false;
|
|
||||||
str = ":";
|
|
||||||
};
|
|
||||||
|
|
||||||
"entry" = {
|
|
||||||
text-color = mkLiteral "var(normal-foreground)";
|
|
||||||
cursor = mkLiteral "text";
|
|
||||||
spacing = 0;
|
|
||||||
placeholder-color = mkLiteral (color 8);
|
|
||||||
placeholder = "Type to filter";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,103 +0,0 @@
|
||||||
{ pkgs, config, ... }: {
|
|
||||||
|
|
||||||
# User packages
|
|
||||||
users.users.agatha.packages = with pkgs; [ grim rofi-wayland waybar ydotool ];
|
|
||||||
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
wayland.windowManager.sway = let
|
|
||||||
cfg = config.home-manager.users.agatha.wayland.windowManager.sway.config;
|
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
config = {
|
|
||||||
up = "i";
|
|
||||||
left = "j";
|
|
||||||
down = "k";
|
|
||||||
right = "l";
|
|
||||||
|
|
||||||
modifier = "Mod4";
|
|
||||||
terminal = "kitty";
|
|
||||||
|
|
||||||
fonts = {
|
|
||||||
names = [ "Font Awesome 5 Free" "Iosevka Gothic" ];
|
|
||||||
size = 11.0;
|
|
||||||
};
|
|
||||||
|
|
||||||
workspaceAutoBackAndForth = true;
|
|
||||||
window = {
|
|
||||||
titlebar = true;
|
|
||||||
hideEdgeBorders = "both";
|
|
||||||
border = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
gaps.inner = 15;
|
|
||||||
|
|
||||||
output."*" = { bg = "/home/agatha/Pictures/wallpaper.png fill"; };
|
|
||||||
|
|
||||||
input."type:keyboard" = {
|
|
||||||
xkb_layout = config.services.xserver.layout;
|
|
||||||
xkb_options = config.services.xserver.xkbOptions;
|
|
||||||
};
|
|
||||||
|
|
||||||
input."type:touchpad" = { tap = "enabled"; };
|
|
||||||
|
|
||||||
keybindings = let mod = cfg.modifier;
|
|
||||||
in {
|
|
||||||
"${mod}+Return" = "exec ${cfg.terminal}";
|
|
||||||
"Caps_Lock" = "exec ${cfg.terminal}";
|
|
||||||
"${mod}+e" = "exec nautilus";
|
|
||||||
"${mod}+space" = "exec rofi -show drun";
|
|
||||||
"${mod}+shift+e" = "exec rofimoji --action clipboard";
|
|
||||||
"${mod}+c" = ''
|
|
||||||
exec rofi -show calc -modi calc -calc-command 'xdotool type --clearmodifiers "\{result\}"'
|
|
||||||
'';
|
|
||||||
XF86AudioRaiseVolume = "exec pamixer -i 5";
|
|
||||||
XF86AudioLowerVolume = "exec pamixer -d 5";
|
|
||||||
XF86AudioMute = "exec pamixer -t";
|
|
||||||
XF86AudioPrev = "exec playerctl previous";
|
|
||||||
XF86AudioNext = "exec playerctl next";
|
|
||||||
XF86AudioPlay = "exec playerctl play-pause";
|
|
||||||
Print = "exec flameshot gui";
|
|
||||||
"shift+Print" = "exec flameshot gui -d 3000";
|
|
||||||
"${mod}+n" = "exec dunstctl set-paused toggle";
|
|
||||||
# "${mod}+o" = "TODO: port audio switcher";
|
|
||||||
"${mod}+shift+r" =
|
|
||||||
"reload; exec 'for p in waybar dunst; do; killall $p; done'";
|
|
||||||
"${mod}+w" = "kill";
|
|
||||||
"${mod}+m" = "layout tabbed";
|
|
||||||
"${mod}+t" = "layout toggle split";
|
|
||||||
"${mod}+s" = "floating toggle";
|
|
||||||
"${mod}+f" = "fullscreen toggle";
|
|
||||||
|
|
||||||
"alt+Tab" = "exec rofi -show window";
|
|
||||||
|
|
||||||
# "${mod}+x" = "TODO: lockscreen";
|
|
||||||
|
|
||||||
"${mod}+Shift+${cfg.left}" = "move left";
|
|
||||||
"${mod}+Shift+${cfg.down}" = "move down";
|
|
||||||
"${mod}+Shift+${cfg.up}" = "move up";
|
|
||||||
"${mod}+Shift+${cfg.right}" = "move right";
|
|
||||||
|
|
||||||
"${mod}+1" = "workspace number 1";
|
|
||||||
"${mod}+2" = "workspace number 2";
|
|
||||||
"${mod}+3" = "workspace number 3";
|
|
||||||
"${mod}+4" = "workspace number 4";
|
|
||||||
"${mod}+5" = "workspace number 5";
|
|
||||||
"${mod}+6" = "workspace number 6";
|
|
||||||
"${mod}+7" = "workspace number 7";
|
|
||||||
"${mod}+8" = "workspace number 8";
|
|
||||||
"${mod}+9" = "workspace number 9";
|
|
||||||
|
|
||||||
"${mod}+Shift+1" = "move container to workspace number 1";
|
|
||||||
"${mod}+Shift+2" = "move container to workspace number 2";
|
|
||||||
"${mod}+Shift+3" = "move container to workspace number 3";
|
|
||||||
"${mod}+Shift+4" = "move container to workspace number 4";
|
|
||||||
"${mod}+Shift+5" = "move container to workspace number 5";
|
|
||||||
"${mod}+Shift+6" = "move container to workspace number 6";
|
|
||||||
"${mod}+Shift+7" = "move container to workspace number 7";
|
|
||||||
"${mod}+Shift+8" = "move container to workspace number 8";
|
|
||||||
"${mod}+Shift+9" = "move container to workspace number 9";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
services.syncthing = {
|
|
||||||
enable = true;
|
|
||||||
user = "agatha";
|
|
||||||
openDefaultPorts = true;
|
|
||||||
overrideFolders = false;
|
|
||||||
overrideDevices = false;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,67 +0,0 @@
|
||||||
{ config, pkgs, ... }: {
|
|
||||||
environment.graphical.colorschemes = {
|
|
||||||
purple = {
|
|
||||||
image = ../../../external/the_reliquary.png;
|
|
||||||
params = [ "--lighten" "0.05" "--bold-delta" "0.1" ];
|
|
||||||
};
|
|
||||||
purple-light = {
|
|
||||||
image = ../../../external/the_reliquary.png;
|
|
||||||
params = [ "--light" "--bold-delta" "0.2" "--saturate" "0.1" ];
|
|
||||||
};
|
|
||||||
blue = { image = ../../../external/blue.jpg; };
|
|
||||||
dark = {
|
|
||||||
image = ../../../external/the_falls_by_night.jpg;
|
|
||||||
params = [ "--lighten" "0.5" ];
|
|
||||||
};
|
|
||||||
bridge = {
|
|
||||||
image = ../../../external/the_bridge.png;
|
|
||||||
params = [ "--saturate" "0.05" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
# Cursor theme
|
|
||||||
home.pointerCursor = {
|
|
||||||
name = "Adwaita";
|
|
||||||
package = pkgs.gnome.adwaita-icon-theme;
|
|
||||||
size = 24;
|
|
||||||
x11 = {
|
|
||||||
enable = true;
|
|
||||||
defaultCursor = "Adwaita";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# GTK theme
|
|
||||||
home.file.".themes" = {
|
|
||||||
recursive = true;
|
|
||||||
source = pkgs.fetchgit {
|
|
||||||
url = "https://github.com/ZorinOS/zorin-desktop-themes.git";
|
|
||||||
rev = "05ab7360d33ab6e510cebceccc4d2b3e1baa7276";
|
|
||||||
sha256 = "sha256-nU2V6PZepi5c7zorF6dZYNSF8jliE8+VObzbzrU+ADo=";
|
|
||||||
sparseCheckout = [ "ZorinPurple-Dark" "ZorinPurple-Light" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
font.name = "Cantarell";
|
|
||||||
font.size = 12;
|
|
||||||
theme.name = if config.environment.graphical.theme.light then
|
|
||||||
"ZorinPurple-Light"
|
|
||||||
else
|
|
||||||
"ZorinPurple-Dark";
|
|
||||||
};
|
|
||||||
|
|
||||||
dconf.settings."org/gnome/desktop/interface".color-scheme =
|
|
||||||
if config.environment.graphical.theme.light then
|
|
||||||
"prefer-light"
|
|
||||||
else
|
|
||||||
"prefer-dark";
|
|
||||||
|
|
||||||
programs.helix.settings.theme =
|
|
||||||
if config.environment.graphical.theme.light then
|
|
||||||
"paramount-light"
|
|
||||||
else
|
|
||||||
"paramount-dark";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -132,7 +132,8 @@ let
|
||||||
params "wt_mc" "wt_zmc"
|
params "wt_mc" "wt_zmc"
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
services.url-eater = {
|
services.url-eater = {
|
||||||
enable = true;
|
enable = true;
|
||||||
inherit filters;
|
inherit filters;
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
{ pkgs, config, lib, ... }: {
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
imports = [ ../../common/home_manager/helix.nix ];
|
imports = [ ../../common/home_manager/helix.nix ];
|
||||||
|
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
|
@ -29,16 +35,19 @@
|
||||||
signing.key = "33185E0D62AD7294379947D4C37ABADDB597BCA1";
|
signing.key = "33185E0D62AD7294379947D4C37ABADDB597BCA1";
|
||||||
signing.signByDefault = true;
|
signing.signByDefault = true;
|
||||||
aliases = {
|
aliases = {
|
||||||
plog =
|
plog = "log --graph --pretty=format:'%h -%d %s -%an %n' --abbrev-commit --date=relative --branches";
|
||||||
"log --graph --pretty=format:'%h -%d %s -%an %n' --abbrev-commit --date=relative --branches";
|
|
||||||
pfusch = "push --force-with-lease";
|
pfusch = "push --force-with-lease";
|
||||||
stat = "diff --compact-summary";
|
stat = "diff --compact-summary";
|
||||||
undo = "reset --soft HEAD~";
|
undo = "reset --soft HEAD~";
|
||||||
unstage = "restore --staged";
|
unstage = "restore --staged";
|
||||||
};
|
};
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
init = { defaultBranch = "mistress"; };
|
init = {
|
||||||
core = { editor = "hx"; };
|
defaultBranch = "mistress";
|
||||||
|
};
|
||||||
|
core = {
|
||||||
|
editor = "hx";
|
||||||
|
};
|
||||||
merge.conflictStyle = "zdiff3";
|
merge.conflictStyle = "zdiff3";
|
||||||
rebase.autosquash = true;
|
rebase.autosquash = true;
|
||||||
pull.rebase = true;
|
pull.rebase = true;
|
||||||
|
@ -67,8 +76,11 @@
|
||||||
"$character"
|
"$character"
|
||||||
"$directory"
|
"$directory"
|
||||||
];
|
];
|
||||||
right_format =
|
right_format = lib.concatStrings [
|
||||||
lib.concatStrings [ "$git_branch" " " "$cmd_duration" ];
|
"$git_branch"
|
||||||
|
" "
|
||||||
|
"$cmd_duration"
|
||||||
|
];
|
||||||
character = {
|
character = {
|
||||||
success_symbol = "";
|
success_symbol = "";
|
||||||
error_symbol = "[ ⇣](purple)";
|
error_symbol = "[ ⇣](purple)";
|
||||||
|
@ -80,7 +92,9 @@
|
||||||
style = "cyan";
|
style = "cyan";
|
||||||
read_only_style = "cyan";
|
read_only_style = "cyan";
|
||||||
};
|
};
|
||||||
cmd_duration = { min_time = 10000; };
|
cmd_duration = {
|
||||||
|
min_time = 10000;
|
||||||
|
};
|
||||||
git_branch = {
|
git_branch = {
|
||||||
format = "$symbol $branch";
|
format = "$symbol $branch";
|
||||||
symbol = "";
|
symbol = "";
|
||||||
|
@ -118,10 +132,12 @@
|
||||||
ls = "eza -lhT --classify=always --group-directories-first --level 1";
|
ls = "eza -lhT --classify=always --group-directories-first --level 1";
|
||||||
cat = "bat";
|
cat = "bat";
|
||||||
ip = "ip -color=always";
|
ip = "ip -color=always";
|
||||||
youtube-dl-audio = ''
|
youtube-dl-audio = ''yt-dlp --ignore-errors --output "%(title)s.%(ext)s" --extract-audio --audio-format best'';
|
||||||
yt-dlp --ignore-errors --output "%(title)s.%(ext)s" --extract-audio --audio-format best'';
|
|
||||||
rsync = "rsync -az --partial --info=progress2";
|
rsync = "rsync -az --partial --info=progress2";
|
||||||
};
|
};
|
||||||
|
shellAliases.tailscale = lib.mkIf (
|
||||||
|
!pkgs.stdenv.isLinux
|
||||||
|
) "/Applications/Tailscale.app/Contents/MacOS/Tailscale";
|
||||||
functions = {
|
functions = {
|
||||||
expand-dot-to-parent-directory-path = ''
|
expand-dot-to-parent-directory-path = ''
|
||||||
# expand ... to ../.. etc
|
# expand ... to ../.. etc
|
||||||
|
@ -176,7 +192,9 @@
|
||||||
|
|
||||||
tealdeer = {
|
tealdeer = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = { updates.auto_update = true; };
|
settings = {
|
||||||
|
updates.auto_update = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
zoxide = {
|
zoxide = {
|
||||||
|
@ -198,4 +216,3 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{ pkgs, lib, ... }: {
|
{ pkgs, lib, ... }:
|
||||||
|
{
|
||||||
# Set editor
|
# Set editor
|
||||||
environment.variables.EDITOR = "hx";
|
environment.variables.EDITOR = "hx";
|
||||||
|
|
||||||
|
@ -11,22 +12,33 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.helix;
|
package = pkgs.helix;
|
||||||
languages = {
|
languages = {
|
||||||
language = [{
|
language = [
|
||||||
name = "nix";
|
{
|
||||||
auto-format = true;
|
name = "nix";
|
||||||
formatter = { command = "nixfmt"; };
|
auto-format = true;
|
||||||
}];
|
formatter = {
|
||||||
|
command = "nixfmt";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
theme = lib.mkDefault "paramount-dark";
|
theme = lib.mkDefault "paramount-dark";
|
||||||
editor = {
|
editor = {
|
||||||
middle-click-paste = false;
|
middle-click-paste = false;
|
||||||
scroll-lines = 4;
|
scroll-lines = 4;
|
||||||
shell = [ "fish" "-c" ];
|
shell = [
|
||||||
|
"fish"
|
||||||
|
"-c"
|
||||||
|
];
|
||||||
bufferline = "multiple";
|
bufferline = "multiple";
|
||||||
|
|
||||||
statusline = {
|
statusline = {
|
||||||
left = [ "mode" "spinner" "file-name" ];
|
left = [
|
||||||
|
"mode"
|
||||||
|
"spinner"
|
||||||
|
"file-name"
|
||||||
|
];
|
||||||
right = [
|
right = [
|
||||||
"workspace-diagnostics"
|
"workspace-diagnostics"
|
||||||
"position"
|
"position"
|
||||||
|
@ -39,7 +51,9 @@
|
||||||
separator = " ";
|
separator = " ";
|
||||||
};
|
};
|
||||||
|
|
||||||
cursor-shape = { insert = "bar"; };
|
cursor-shape = {
|
||||||
|
insert = "bar";
|
||||||
|
};
|
||||||
|
|
||||||
whitespace.render = {
|
whitespace.render = {
|
||||||
tab = "all";
|
tab = "all";
|
||||||
|
@ -61,13 +75,25 @@
|
||||||
|
|
||||||
keys = {
|
keys = {
|
||||||
insert = {
|
insert = {
|
||||||
"C-left" = [ "move_prev_word_start" "collapse_selection" ];
|
"C-left" = [
|
||||||
"C-right" = [ "move_next_word_start" "collapse_selection" ];
|
"move_prev_word_start"
|
||||||
|
"collapse_selection"
|
||||||
|
];
|
||||||
|
"C-right" = [
|
||||||
|
"move_next_word_start"
|
||||||
|
"collapse_selection"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
normal = {
|
normal = {
|
||||||
"C-left" = [ "move_prev_word_start" "collapse_selection" ];
|
"C-left" = [
|
||||||
"C-right" = [ "move_next_word_start" "collapse_selection" ];
|
"move_prev_word_start"
|
||||||
|
"collapse_selection"
|
||||||
|
];
|
||||||
|
"C-right" = [
|
||||||
|
"move_next_word_start"
|
||||||
|
"collapse_selection"
|
||||||
|
];
|
||||||
"A-d" = "delete_selection";
|
"A-d" = "delete_selection";
|
||||||
"d" = "delete_selection_noyank";
|
"d" = "delete_selection_noyank";
|
||||||
};
|
};
|
||||||
|
@ -75,210 +101,244 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
themes = {
|
themes = {
|
||||||
paramount-dark = let
|
paramount-dark =
|
||||||
medium_gray = "#767676";
|
let
|
||||||
lighter_black = "#4E4E4E";
|
medium_gray = "#767676";
|
||||||
lighter_gray = "#C6C6C6";
|
lighter_black = "#4E4E4E";
|
||||||
light_red = "#E32791";
|
lighter_gray = "#C6C6C6";
|
||||||
orange = "#D75F5F";
|
light_red = "#E32791";
|
||||||
light_green = "#5FD7A7";
|
orange = "#D75F5F";
|
||||||
dark_purple = "#af5fd7";
|
light_green = "#5FD7A7";
|
||||||
light_purple = "#a790d5";
|
dark_purple = "#af5fd7";
|
||||||
dark_yellow = "#A89C14";
|
light_purple = "#a790d5";
|
||||||
in {
|
dark_yellow = "#A89C14";
|
||||||
inherits = "hex_lavender";
|
in
|
||||||
|
{
|
||||||
|
"ui.background" = {
|
||||||
|
bg = "black";
|
||||||
|
};
|
||||||
|
"ui.gutter" = {
|
||||||
|
bg = "black";
|
||||||
|
};
|
||||||
|
"ui.menu.selected" = {
|
||||||
|
fg = lighter_gray;
|
||||||
|
bg = light_purple;
|
||||||
|
};
|
||||||
|
"comment" = {
|
||||||
|
fg = lighter_black;
|
||||||
|
modifiers = [ "italic" ];
|
||||||
|
};
|
||||||
|
"constant" = light_purple;
|
||||||
|
"string" = light_purple;
|
||||||
|
"variable" = lighter_gray;
|
||||||
|
"function" = lighter_gray;
|
||||||
|
"keyword.function" = lighter_gray;
|
||||||
|
"keyword.control" = medium_gray;
|
||||||
|
"keyword.control.import" = medium_gray;
|
||||||
|
"operator" = {
|
||||||
|
fg = lighter_gray;
|
||||||
|
modifiers = [ "bold" ];
|
||||||
|
};
|
||||||
|
"function.special" = medium_gray;
|
||||||
|
"type" = lighter_gray;
|
||||||
|
"tag" = {
|
||||||
|
fg = medium_gray;
|
||||||
|
modifiers = [ "italic" ];
|
||||||
|
};
|
||||||
|
"punctuation" = {
|
||||||
|
fg = medium_gray;
|
||||||
|
};
|
||||||
|
"ui.linenr" = medium_gray;
|
||||||
|
"ui.linenr.selected" = {
|
||||||
|
fg = light_purple;
|
||||||
|
};
|
||||||
|
"ui.window" = medium_gray;
|
||||||
|
"ui.text" = lighter_gray;
|
||||||
|
"ui.text.focus" = light_purple;
|
||||||
|
"ui.virtual.whitespace" = lighter_black;
|
||||||
|
"string.special.url" = {
|
||||||
|
fg = lighter_gray;
|
||||||
|
underline = {
|
||||||
|
color = lighter_gray;
|
||||||
|
style = "line";
|
||||||
|
};
|
||||||
|
modifiers = [ "underlined" ];
|
||||||
|
};
|
||||||
|
"markup.link" = {
|
||||||
|
fg = lighter_gray;
|
||||||
|
underline = {
|
||||||
|
color = lighter_gray;
|
||||||
|
style = "line";
|
||||||
|
};
|
||||||
|
modifiers = [ "underlined" ];
|
||||||
|
};
|
||||||
|
"diagnostic.error" = {
|
||||||
|
underline = {
|
||||||
|
color = light_red;
|
||||||
|
style = "curl";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"error" = light_red;
|
||||||
|
"diagnostic.hint" = {
|
||||||
|
underline = {
|
||||||
|
color = lighter_gray;
|
||||||
|
style = "curl";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"hint" = lighter_gray;
|
||||||
|
"ui.selection" = {
|
||||||
|
fg = lighter_gray;
|
||||||
|
bg = light_purple;
|
||||||
|
};
|
||||||
|
"ui.selection.primary" = {
|
||||||
|
fg = lighter_gray;
|
||||||
|
bg = light_purple;
|
||||||
|
};
|
||||||
|
"warning" = orange;
|
||||||
|
"diagnostic.warning" = {
|
||||||
|
underline = {
|
||||||
|
color = orange;
|
||||||
|
style = "curl";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"diff.plus" = light_green;
|
||||||
|
"diff.minus" = light_red;
|
||||||
|
"diff.delta" = dark_yellow;
|
||||||
|
"ui.cursor" = {
|
||||||
|
bg = lighter_gray;
|
||||||
|
};
|
||||||
|
"ui.cursor.insert" = {
|
||||||
|
bg = light_purple;
|
||||||
|
};
|
||||||
|
"ui.cursor.select" = {
|
||||||
|
bg = dark_purple;
|
||||||
|
};
|
||||||
|
"ui.cursor.match" = {
|
||||||
|
fg = lighter_gray;
|
||||||
|
bg = medium_gray;
|
||||||
|
};
|
||||||
|
"namespace" = medium_gray;
|
||||||
|
};
|
||||||
|
paramount-light =
|
||||||
|
let
|
||||||
|
medium_gray = "#767676";
|
||||||
|
actual_white = "#FFFFFF";
|
||||||
|
light_black = "#262626";
|
||||||
|
dark_red = "#C30771";
|
||||||
|
orange = "#D75F5F";
|
||||||
|
dark_green = "#10A778";
|
||||||
|
dark_purple = "#af5fd7";
|
||||||
|
dark_yellow = "#A89C14";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
inherits = "spacebones_light";
|
||||||
|
|
||||||
"ui.background" = { bg = "black"; };
|
"ui.background" = {
|
||||||
"ui.gutter" = { bg = "black"; };
|
bg = actual_white;
|
||||||
"ui.menu.selected" = {
|
|
||||||
fg = lighter_gray;
|
|
||||||
bg = light_purple;
|
|
||||||
};
|
|
||||||
"comment" = {
|
|
||||||
fg = lighter_black;
|
|
||||||
modifiers = [ "italic" ];
|
|
||||||
};
|
|
||||||
"constant" = light_purple;
|
|
||||||
"string" = light_purple;
|
|
||||||
"variable" = lighter_gray;
|
|
||||||
"function" = lighter_gray;
|
|
||||||
"keyword.function" = lighter_gray;
|
|
||||||
"keyword.control" = medium_gray;
|
|
||||||
"keyword.control.import" = medium_gray;
|
|
||||||
"operator" = {
|
|
||||||
fg = lighter_gray;
|
|
||||||
modifiers = [ "bold" ];
|
|
||||||
};
|
|
||||||
"function.special" = medium_gray;
|
|
||||||
"type" = lighter_gray;
|
|
||||||
"tag" = {
|
|
||||||
fg = medium_gray;
|
|
||||||
modifiers = [ "italic" ];
|
|
||||||
};
|
|
||||||
"punctuation" = { fg = medium_gray; };
|
|
||||||
"ui.linenr" = medium_gray;
|
|
||||||
"ui.linenr.selected" = { fg = light_purple; };
|
|
||||||
"string.special.url" = {
|
|
||||||
fg = lighter_gray;
|
|
||||||
underline = {
|
|
||||||
color = lighter_gray;
|
|
||||||
style = "line";
|
|
||||||
};
|
};
|
||||||
modifiers = [ "underlined" ];
|
"ui.gutter" = {
|
||||||
};
|
bg = actual_white;
|
||||||
"markup.link" = {
|
|
||||||
fg = lighter_gray;
|
|
||||||
underline = {
|
|
||||||
color = lighter_gray;
|
|
||||||
style = "line";
|
|
||||||
};
|
};
|
||||||
modifiers = [ "underlined" ];
|
"ui.menu.selected" = {
|
||||||
};
|
fg = light_black;
|
||||||
"diagnostic.error" = {
|
bg = dark_purple;
|
||||||
underline = {
|
|
||||||
color = light_red;
|
|
||||||
style = "curl";
|
|
||||||
};
|
};
|
||||||
};
|
"comment" = {
|
||||||
"error" = light_red;
|
fg = "dark_gray";
|
||||||
"diagnostic.hint" = {
|
modifiers = [ "italic" ];
|
||||||
underline = {
|
|
||||||
color = lighter_gray;
|
|
||||||
style = "curl";
|
|
||||||
};
|
};
|
||||||
};
|
"constant" = dark_purple;
|
||||||
"hint" = lighter_gray;
|
"string" = dark_purple;
|
||||||
"ui.selection" = {
|
"variable" = light_black;
|
||||||
fg = lighter_gray;
|
"variable.parameter" = light_black;
|
||||||
bg = light_purple;
|
"function" = light_black;
|
||||||
};
|
"keyword" = medium_gray;
|
||||||
"ui.selection.primary" = {
|
"keyword.function" = light_black;
|
||||||
fg = lighter_gray;
|
"keyword.control" = medium_gray;
|
||||||
bg = light_purple;
|
"keyword.control.import" = medium_gray;
|
||||||
};
|
"operator" = {
|
||||||
"warning" = orange;
|
fg = light_black;
|
||||||
"diagnostic.warning" = {
|
modifiers = [ "bold" ];
|
||||||
underline = {
|
|
||||||
color = orange;
|
|
||||||
style = "curl";
|
|
||||||
};
|
};
|
||||||
};
|
"function.special" = medium_gray;
|
||||||
"diff.plus" = light_green;
|
"function.macro" = medium_gray;
|
||||||
"diff.minus" = light_red;
|
"type" = light_black;
|
||||||
"diff.delta" = dark_yellow;
|
"type.builtin" = light_black;
|
||||||
"ui.cursor" = { bg = lighter_gray; };
|
"tag" = {
|
||||||
"ui.cursor.insert" = { bg = light_purple; };
|
fg = medium_gray;
|
||||||
"ui.cursor.select" = { bg = dark_purple; };
|
modifiers = [ "italic" ];
|
||||||
"ui.cursor.match" = {
|
|
||||||
fg = lighter_gray;
|
|
||||||
bg = medium_gray;
|
|
||||||
};
|
|
||||||
"namespace" = medium_gray;
|
|
||||||
};
|
|
||||||
paramount-light = let
|
|
||||||
medium_gray = "#767676";
|
|
||||||
actual_white = "#FFFFFF";
|
|
||||||
light_black = "#262626";
|
|
||||||
dark_red = "#C30771";
|
|
||||||
orange = "#D75F5F";
|
|
||||||
dark_green = "#10A778";
|
|
||||||
dark_purple = "#af5fd7";
|
|
||||||
dark_yellow = "#A89C14";
|
|
||||||
in {
|
|
||||||
inherits = "spacebones_light";
|
|
||||||
|
|
||||||
"ui.background" = { bg = actual_white; };
|
|
||||||
"ui.gutter" = { bg = actual_white; };
|
|
||||||
"ui.menu.selected" = {
|
|
||||||
fg = light_black;
|
|
||||||
bg = dark_purple;
|
|
||||||
};
|
|
||||||
"comment" = {
|
|
||||||
fg = "dark_gray";
|
|
||||||
modifiers = [ "italic" ];
|
|
||||||
};
|
|
||||||
"constant" = dark_purple;
|
|
||||||
"string" = dark_purple;
|
|
||||||
"variable" = light_black;
|
|
||||||
"variable.parameter" = light_black;
|
|
||||||
"function" = light_black;
|
|
||||||
"keyword" = medium_gray;
|
|
||||||
"keyword.function" = light_black;
|
|
||||||
"keyword.control" = medium_gray;
|
|
||||||
"keyword.control.import" = medium_gray;
|
|
||||||
"operator" = {
|
|
||||||
fg = light_black;
|
|
||||||
modifiers = [ "bold" ];
|
|
||||||
};
|
|
||||||
"function.special" = medium_gray;
|
|
||||||
"function.macro" = medium_gray;
|
|
||||||
"type" = light_black;
|
|
||||||
"type.builtin" = light_black;
|
|
||||||
"tag" = {
|
|
||||||
fg = medium_gray;
|
|
||||||
modifiers = [ "italic" ];
|
|
||||||
};
|
|
||||||
"punctuation" = { fg = medium_gray; };
|
|
||||||
"ui.linenr" = medium_gray;
|
|
||||||
"ui.linenr.selected" = { fg = dark_purple; };
|
|
||||||
"string.special.url" = {
|
|
||||||
fg = light_black;
|
|
||||||
underline = {
|
|
||||||
color = light_black;
|
|
||||||
style = "line";
|
|
||||||
};
|
};
|
||||||
modifiers = [ "underlined" ];
|
"punctuation" = {
|
||||||
};
|
fg = medium_gray;
|
||||||
"markup.link" = {
|
|
||||||
fg = light_black;
|
|
||||||
underline = {
|
|
||||||
color = light_black;
|
|
||||||
style = "line";
|
|
||||||
};
|
};
|
||||||
modifiers = [ "underlined" ];
|
"ui.linenr" = medium_gray;
|
||||||
};
|
"ui.linenr.selected" = {
|
||||||
"diagnostic.error" = {
|
fg = dark_purple;
|
||||||
underline = {
|
|
||||||
color = dark_red;
|
|
||||||
style = "curl";
|
|
||||||
};
|
};
|
||||||
};
|
"string.special.url" = {
|
||||||
"error" = dark_red;
|
fg = light_black;
|
||||||
"diagnostic.hint" = {
|
underline = {
|
||||||
underline = {
|
color = light_black;
|
||||||
color = light_black;
|
style = "line";
|
||||||
style = "curl";
|
};
|
||||||
|
modifiers = [ "underlined" ];
|
||||||
};
|
};
|
||||||
};
|
"markup.link" = {
|
||||||
"hint" = light_black;
|
fg = light_black;
|
||||||
"ui.selection" = {
|
underline = {
|
||||||
fg = light_black;
|
color = light_black;
|
||||||
bg = dark_purple;
|
style = "line";
|
||||||
};
|
};
|
||||||
"ui.selection.primary" = {
|
modifiers = [ "underlined" ];
|
||||||
fg = light_black;
|
|
||||||
bg = dark_purple;
|
|
||||||
};
|
|
||||||
"warning" = orange;
|
|
||||||
"diagnostic.warning" = {
|
|
||||||
underline = {
|
|
||||||
color = orange;
|
|
||||||
style = "curl";
|
|
||||||
};
|
};
|
||||||
|
"diagnostic.error" = {
|
||||||
|
underline = {
|
||||||
|
color = dark_red;
|
||||||
|
style = "curl";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"error" = dark_red;
|
||||||
|
"diagnostic.hint" = {
|
||||||
|
underline = {
|
||||||
|
color = light_black;
|
||||||
|
style = "curl";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"hint" = light_black;
|
||||||
|
"ui.selection" = {
|
||||||
|
fg = light_black;
|
||||||
|
bg = dark_purple;
|
||||||
|
};
|
||||||
|
"ui.selection.primary" = {
|
||||||
|
fg = light_black;
|
||||||
|
bg = dark_purple;
|
||||||
|
};
|
||||||
|
"warning" = orange;
|
||||||
|
"diagnostic.warning" = {
|
||||||
|
underline = {
|
||||||
|
color = orange;
|
||||||
|
style = "curl";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"diff.plus" = dark_green;
|
||||||
|
"diff.minus" = dark_red;
|
||||||
|
"diff.delta" = dark_yellow;
|
||||||
|
"ui.cursor" = {
|
||||||
|
bg = light_black;
|
||||||
|
};
|
||||||
|
"ui.cursor.insert" = {
|
||||||
|
bg = dark_purple;
|
||||||
|
};
|
||||||
|
"ui.cursor.select" = {
|
||||||
|
bg = dark_purple;
|
||||||
|
};
|
||||||
|
"ui.cursor.match" = {
|
||||||
|
fg = light_black;
|
||||||
|
bg = medium_gray;
|
||||||
|
};
|
||||||
|
"namespace" = medium_gray;
|
||||||
|
"special" = medium_gray;
|
||||||
};
|
};
|
||||||
"diff.plus" = dark_green;
|
|
||||||
"diff.minus" = dark_red;
|
|
||||||
"diff.delta" = dark_yellow;
|
|
||||||
"ui.cursor" = { bg = light_black; };
|
|
||||||
"ui.cursor.insert" = { bg = dark_purple; };
|
|
||||||
"ui.cursor.select" = { bg = dark_purple; };
|
|
||||||
"ui.cursor.match" = {
|
|
||||||
fg = light_black;
|
|
||||||
bg = medium_gray;
|
|
||||||
};
|
|
||||||
"namespace" = medium_gray;
|
|
||||||
"special" = medium_gray;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -67,4 +67,5 @@
|
||||||
trustedInterfaces = [ "tailscale0" ];
|
trustedInterfaces = [ "tailscale0" ];
|
||||||
allowedUDPPorts = [ config.services.tailscale.port ];
|
allowedUDPPorts = [ config.services.tailscale.port ];
|
||||||
};
|
};
|
||||||
|
services.tailscale.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
{ lib, config, ... }: {
|
|
||||||
options = {
|
|
||||||
environment.graphical.theme = with lib; {
|
|
||||||
name = mkOption { type = types.str; };
|
|
||||||
light = mkOption {
|
|
||||||
default = false;
|
|
||||||
type = types.bool;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = let
|
|
||||||
theme =
|
|
||||||
config.environment.graphical.colorschemes."${config.environment.graphical.theme.name}";
|
|
||||||
in {
|
|
||||||
environment.graphical.theme.light = builtins.elem "--light" theme.params
|
|
||||||
|| builtins.elem "-l" theme.params;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{ pkgs }:
|
|
||||||
pkgs.buildGoModule rec {
|
|
||||||
pname = "bspm";
|
|
||||||
version = "v0.0.9";
|
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "diogox";
|
|
||||||
repo = pname;
|
|
||||||
rev = version;
|
|
||||||
sha256 = "sha256-ocnvTUANmJ6186Dktr5GaotbkZKZymKiIHICgTIRtjc=";
|
|
||||||
};
|
|
||||||
|
|
||||||
vendorHash = "sha256-Oj6i4/K0LAubu2aSoXcC6bZtTp8/N0cbvG+KWjA5/nw=";
|
|
||||||
|
|
||||||
doCheck = false;
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "The bspwm manager";
|
|
||||||
homepage = "https://github.com/diogox/bspm";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ pkgs }:
|
|
||||||
pkgs.rustPlatform.buildRustPackage rec {
|
|
||||||
pname = "pads";
|
|
||||||
version = "89d69d4b9b199e08671c947120d5b2e1b6295d68";
|
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "dogue";
|
|
||||||
repo = pname;
|
|
||||||
rev = version;
|
|
||||||
sha256 = "sha256-vVmEKvRSBiHv4skh2/B6cl17jVsgRI0IJeSgpSpPPTE=";
|
|
||||||
};
|
|
||||||
|
|
||||||
cargoLock = { lockFile = "${src}/Cargo.lock"; };
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgs.pkg-config ];
|
|
||||||
buildInputs = [ pkgs.libpulseaudio ];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description =
|
|
||||||
"A simple CLI tool for swtiching the default/active output device for PulseAudio.";
|
|
||||||
homepage = "https://github.com/dogue/pads";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
{ pkgs }:
|
|
||||||
pkgs.stdenv.mkDerivation rec {
|
|
||||||
pname = "polybar-scripts";
|
|
||||||
version = "8a6a2c7fc6beb281515f81ccf5b9fafc830a3230";
|
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "polybar";
|
|
||||||
repo = pname;
|
|
||||||
rev = version;
|
|
||||||
sha256 = "sha256-4f12SSidJGElPbHs94WyoKj9kJH4dWsZSqMGOyzSJII=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [ gobject-introspection wrapGAppsHook3 ];
|
|
||||||
|
|
||||||
propagatedBuildInputs = with pkgs; [
|
|
||||||
(python39.withPackages (pyPkgs: with pyPkgs; [ dbus-python pygobject3 ]))
|
|
||||||
glib
|
|
||||||
];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
find . -type f ! -name "*.py" ! -name "*.sh" -exec rm {} \;
|
|
||||||
cp -r polybar-scripts/* $out/bin/
|
|
||||||
chmod -R +x $out/bin
|
|
||||||
'';
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 188 KiB |
|
@ -1,4 +0,0 @@
|
||||||
the_reliquary.png: The Reliquary by Pete Amachree
|
|
||||||
blue.jpg: ???
|
|
||||||
the_falls_by_night.jpg: Jungle Waterfall by Mark J. Ferrari
|
|
||||||
the_bridge.png: The Bridge by ReFiend
|
|
Binary file not shown.
Before Width: | Height: | Size: 11 MiB |
Binary file not shown.
Before Width: | Height: | Size: 2.0 MiB |
Binary file not shown.
Before Width: | Height: | Size: 6.7 MiB |
173
flake.lock
173
flake.lock
|
@ -44,28 +44,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"colorpickle": {
|
|
||||||
"inputs": {
|
|
||||||
"naersk": "naersk",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs-unstable"
|
|
||||||
],
|
|
||||||
"utils": "utils_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1700940986,
|
|
||||||
"narHash": "sha256-+7eo8Y0YkuQeGDIHtEGPpoJQNGSxpzkg4UPR63xJiss=",
|
|
||||||
"owner": "AgathaSorceress",
|
|
||||||
"repo": "colorpickle",
|
|
||||||
"rev": "61c77e71b5586412b6deecc2389fc39072e4b60f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "AgathaSorceress",
|
|
||||||
"repo": "colorpickle",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"crane": {
|
"crane": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727974419,
|
"lastModified": 1727974419,
|
||||||
|
@ -130,7 +108,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726560853,
|
"lastModified": 1726560853,
|
||||||
|
@ -148,7 +126,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_3": {
|
"flake-utils_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_5"
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1710146030,
|
||||||
|
@ -196,11 +174,11 @@
|
||||||
},
|
},
|
||||||
"frq-friend": {
|
"frq-friend": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"naersk": "naersk_2",
|
"naersk": "naersk",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"utils": "utils_3"
|
"utils": "utils_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704635792,
|
"lastModified": 1704635792,
|
||||||
|
@ -226,11 +204,11 @@
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729690460,
|
"lastModified": 1732579614,
|
||||||
"narHash": "sha256-x8qkGujBPuOefXPyjcaB8Ot0IYkQBy6O2ZYb8NrnB3k=",
|
"narHash": "sha256-LREXerN4a4DHG38a2KZPum7E/OKNhYgrBtU6AsD5SnQ=",
|
||||||
"owner": "helix-editor",
|
"owner": "helix-editor",
|
||||||
"repo": "helix",
|
"repo": "helix",
|
||||||
"rev": "101a74bf6edbbfdf9b0628a0bdbbc307ebe10ff2",
|
"rev": "80709cee610f1758af1e62d53bde2eb8aa706a0c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -313,11 +291,11 @@
|
||||||
},
|
},
|
||||||
"matrix-ril100": {
|
"matrix-ril100": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"naersk": "naersk_3",
|
"naersk": "naersk_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs-unstable"
|
"nixpkgs-unstable"
|
||||||
],
|
],
|
||||||
"utils": "utils_4"
|
"utils": "utils_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1688054487,
|
"lastModified": 1688054487,
|
||||||
|
@ -360,25 +338,6 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
|
||||||
"lastModified": 1694081375,
|
|
||||||
"narHash": "sha256-vzJXOUnmkMCm3xw8yfPP5m8kypQ3BhAIRe4RRCWpzy8=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "naersk",
|
|
||||||
"rev": "3f976d822b7b37fc6fb8e6f157c2dd05e7e94e89",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"ref": "master",
|
|
||||||
"repo": "naersk",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"naersk_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1679567394,
|
"lastModified": 1679567394,
|
||||||
"narHash": "sha256-ZvLuzPeARDLiQUt6zSZFGOs+HZmE+3g4QURc8mkBsfM=",
|
"narHash": "sha256-ZvLuzPeARDLiQUt6zSZFGOs+HZmE+3g4QURc8mkBsfM=",
|
||||||
|
@ -394,9 +353,9 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"naersk_3": {
|
"naersk_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1687852486,
|
"lastModified": 1687852486,
|
||||||
|
@ -413,7 +372,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"naersk_4": {
|
"naersk_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"url-eater",
|
"url-eater",
|
||||||
|
@ -438,7 +397,7 @@
|
||||||
"nix": {
|
"nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"lowdown-src": "lowdown-src",
|
"lowdown-src": "lowdown-src",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"nixpkgs-regression": "nixpkgs-regression"
|
"nixpkgs-regression": "nixpkgs-regression"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -462,11 +421,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730070491,
|
"lastModified": 1732420287,
|
||||||
"narHash": "sha256-+RYCbdU6l4E4pr40++lrdhdE3gNC/BR54AL7xWG/YRU=",
|
"narHash": "sha256-CzvYF4x6jUh/+NEEIFrIY5t1W/N3IA2bNZJiMXu9GTo=",
|
||||||
"owner": "LnL7",
|
"owner": "LnL7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "5c0c6aaa797d6ccbb6cdab14de0248135735709d",
|
"rev": "3c52583b99666a349a6219dc1f0dd07d75c82d6a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -477,11 +436,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696234590,
|
"lastModified": 1681272286,
|
||||||
"narHash": "sha256-mgOzQYTvaTT4bFopVOadlndy2RPwLy60rDjIWOGujwo=",
|
"narHash": "sha256-9X5p+gwYrowgbsRgkf14HFI0fkr6UikuwRIQAMlF1yI=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "f902cb49892d300ff15cb237e48aa1cad79d68c3",
|
"rev": "6b70761ea8c896aff8994eb367d9526686501860",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -491,11 +450,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-darwin": {
|
"nixpkgs-darwin": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730091932,
|
"lastModified": 1730891215,
|
||||||
"narHash": "sha256-Xg1O6tAHBK8EVHMLylYFlpRmqtG/deKqTfI9atLRLE0=",
|
"narHash": "sha256-i85DPrhDuvzgvIWCpJlbfM2UFtNYbapo20MtQXsvay4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9b9516e15a60ce6633efccb02d703f6eca973228",
|
"rev": "c128e44a249d6180740d0a979b6480d5b795c013",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -523,11 +482,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729980323,
|
"lastModified": 1732238832,
|
||||||
"narHash": "sha256-eWPRZAlhf446bKSmzw6x7RWEE4IuZgAp8NW3eXZwRAY=",
|
"narHash": "sha256-sQxuJm8rHY20xq6Ah+GwIUkF95tWjGRd1X8xF+Pkk38=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "86e78d3d2084ff87688da662cf78c2af085d8e73",
|
"rev": "8edf06bea5bcbee082df1b7369ff973b91618b8d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -538,20 +497,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681272286,
|
|
||||||
"narHash": "sha256-9X5p+gwYrowgbsRgkf14HFI0fkr6UikuwRIQAMlF1yI=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "6b70761ea8c896aff8994eb367d9526686501860",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "nixpkgs",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1687946342,
|
"lastModified": 1687946342,
|
||||||
"narHash": "sha256-vRxti8pOuXS0rJmqjbD8ueEEFXWSK22ISHoCWkhgzzg=",
|
"narHash": "sha256-vRxti8pOuXS0rJmqjbD8ueEEFXWSK22ISHoCWkhgzzg=",
|
||||||
|
@ -565,7 +510,7 @@
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1657693803,
|
"lastModified": 1657693803,
|
||||||
"narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=",
|
"narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=",
|
||||||
|
@ -581,13 +526,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729973466,
|
"lastModified": 1731797254,
|
||||||
"narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=",
|
"narHash": "sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "cd3e8833d70618c4eea8df06f95b364b016d4950",
|
"rev": "e8c38b73aeb218e27163376a2d617e61a2ad9b59",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -597,7 +542,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682092588,
|
"lastModified": 1682092588,
|
||||||
"narHash": "sha256-NjKBPnScpbGiH/YOx74DIFOVkr5AKJOVZoy0l7J58gk=",
|
"narHash": "sha256-NjKBPnScpbGiH/YOx74DIFOVkr5AKJOVZoy0l7J58gk=",
|
||||||
|
@ -617,7 +562,6 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"ccase": "ccase",
|
"ccase": "ccase",
|
||||||
"colmena": "colmena",
|
"colmena": "colmena",
|
||||||
"colorpickle": "colorpickle",
|
|
||||||
"frq-friend": "frq-friend",
|
"frq-friend": "frq-friend",
|
||||||
"helix": "helix",
|
"helix": "helix",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
@ -625,7 +569,7 @@
|
||||||
"matrix-ril100": "matrix-ril100",
|
"matrix-ril100": "matrix-ril100",
|
||||||
"mms": "mms",
|
"mms": "mms",
|
||||||
"nix-darwin": "nix-darwin",
|
"nix-darwin": "nix-darwin",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixpkgs-darwin": "nixpkgs-darwin",
|
"nixpkgs-darwin": "nixpkgs-darwin",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"url-eater": "url-eater",
|
"url-eater": "url-eater",
|
||||||
|
@ -774,28 +718,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_8": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"url-eater": {
|
"url-eater": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"naersk": "naersk_4",
|
"naersk": "naersk_3",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs-unstable"
|
"nixpkgs-unstable"
|
||||||
],
|
],
|
||||||
"utils": "utils_5"
|
"utils": "utils_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710529176,
|
"lastModified": 1710529176,
|
||||||
|
@ -833,24 +762,6 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
|
||||||
"lastModified": 1694529238,
|
|
||||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"utils_3": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681202837,
|
"lastModified": 1681202837,
|
||||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||||
|
@ -865,9 +776,9 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"utils_4": {
|
"utils_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_6"
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1687709756,
|
"lastModified": 1687709756,
|
||||||
|
@ -883,9 +794,9 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"utils_5": {
|
"utils_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_7"
|
"systems": "systems_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701680307,
|
"lastModified": 1701680307,
|
||||||
|
@ -901,9 +812,9 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"utils_6": {
|
"utils_5": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_8"
|
"systems": "systems_7"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681202837,
|
"lastModified": 1681202837,
|
||||||
|
@ -921,8 +832,8 @@
|
||||||
},
|
},
|
||||||
"vampysite": {
|
"vampysite": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"utils": "utils_6"
|
"utils": "utils_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717180338,
|
"lastModified": 1717180338,
|
||||||
|
|
95
flake.nix
95
flake.nix
|
@ -31,11 +31,6 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
colorpickle = {
|
|
||||||
url = "github:AgathaSorceress/colorpickle";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
|
||||||
};
|
|
||||||
|
|
||||||
matrix-ril100 = {
|
matrix-ril100 = {
|
||||||
url = "git+https://git.lain.faith/sorceress/matrix-ril100";
|
url = "git+https://git.lain.faith/sorceress/matrix-ril100";
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
|
@ -73,7 +68,6 @@
|
||||||
mms,
|
mms,
|
||||||
helix,
|
helix,
|
||||||
url-eater,
|
url-eater,
|
||||||
colorpickle,
|
|
||||||
matrix-ril100,
|
matrix-ril100,
|
||||||
frq-friend,
|
frq-friend,
|
||||||
colmena,
|
colmena,
|
||||||
|
@ -97,7 +91,6 @@
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
colorpickle = colorpickle.packages.${final.system}.default;
|
|
||||||
frq-friend = frq-friend.packages.${final.system}.default;
|
frq-friend = frq-friend.packages.${final.system}.default;
|
||||||
vampysite = vampysite.packages.${final.system}.default;
|
vampysite = vampysite.packages.${final.system}.default;
|
||||||
matrix-ril100 = matrix-ril100.packages.${final.system}.default;
|
matrix-ril100 = matrix-ril100.packages.${final.system}.default;
|
||||||
|
@ -109,43 +102,6 @@
|
||||||
colmena.overlay
|
colmena.overlay
|
||||||
lix-module.overlays.default
|
lix-module.overlays.default
|
||||||
];
|
];
|
||||||
mkDesktop = hostname: {
|
|
||||||
imports = [
|
|
||||||
./common
|
|
||||||
./common/linux-specific.nix
|
|
||||||
./hosts/${hostname}/configuration.nix
|
|
||||||
./common/options.nix
|
|
||||||
(import "${home-manager}/nixos")
|
|
||||||
url-eater.nixosModules.default
|
|
||||||
colorpickle.nixosModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
deployment = {
|
|
||||||
targetUser = "root";
|
|
||||||
targetHost = hostname;
|
|
||||||
|
|
||||||
tags = [ "home" ];
|
|
||||||
|
|
||||||
allowLocalDeployment = true;
|
|
||||||
|
|
||||||
keys = {
|
|
||||||
"restic-password" = {
|
|
||||||
keyCommand = [
|
|
||||||
"cat"
|
|
||||||
"./secrets/restic-password"
|
|
||||||
];
|
|
||||||
destDir = "/var/lib/secrets/";
|
|
||||||
};
|
|
||||||
"restic-env" = {
|
|
||||||
keyCommand = [
|
|
||||||
"cat"
|
|
||||||
"./secrets/restic-env"
|
|
||||||
];
|
|
||||||
destDir = "/var/lib/secrets/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
colmena = {
|
colmena = {
|
||||||
|
@ -248,8 +204,42 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
ritual = mkDesktop "ritual";
|
tears = {
|
||||||
tears = mkDesktop "tears";
|
imports = [
|
||||||
|
./common
|
||||||
|
./common/linux-specific.nix
|
||||||
|
./hosts/tears/configuration.nix
|
||||||
|
./common/options.nix
|
||||||
|
(import "${home-manager}/nixos")
|
||||||
|
url-eater.nixosModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
deployment = {
|
||||||
|
targetUser = "root";
|
||||||
|
targetHost = "tears";
|
||||||
|
|
||||||
|
tags = [ "home" ];
|
||||||
|
|
||||||
|
allowLocalDeployment = true;
|
||||||
|
|
||||||
|
keys = {
|
||||||
|
"restic-password" = {
|
||||||
|
keyCommand = [
|
||||||
|
"cat"
|
||||||
|
"./secrets/restic-password"
|
||||||
|
];
|
||||||
|
destDir = "/var/lib/secrets/";
|
||||||
|
};
|
||||||
|
"restic-env" = {
|
||||||
|
keyCommand = [
|
||||||
|
"cat"
|
||||||
|
"./secrets/restic-env"
|
||||||
|
];
|
||||||
|
destDir = "/var/lib/secrets/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
darwinConfigurations."Agathas-Mac-mini" = nix-darwin.lib.darwinSystem {
|
darwinConfigurations."Agathas-Mac-mini" = nix-darwin.lib.darwinSystem {
|
||||||
pkgs = import nixpkgs-darwin rec {
|
pkgs = import nixpkgs-darwin rec {
|
||||||
|
@ -263,6 +253,18 @@
|
||||||
(import "${home-manager}/nix-darwin")
|
(import "${home-manager}/nix-darwin")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
darwinConfigurations."ritual" = nix-darwin.lib.darwinSystem {
|
||||||
|
pkgs = import nixpkgs-darwin rec {
|
||||||
|
system = "x86_64-darwin";
|
||||||
|
config.allowUnfree = true;
|
||||||
|
overlays = mkOverlays system config;
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
./common
|
||||||
|
./hosts/ritual/configuration.nix
|
||||||
|
(import "${home-manager}/nix-darwin")
|
||||||
|
];
|
||||||
|
};
|
||||||
devShells =
|
devShells =
|
||||||
let
|
let
|
||||||
patchedColmena =
|
patchedColmena =
|
||||||
|
@ -281,6 +283,7 @@
|
||||||
{
|
{
|
||||||
"x86_64-linux".default = patchedColmena "x86_64-linux";
|
"x86_64-linux".default = patchedColmena "x86_64-linux";
|
||||||
"aarch64-darwin".default = patchedColmena "aarch64-darwin";
|
"aarch64-darwin".default = patchedColmena "aarch64-darwin";
|
||||||
|
"x86_64-darwin".default = patchedColmena "x86_64-darwin";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,48 +1,7 @@
|
||||||
{ pkgs, lib, ... }:
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [ ../../common/fragments/graphical/darwin.nix ];
|
||||||
../../common/home_manager/common.nix
|
|
||||||
../../common/remote-builds.nix
|
|
||||||
../../common/fragments/graphical/barebones.nix
|
|
||||||
../../common/fragments/graphical/iosevka.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||||
services.nix-daemon.enable = true;
|
|
||||||
nix.settings = {
|
|
||||||
extra-nix-path = "nixpkgs=flake:nixpkgs";
|
|
||||||
substituters = [
|
|
||||||
"https://cache.nixos.org"
|
|
||||||
"https://cache.lix.systems"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
|
||||||
"cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
|
|
||||||
];
|
|
||||||
trusted-users = [ "@admin" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Needed for the nix-darwin environment even if zsh is not used.
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
|
|
||||||
users.users.agatha = {
|
|
||||||
name = "agatha";
|
|
||||||
home = lib.mkForce "/Users/agatha";
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
|
||||||
(nerdfonts.override {
|
|
||||||
fonts = [
|
|
||||||
"DaddyTimeMono"
|
|
||||||
"NerdFontsSymbolsOnly"
|
|
||||||
];
|
|
||||||
})
|
|
||||||
fira-code
|
|
||||||
fira-code-symbols
|
|
||||||
font-awesome_5
|
|
||||||
iosevka
|
|
||||||
siji
|
|
||||||
];
|
|
||||||
|
|
||||||
system.stateVersion = 1;
|
system.stateVersion = 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,83 +1,7 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [ ../../common/fragments/graphical/darwin.nix ];
|
||||||
./hardware-configuration.nix
|
|
||||||
../../common/fragments/graphical
|
|
||||||
../../common/remote-builds.nix
|
|
||||||
../../common/home_manager/common.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# Bootloader.
|
nixpkgs.hostPlatform = "x86_64-darwin";
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
|
||||||
|
|
||||||
boot.loader.systemd-boot.configurationLimit = 5;
|
system.stateVersion = 1;
|
||||||
|
|
||||||
# Setup keyfile
|
|
||||||
boot.initrd.secrets = {
|
|
||||||
"/crypto_keyfile.bin" = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "ritual";
|
|
||||||
|
|
||||||
# Enable networking
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
podman = {
|
|
||||||
enable = true;
|
|
||||||
dockerCompat = true;
|
|
||||||
defaultNetwork.settings.dns_enabled = true;
|
|
||||||
};
|
|
||||||
oci-containers.backend = "podman";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Don't suspend when closed and plugged into power
|
|
||||||
services.logind.lidSwitchExternalPower = "lock";
|
|
||||||
|
|
||||||
home-manager.users.agatha = {
|
|
||||||
xsession.windowManager.bspwm = {
|
|
||||||
monitors = {
|
|
||||||
eDP-1 = [
|
|
||||||
"I"
|
|
||||||
"II"
|
|
||||||
"III"
|
|
||||||
"IV"
|
|
||||||
"V"
|
|
||||||
"VI"
|
|
||||||
"VII"
|
|
||||||
"VIII"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
rules = {
|
|
||||||
"Element".desktop = "II";
|
|
||||||
"TelegramDesktop".desktop = "III";
|
|
||||||
"dino".desktop = "III";
|
|
||||||
"Cider".desktop = "IV";
|
|
||||||
"Geary".desktop = "V";
|
|
||||||
"firefox" = {
|
|
||||||
desktop = "I";
|
|
||||||
state = "tiled";
|
|
||||||
follow = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.polybar = {
|
|
||||||
script = "polybar right &";
|
|
||||||
settings."bar/right".monitor = "\${env:MONITOR:eDP-1}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.graphical.theme.name = "blue";
|
|
||||||
|
|
||||||
services.syncthing.dataDir = "/home/agatha/syncthing";
|
|
||||||
|
|
||||||
# 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 = "22.11"; # Did you read the comment?
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,33 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, modulesPath, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules =
|
boot.initrd.availableKernelModules = [
|
||||||
[ "xhci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ];
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
"sdhci_pci"
|
||||||
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [
|
||||||
boot.extraModulePackages = [ ];
|
"kvm-intel"
|
||||||
|
"wl"
|
||||||
|
];
|
||||||
|
boot.extraModulePackages = with config.boot.kernelPackages; [ broadcom_sta ];
|
||||||
|
|
||||||
boot.initrd.systemd = {
|
boot.initrd.systemd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
emergencyAccess =
|
emergencyAccess = "$2b$05$eOIXFST5/9G6vAFIZDLGfuJV7CV1B26YmRMAFRstyRHwvBNFSN6Im";
|
||||||
"$2b$05$eOIXFST5/9G6vAFIZDLGfuJV7CV1B26YmRMAFRstyRHwvBNFSN6Im";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.supportedFilesystems = [ "ntfs" ];
|
boot.supportedFilesystems = [ "ntfs" ];
|
||||||
|
@ -26,22 +38,18 @@
|
||||||
options = [ "subvol=@" ];
|
options = [ "subvol=@" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.initrd.luks.devices."luks-8807caf4-ae17-4b39-93bd-ddfa1f994a47".device =
|
boot.initrd.luks.devices."luks-8807caf4-ae17-4b39-93bd-ddfa1f994a47".device = "/dev/disk/by-uuid/8807caf4-ae17-4b39-93bd-ddfa1f994a47";
|
||||||
"/dev/disk/by-uuid/8807caf4-ae17-4b39-93bd-ddfa1f994a47";
|
|
||||||
|
|
||||||
# Enable swap on luks
|
# Enable swap on luks
|
||||||
boot.initrd.luks.devices."luks-c503653d-47de-4914-9e41-d13d14a6cc22".device =
|
boot.initrd.luks.devices."luks-c503653d-47de-4914-9e41-d13d14a6cc22".device = "/dev/disk/by-uuid/c503653d-47de-4914-9e41-d13d14a6cc22";
|
||||||
"/dev/disk/by-uuid/c503653d-47de-4914-9e41-d13d14a6cc22";
|
boot.initrd.luks.devices."luks-c503653d-47de-4914-9e41-d13d14a6cc22".keyFile = "/crypto_keyfile.bin";
|
||||||
boot.initrd.luks.devices."luks-c503653d-47de-4914-9e41-d13d14a6cc22".keyFile =
|
|
||||||
"/crypto_keyfile.bin";
|
|
||||||
|
|
||||||
fileSystems."/boot/efi" = {
|
fileSystems."/boot/efi" = {
|
||||||
device = "/dev/disk/by-uuid/9A5C-CE17";
|
device = "/dev/disk/by-uuid/9A5C-CE17";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices =
|
swapDevices = [ { device = "/dev/disk/by-uuid/e20a4e05-44a6-4895-84ef-e3d176931b25"; } ];
|
||||||
[{ device = "/dev/disk/by-uuid/e20a4e05-44a6-4895-84ef-e3d176931b25"; }];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
@ -51,8 +59,9 @@
|
||||||
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
|
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
|
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
# environment.systemPackages = with pkgs; [ b43Firmware_5_1_138 ];
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
hardware.cpu.intel.updateMicrocode =
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../common/fragments/graphical/barebones.nix
|
../../common/fragments/graphical
|
||||||
../../common/fragments/virt.nix
|
../../common/fragments/virt.nix
|
||||||
../../common/home_manager/common.nix
|
../../common/home_manager/common.nix
|
||||||
];
|
];
|
||||||
|
|
Loading…
Reference in New Issue