idk
This commit is contained in:
parent
f904bbb423
commit
5f64523982
8 changed files with 506 additions and 477 deletions
BIN
Snapchat-941139056.jpg
Normal file
BIN
Snapchat-941139056.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 546 KiB |
|
|
@ -1,22 +1,18 @@
|
||||||
{ inputs, pkgs, options, config, ... }:
|
{ inputs, pkgs, options, config, lib, ... }:
|
||||||
let
|
|
||||||
hostName = "clhickey-nixos";
|
|
||||||
username = "clhickey";
|
|
||||||
wireguardInterface = "wg0";
|
|
||||||
wireguardIP = "10.100.0.3";
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
"${inputs.home-manager}/nixos"
|
"${inputs.home-manager}/nixos"
|
||||||
inputs.mapnix.nixosModules.default
|
inputs.mapnix.nixosModules.default
|
||||||
|
./cos.nix
|
||||||
|
./docker-kubernetes.nix
|
||||||
|
./mainWireguard.nix
|
||||||
|
./hyprland.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
services.mapnix = {
|
cos.username = "clhickey";
|
||||||
openstreetmap-carto-src = inputs.osm-bikeability;
|
cos.hostName = "clhickey-nixos";
|
||||||
enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
loader = {
|
loader = {
|
||||||
|
|
@ -33,40 +29,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking = {
|
|
||||||
inherit hostName;
|
|
||||||
networkmanager.enable = true;
|
|
||||||
firewall = {
|
|
||||||
interfaces = {
|
|
||||||
${wireguardInterface} = {
|
|
||||||
allowedUDPPorts = [
|
|
||||||
config.networking.wireguard.interfaces.${wireguardInterface}.listenPort
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
wireguard = {
|
|
||||||
enable = true;
|
|
||||||
interfaces = {
|
|
||||||
${wireguardInterface} = {
|
|
||||||
ips = [ "${wireguardIP}/24" ];
|
|
||||||
listenPort = 51820;
|
|
||||||
|
|
||||||
privateKeyFile = "/home/${username}/wireguard-keys/private";
|
|
||||||
|
|
||||||
peers = [
|
|
||||||
{
|
|
||||||
publicKey = "raOzdkhoag+sN2/KXz18F9ncmeTWhdmPJxQJkqsJ7FI=";
|
|
||||||
allowedIPs = [ "10.100.0.0/24" ];
|
|
||||||
endpoint = "50.116.49.95:51820";
|
|
||||||
persistentKeepalive = 25;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
time.timeZone = "America/New_York";
|
time.timeZone = "America/New_York";
|
||||||
|
|
||||||
i18n = {
|
i18n = {
|
||||||
|
|
@ -82,67 +44,75 @@ in
|
||||||
LC_TELEPHONE = "en_US.UTF-8";
|
LC_TELEPHONE = "en_US.UTF-8";
|
||||||
LC_TIME = "en_US.UTF-8";
|
LC_TIME = "en_US.UTF-8";
|
||||||
};
|
};
|
||||||
inputMethod = {
|
|
||||||
enable = true;
|
|
||||||
type = "fcitx5";
|
|
||||||
fcitx5 = {
|
|
||||||
waylandFrontend = true;
|
|
||||||
addons = with pkgs; [
|
|
||||||
fcitx5-gtk
|
|
||||||
fcitx5-configtool
|
|
||||||
fcitx5-mozc
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = config.cos.hostName;
|
||||||
|
networkmanager.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.mapnix = {
|
||||||
|
openstreetmap-carto-src = inputs.osm-bikeability;
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
cos.mainWireguard = {
|
||||||
|
enable = true;
|
||||||
|
ip = "10.100.0.3";
|
||||||
|
privateKeyFile = "/home/${config.cos.username}/wireguard-keys/private";
|
||||||
|
};
|
||||||
|
|
||||||
|
cos.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
wallpaper = builtins.toString ./Snapchat-941139056.jpg;
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
|
||||||
|
# For languini
|
||||||
|
networking.firewall.interfaces.${config.cos.mainWireguard.interface}.allowedTCPPorts = [
|
||||||
|
8000
|
||||||
|
8080
|
||||||
|
];
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
xserver = {
|
openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xkb = {
|
settings = {
|
||||||
layout = "us";
|
PasswordAuthentication = true;
|
||||||
variant = "";
|
AllowUsers = null;
|
||||||
};
|
};
|
||||||
|
listenAddresses = [
|
||||||
|
{
|
||||||
|
port = 22;
|
||||||
|
addr = config.cos.mainWireguard.ip;
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
displayManager.sddm.enable = true;
|
|
||||||
printing.enable = true;
|
|
||||||
pulseaudio.enable = false;
|
|
||||||
pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
gvfs.enable = true; # for sftp
|
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
libvirtd.enable = true;
|
waydroid = {
|
||||||
spiceUSBRedirection.enable = true;
|
enable = false;
|
||||||
docker = {
|
};
|
||||||
|
libvirtd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
rootless = {
|
qemu = {
|
||||||
enable = true;
|
swtpm.enable = true;
|
||||||
setSocketVariable = true;
|
ovmf.enable = true;
|
||||||
|
ovmf.packages = [ pkgs.OVMFFull.fd ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# For kubernetes
|
virtualbox.host = {
|
||||||
containerd = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableKvm = true;
|
||||||
|
addNetworkInterface = false;
|
||||||
|
enableExtensionPack = true;
|
||||||
};
|
};
|
||||||
|
spiceUSBRedirection.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
users.users.${config.cos.username} = {
|
||||||
bluetooth.enable = true;
|
|
||||||
opentabletdriver.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
security = {
|
|
||||||
rtkit.enable = true;
|
|
||||||
polkit.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.${username} = {
|
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "Clayton Lopez Hickey";
|
description = "Clayton Lopez Hickey";
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
|
|
@ -162,6 +132,10 @@ in
|
||||||
"nix-command"
|
"nix-command"
|
||||||
"flakes"
|
"flakes"
|
||||||
];
|
];
|
||||||
|
nix.settings.trusted-users = [
|
||||||
|
"root"
|
||||||
|
"@wheel"
|
||||||
|
];
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
|
|
@ -177,9 +151,8 @@ in
|
||||||
htop
|
htop
|
||||||
helvum
|
helvum
|
||||||
libreoffice-fresh
|
libreoffice-fresh
|
||||||
obsidian
|
|
||||||
anki-bin
|
anki-bin
|
||||||
gimp
|
gimp3
|
||||||
audacity
|
audacity
|
||||||
ffmpeg
|
ffmpeg
|
||||||
zoom-us
|
zoom-us
|
||||||
|
|
@ -201,35 +174,31 @@ in
|
||||||
inputs.penn-nix.packages.x86_64-linux.waypoint-client
|
inputs.penn-nix.packages.x86_64-linux.waypoint-client
|
||||||
inputs.cnvim.packages.x86_64-linux.default
|
inputs.cnvim.packages.x86_64-linux.default
|
||||||
osu-lazer-bin
|
osu-lazer-bin
|
||||||
wl-clipboard
|
|
||||||
thunderbird-bin
|
thunderbird-bin
|
||||||
itch
|
itch
|
||||||
element-desktop
|
element-desktop
|
||||||
gh
|
gh
|
||||||
vscode-fhs
|
|
||||||
code-cursor
|
code-cursor
|
||||||
firefox
|
firefox
|
||||||
popsicle
|
popsicle
|
||||||
kdePackages.kget
|
|
||||||
nixfmt-rfc-style
|
nixfmt-rfc-style
|
||||||
graphviz
|
graphviz
|
||||||
wdisplays
|
|
||||||
pwvucontrol
|
|
||||||
alacritty
|
alacritty
|
||||||
pcmanfm
|
|
||||||
kdePackages.okular
|
|
||||||
prismlauncher
|
prismlauncher
|
||||||
kdePackages.ark
|
google-chrome
|
||||||
wireguard-tools
|
trilium-next-desktop
|
||||||
# For pennlabs
|
joplin-desktop
|
||||||
kind
|
sshfs
|
||||||
kubectl
|
unityhub
|
||||||
awscli2
|
man-pages
|
||||||
k9s
|
man-pages-posix
|
||||||
|
vulkan-tools
|
||||||
|
wireshark
|
||||||
|
dotnetCorePackages.sdk_9_0_1xx-bin # for unit dev
|
||||||
|
vscode-fhs
|
||||||
];
|
];
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
EDITOR = "${inputs.cnvim.packages.x86_64-linux.default}/bin/nvim";
|
EDITOR = "${inputs.cnvim.packages.x86_64-linux.default}/bin/nvim";
|
||||||
CONTAINERD_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE = 1;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -260,6 +229,20 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.jdk;
|
package = pkgs.jdk;
|
||||||
};
|
};
|
||||||
|
#vscode = {
|
||||||
|
# enable = true;
|
||||||
|
# package = pkgs.vscode-fhs;
|
||||||
|
# extensions = with pkgs.vscode-extensions; [
|
||||||
|
# # For Unity & C#
|
||||||
|
# visualstudiotoolsforunity.vstuc
|
||||||
|
# ms-dotnettools.csdevkit
|
||||||
|
# ms-dotnettools.vscode-dotnet-runtime
|
||||||
|
# ms-dotnettools.csharp
|
||||||
|
|
||||||
|
# # Personalization
|
||||||
|
# vscodevim.vim
|
||||||
|
# ];
|
||||||
|
#};
|
||||||
nix-ld = {
|
nix-ld = {
|
||||||
enable = true;
|
enable = true;
|
||||||
libraries = options.programs.nix-ld.libraries.default ++ [
|
libraries = options.programs.nix-ld.libraries.default ++ [
|
||||||
|
|
@ -273,204 +256,16 @@ in
|
||||||
};
|
};
|
||||||
virt-manager.enable = true;
|
virt-manager.enable = true;
|
||||||
ladybird = {
|
ladybird = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
git = {
|
git = {
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
hyprland = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.${username} = { pkgs, ... }: {
|
documentation.dev.enable = true;
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
plugins = [
|
|
||||||
#pkgs.hyprlandPlugins.hy3
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
env = [
|
|
||||||
# Base on https://wiki.hyprland.org/Configuring/Environment-variables/
|
|
||||||
"GDK_BACKEND,wayland,x11,*"
|
|
||||||
"QT_QPA_PLATFORM,wayland;xcb"
|
|
||||||
"SDL_VIDEODRIVER,wayland"
|
|
||||||
"CLUTTER_BACKEND,wayland"
|
|
||||||
];
|
|
||||||
"$terminal" = "${pkgs.alacritty}/bin/alacritty";
|
|
||||||
"exec-once" = [
|
|
||||||
"${pkgs.waybar}/bin/waybar"
|
|
||||||
"${pkgs.fcitx5}/bin/fcitx5 -r -s 5"
|
|
||||||
"${pkgs.hypridle}/bin/hypridle"
|
|
||||||
];
|
|
||||||
"$mod" = "SUPER";
|
|
||||||
bind = [
|
|
||||||
"$mod, RETURN, exec, $terminal"
|
|
||||||
"$mod, Q, killactive"
|
|
||||||
"$mod&SHIFT, Q, forcekillactive"
|
|
||||||
"$mod, E, exec, ${pkgs.wofi}/bin/wofi --show run"
|
|
||||||
"$mod, F, fullscreen, 0"
|
|
||||||
"$mod&SHIFT, W, movewindow, u"
|
|
||||||
"$mod&SHIFT, A, movewindow, l"
|
|
||||||
"$mod&SHIFT, S, movewindow, d"
|
|
||||||
"$mod&SHIFT, D, movewindow, r"
|
|
||||||
"$mod, W, movefocus, u"
|
|
||||||
"$mod, A, movefocus, l"
|
|
||||||
"$mod, S, movefocus, d"
|
|
||||||
"$mod, D, movefocus, r"
|
|
||||||
"$mod, H, moveactive, -25 0"
|
|
||||||
"$mod, J, moveactive, 0 25"
|
|
||||||
"$mod, K, moveactive, 0 -25"
|
|
||||||
"$mod, L, moveactive, 25 0"
|
|
||||||
"$mod&SHIFT, H, resizeactive, -25 0"
|
|
||||||
"$mod&SHIFT, J, resizeactive, 0 -25"
|
|
||||||
"$mod&SHIFT, K, resizeactive, 0 25"
|
|
||||||
"$mod&SHIFT, L, resizeactive, 25 0"
|
|
||||||
"$mod, space, togglefloating"
|
|
||||||
"$mod, G, togglegroup"
|
|
||||||
"$mod&SHIFT, G, moveoutofgroup"
|
|
||||||
"$mod&CTRL, W, moveintogroup, u"
|
|
||||||
"$mod&CTRL, A, moveintogroup, l"
|
|
||||||
"$mod&CTRL, S, moveintogroup, d"
|
|
||||||
"$mod&CTRL, D, moveintogroup, r"
|
|
||||||
"$mod, tab, changegroupactive, f"
|
|
||||||
"$mod&SHIFT, tab, changegroupactive, b"
|
|
||||||
"$mod&CTRL, D, movegroupwindow, f"
|
|
||||||
"$mod&CTRL, A, movegroupwindow, b"
|
|
||||||
", XF86AudioRaiseVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+"
|
|
||||||
", XF86AudioLowerVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
|
|
||||||
", XF86AudioMute, exec, ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
|
||||||
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
|
|
||||||
", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous"
|
|
||||||
", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next"
|
|
||||||
", Print, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" -t png - | ${pkgs.wl-clipboard}/bin/wl-copy -t image/png"
|
|
||||||
"$mod&SHIFT, V, exec, ${pkgs.wl-clipboard}/bin/wl-paste | ${pkgs.coreutils}/bin/tee \"$(${pkgs.zenity}/bin/zenity --file-selection --save --confirm-overwrite)\""
|
|
||||||
]++ (
|
|
||||||
builtins.concatLists (
|
|
||||||
builtins.genList (i:
|
|
||||||
[
|
|
||||||
"$mod, code:1${toString i}, workspace, ${toString (i+1)}"
|
|
||||||
"$mod SHIFT, code:1${toString i}, movetoworkspacesilent, ${toString (i+1)}"
|
|
||||||
]
|
|
||||||
)
|
|
||||||
9
|
|
||||||
)
|
|
||||||
)++ [
|
|
||||||
"$mod, code:19, workspace, 10"
|
|
||||||
"$mod SHIFT, code:19, movetoworkspacesilent, 10"
|
|
||||||
];
|
|
||||||
monitor = "eDP-1, 2256x1504, 0x0, 1.333333";
|
|
||||||
general = {
|
|
||||||
gaps_in = 0;
|
|
||||||
gaps_out = 0;
|
|
||||||
};
|
|
||||||
input = {
|
|
||||||
accel_profile = "flat";
|
|
||||||
sensitivity = 1.0;
|
|
||||||
};
|
|
||||||
#xwayland = {
|
|
||||||
# force_zero_scaling = true;
|
|
||||||
#};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
hyprpolkitagent.enable = true;
|
|
||||||
|
|
||||||
hypridle = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.waybar = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
mainBar = {
|
|
||||||
height = 30;
|
|
||||||
spacing = 4;
|
|
||||||
"modules-left" = [
|
|
||||||
"hyprland/workspaces"
|
|
||||||
"sway/mode"
|
|
||||||
"sway/scratchpad"
|
|
||||||
"custom/media"
|
|
||||||
];
|
|
||||||
"modules-center" = [
|
|
||||||
"sway/window"
|
|
||||||
];
|
|
||||||
"modules-right" = [
|
|
||||||
"mpd"
|
|
||||||
"pulseaudio"
|
|
||||||
"network"
|
|
||||||
"cpu"
|
|
||||||
"memory"
|
|
||||||
"temperature"
|
|
||||||
"backlight"
|
|
||||||
"keyboard-state"
|
|
||||||
"sway/language"
|
|
||||||
"battery"
|
|
||||||
"clock"
|
|
||||||
"tray"
|
|
||||||
];
|
|
||||||
pulseaudio = {
|
|
||||||
"format" = "{volume}% {icon} {format_source}";
|
|
||||||
"format-bluetooth" = "{volume}% {icon} {format_source}";
|
|
||||||
"format-bluetooth-muted" = " {icon} {format_source}";
|
|
||||||
"format-muted" = " {format_source}";
|
|
||||||
"format-source" = "{volume}% ";
|
|
||||||
"format-source-muted" = "";
|
|
||||||
"format-icons" = {
|
|
||||||
"headphone" = "";
|
|
||||||
"hands-free" = "";
|
|
||||||
"headset" = "";
|
|
||||||
"phone" = "";
|
|
||||||
"portable" = "";
|
|
||||||
"car" = "";
|
|
||||||
"default" = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"on-click" = "pavucontrol";
|
|
||||||
};
|
|
||||||
network = {
|
|
||||||
"format-wifi" = "{essid} ({signalStrength}%)";
|
|
||||||
"format-ethernet" = "{ipaddr}/{cidr}";
|
|
||||||
"tooltip-format" = "{ifname} via {gwaddr}";
|
|
||||||
"format-linked" = "{ifname} (No IP)";
|
|
||||||
"format-disconnected" = "Disconnected";
|
|
||||||
"format-alt" = "{ifname}: {ipaddr}/{cidr}";
|
|
||||||
};
|
|
||||||
battery = {
|
|
||||||
states = {
|
|
||||||
warning = 30;
|
|
||||||
critical = 15;
|
|
||||||
};
|
|
||||||
format = "{capacity}% {icon}";
|
|
||||||
"format-charging" = "{capacity}% ";
|
|
||||||
"format-plugged" = "{capacity}% ";
|
|
||||||
"format-alt" = "{time} {icon}";
|
|
||||||
"format-icons" = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
};
|
|
||||||
clock = {
|
|
||||||
"tooltip-format" = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
|
||||||
"format-alt" = "{:%Y-%m-%d}";
|
|
||||||
format = "{:%H:%M:%S}";
|
|
||||||
interval = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
home-manager.users.${config.cos.username} = { pkgs, ... }: {
|
||||||
home.stateVersion = "24.11";
|
home.stateVersion = "24.11";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
11
cos.nix
Normal file
11
cos.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
options.cos = {
|
||||||
|
username = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
hostName = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
27
docker-kubernetes.nix
Normal file
27
docker-kubernetes.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
virtualisation = {
|
||||||
|
docker = {
|
||||||
|
enable = true;
|
||||||
|
rootless = {
|
||||||
|
enable = true;
|
||||||
|
setSocketVariable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# For kubernetes
|
||||||
|
containerd = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# For pennlabs
|
||||||
|
kind
|
||||||
|
kubectl
|
||||||
|
awscli2
|
||||||
|
k9s
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
CONTAINERD_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE = 1;
|
||||||
|
};
|
||||||
|
}
|
||||||
209
flake.lock
generated
209
flake.lock
generated
|
|
@ -8,11 +8,11 @@
|
||||||
"nixvimFlake": "nixvimFlake"
|
"nixvimFlake": "nixvimFlake"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742749395,
|
"lastModified": 1757189331,
|
||||||
"narHash": "sha256-0NKRMQKQUt/iTOVMrsbbLgGWctfAo0FKchLZ0EEHcFU=",
|
"narHash": "sha256-AQXcrJyuR4wUoSQYMZJHa3rcFYv/bUL6w6rk4C7LbEo=",
|
||||||
"owner": "clay53",
|
"owner": "clay53",
|
||||||
"repo": "cnvim",
|
"repo": "cnvim",
|
||||||
"rev": "79327b238f8722683a6fbc02759e40569a358799",
|
"rev": "17f85dbb8c74f6c24db0da7e25455b39034edd54",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -21,42 +21,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"devshell": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"cnvim",
|
|
||||||
"nixvimFlake",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1735644329,
|
|
||||||
"narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "devshell",
|
|
||||||
"rev": "f7795ede5b02664b57035b3b757876703e2c3eac",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "devshell",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733328505,
|
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
|
||||||
"revCount": 69,
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
|
|
@ -66,11 +30,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738453229,
|
"lastModified": 1754487366,
|
||||||
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
|
"narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
|
"rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -99,7 +63,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
|
@ -115,91 +79,18 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"git-hooks": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": [
|
|
||||||
"cnvim",
|
|
||||||
"nixvimFlake",
|
|
||||||
"flake-compat"
|
|
||||||
],
|
|
||||||
"gitignore": "gitignore",
|
|
||||||
"nixpkgs": [
|
|
||||||
"cnvim",
|
|
||||||
"nixvimFlake",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1737465171,
|
|
||||||
"narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"cnvim",
|
|
||||||
"nixvimFlake",
|
|
||||||
"git-hooks",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1709087332,
|
|
||||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"cnvim",
|
|
||||||
"nixvimFlake",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738878603,
|
"lastModified": 1756669196,
|
||||||
"narHash": "sha256-fmhq8B3MvQLawLbMO+LWLcdC2ftLMmwSk+P29icJ3tE=",
|
"narHash": "sha256-E/l+K8WIjbH5AUv/B17RX1hzx1CsuPaT86g1xDwiYY8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "433799271274c9f2ab520a49527ebfe2992dcfbd",
|
"rev": "b4b5f008d772c0e8e9c420cfa0d240a447747e0a",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1746287478,
|
|
||||||
"narHash": "sha256-z3HiHR2CNAdwyZTWPM2kkzhE1gD1G6ExPxkaiQfNh7s=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "75268f62525920c4936404a056f37b91e299c97e",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -224,16 +115,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729958008,
|
"lastModified": 1754860581,
|
||||||
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
|
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"repo": "ixx",
|
"repo": "ixx",
|
||||||
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
|
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"ref": "v0.0.6",
|
"ref": "v0.1.1",
|
||||||
"repo": "ixx",
|
"repo": "ixx",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
@ -256,35 +147,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-darwin": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"cnvim",
|
|
||||||
"nixvimFlake",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1738743987,
|
|
||||||
"narHash": "sha256-O3bnAfsObto6l2tQOmQlrO6Z2kD6yKwOWfs7pA0CpOc=",
|
|
||||||
"owner": "lnl7",
|
|
||||||
"repo": "nix-darwin",
|
|
||||||
"rev": "ae406c04577ff9a64087018c79b4fdc02468c87c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "lnl7",
|
|
||||||
"repo": "nix-darwin",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746232882,
|
"lastModified": 1756542300,
|
||||||
"narHash": "sha256-MHmBH2rS8KkRRdoU/feC/dKbdlMkcNkB5mwkuipVHeQ=",
|
"narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7a2622e2c0dbad5c4493cb268aba12896e28b008",
|
"rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -312,25 +181,20 @@
|
||||||
},
|
},
|
||||||
"nixvimFlake": {
|
"nixvimFlake": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devshell": "devshell",
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"git-hooks": "git-hooks",
|
|
||||||
"home-manager": "home-manager",
|
|
||||||
"nix-darwin": "nix-darwin",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"cnvim",
|
"cnvim",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nuschtosSearch": "nuschtosSearch",
|
"nuschtosSearch": "nuschtosSearch",
|
||||||
"treefmt-nix": "treefmt-nix"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739353096,
|
"lastModified": 1757176284,
|
||||||
"narHash": "sha256-w/T2uYCoq4k6K46GX2CMGWsKfMvcqnxC41LIgnvGifE=",
|
"narHash": "sha256-j4SBmYsARwNG0DHljZ1uzZlGqCIU5fzCMA2g+GjD0xw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "78b6f8e1e5b37a7789216e17a96ebc117660f0e7",
|
"rev": "7afdd40b96c9168aa4cb49b86fc67eccd441cae5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -350,11 +214,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738508923,
|
"lastModified": 1755555503,
|
||||||
"narHash": "sha256-4DaDrQDAIxlWhTjH6h/+xfG05jt3qDZrZE/7zDLQaS4=",
|
"narHash": "sha256-WiOO7GUOsJ4/DoMy2IC5InnqRDSo2U11la48vCCIjjY=",
|
||||||
"owner": "NuschtOS",
|
"owner": "NuschtOS",
|
||||||
"repo": "search",
|
"repo": "search",
|
||||||
"rev": "86e2038290859006e05ca7201425ea5b5de4aecb",
|
"rev": "6f3efef888b92e6520f10eae15b86ff537e1d2ea",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -417,7 +281,7 @@
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"cnvim": "cnvim",
|
"cnvim": "cnvim",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager",
|
||||||
"mapnix": "mapnix",
|
"mapnix": "mapnix",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"osm-bikeability": "osm-bikeability",
|
"osm-bikeability": "osm-bikeability",
|
||||||
|
|
@ -454,25 +318,18 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix": {
|
"systems_3": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"cnvim",
|
|
||||||
"nixvimFlake",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738680491,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-8X7tR3kFGkE7WEF5EXVkt4apgaN85oHZdoTGutCFs6I=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
"owner": "numtide",
|
"owner": "nix-systems",
|
||||||
"repo": "treefmt-nix",
|
"repo": "default",
|
||||||
"rev": "64dbb922d51a42c0ced6a7668ca008dded61c483",
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "nix-systems",
|
||||||
"repo": "treefmt-nix",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,11 +25,11 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/home" =
|
fileSystems."/home" =
|
||||||
{ device = "/dev/disk/by-uuid/48efcacd-13e3-42fa-8691-0343e3d075b3";
|
{ device = "/dev/disk/by-uuid/7afa7b67-4486-43a7-b58b-a7548beb4e20";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.initrd.luks.devices."luks-8f683174-f693-4185-a018-bfdbeb80b411".device = "/dev/disk/by-uuid/8f683174-f693-4185-a018-bfdbeb80b411";
|
boot.initrd.luks.devices."luks-c705edf8-6321-4956-8780-f6c00a62e77e".device = "/dev/disk/by-uuid/c705edf8-6321-4956-8780-f6c00a62e77e";
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
|
@ -42,4 +42,8 @@
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
281
hyprland.nix
Normal file
281
hyprland.nix
Normal file
|
|
@ -0,0 +1,281 @@
|
||||||
|
{config, pkgs, lib, ...}:
|
||||||
|
let cfg = config.cos.hyprland; in
|
||||||
|
{
|
||||||
|
options.cos.hyprland = {
|
||||||
|
enable = lib.mkEnableOption "preconfigured Hyprland";
|
||||||
|
wallpaper = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
programs.hyprland.enable = true;
|
||||||
|
|
||||||
|
services.displayManager.sddm.enable = true;
|
||||||
|
services.displayManager.sddm.wayland.enable = true;
|
||||||
|
services.printing.enable = true;
|
||||||
|
services.pulseaudio.enable = false;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
services.blueman.enable = lib.mkIf config.hardware.bluetooth.enable true;
|
||||||
|
|
||||||
|
hardware.opentabletdriver.enable = true;
|
||||||
|
|
||||||
|
security = {
|
||||||
|
rtkit.enable = true;
|
||||||
|
polkit.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
i18n.inputMethod = {
|
||||||
|
enable = true;
|
||||||
|
type = "fcitx5";
|
||||||
|
fcitx5 = {
|
||||||
|
waylandFrontend = true;
|
||||||
|
addons = with pkgs; [
|
||||||
|
fcitx5-gtk
|
||||||
|
fcitx5-configtool
|
||||||
|
fcitx5-mozc
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
wl-clipboard
|
||||||
|
kdePackages.kget
|
||||||
|
wdisplays
|
||||||
|
pwvucontrol
|
||||||
|
pcmanfm
|
||||||
|
kdePackages.okular
|
||||||
|
kdePackages.ark
|
||||||
|
kdePackages.gwenview
|
||||||
|
yaru-theme
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.users.${config.cos.username} = {pkgs, ...}: {
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [
|
||||||
|
#pkgs.hyprlandPlugins.hy3
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
env = [
|
||||||
|
# Base on https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||||
|
"GDK_BACKEND,wayland,x11,*"
|
||||||
|
"QT_QPA_PLATFORM,wayland;xcb"
|
||||||
|
"SDL_VIDEODRIVER,wayland"
|
||||||
|
"CLUTTER_BACKEND,wayland"
|
||||||
|
"XCURSOR_THEME,Yaru"
|
||||||
|
"XCURSOR_SIZE,32"
|
||||||
|
"GDK_SCALE,1.333333"
|
||||||
|
];
|
||||||
|
"$terminal" = "${pkgs.alacritty}/bin/alacritty";
|
||||||
|
"exec-once" = [
|
||||||
|
"${pkgs.waybar}/bin/waybar"
|
||||||
|
"fcitx5 -d"
|
||||||
|
"hyprpaper"
|
||||||
|
"hypridle"
|
||||||
|
"${pkgs.hyprland}/bin/hyprctl setcursor Yaru 24"
|
||||||
|
"${pkgs.nextcloud-client}/bin/nextcloud"
|
||||||
|
"hyprlock"
|
||||||
|
];
|
||||||
|
"$mod" = "SUPER";
|
||||||
|
bind = [
|
||||||
|
"$mod, RETURN, exec, $terminal"
|
||||||
|
"$mod, Q, killactive"
|
||||||
|
"$mod&SHIFT, Q, forcekillactive"
|
||||||
|
"$mod, E, exec, ${pkgs.wofi}/bin/wofi --show run"
|
||||||
|
"$mod, F, fullscreen, 3"
|
||||||
|
"$mod&SHIFT, W, movewindow, u"
|
||||||
|
"$mod&SHIFT, A, movewindow, l"
|
||||||
|
"$mod&SHIFT, S, movewindow, d"
|
||||||
|
"$mod&SHIFT, D, movewindow, r"
|
||||||
|
"$mod, W, movefocus, u"
|
||||||
|
"$mod, A, movefocus, l"
|
||||||
|
"$mod, S, movefocus, d"
|
||||||
|
"$mod, D, movefocus, r"
|
||||||
|
"$mod, H, moveactive, -25 0"
|
||||||
|
"$mod, J, moveactive, 0 25"
|
||||||
|
"$mod, K, moveactive, 0 -25"
|
||||||
|
"$mod, L, moveactive, 25 0"
|
||||||
|
"$mod&SHIFT, H, resizeactive, -25 0"
|
||||||
|
"$mod&SHIFT, J, resizeactive, 0 -25"
|
||||||
|
"$mod&SHIFT, K, resizeactive, 0 25"
|
||||||
|
"$mod&SHIFT, L, resizeactive, 25 0"
|
||||||
|
"$mod, space, togglefloating"
|
||||||
|
"$mod, G, togglegroup"
|
||||||
|
"$mod&SHIFT, G, moveoutofgroup"
|
||||||
|
"$mod&CTRL, W, moveintogroup, u"
|
||||||
|
"$mod&CTRL, A, moveintogroup, l"
|
||||||
|
"$mod&CTRL, S, moveintogroup, d"
|
||||||
|
"$mod&CTRL, D, moveintogroup, r"
|
||||||
|
"$mod, tab, changegroupactive, f"
|
||||||
|
"$mod&SHIFT, tab, changegroupactive, b"
|
||||||
|
"$mod&CTRL, D, movegroupwindow, f"
|
||||||
|
"$mod&CTRL, A, movegroupwindow, b"
|
||||||
|
", XF86AudioRaiseVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+"
|
||||||
|
", XF86AudioLowerVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
|
||||||
|
", XF86AudioMute, exec, ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
|
||||||
|
", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous"
|
||||||
|
", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next"
|
||||||
|
", Print, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" -t png - | ${pkgs.wl-clipboard}/bin/wl-copy -t image/png"
|
||||||
|
"$mod&SHIFT, V, exec, ${pkgs.wl-clipboard}/bin/wl-paste | ${pkgs.coreutils}/bin/tee \"$(${pkgs.zenity}/bin/zenity --file-selection --save --confirm-overwrite)\""
|
||||||
|
]++ (
|
||||||
|
builtins.concatLists (
|
||||||
|
builtins.genList (i:
|
||||||
|
[
|
||||||
|
"$mod, code:1${toString i}, workspace, ${toString (i+1)}"
|
||||||
|
"$mod SHIFT, code:1${toString i}, movetoworkspacesilent, ${toString (i+1)}"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
9
|
||||||
|
)
|
||||||
|
)++ [
|
||||||
|
"$mod, code:19, workspace, 10"
|
||||||
|
"$mod SHIFT, code:19, movetoworkspacesilent, 10"
|
||||||
|
];
|
||||||
|
monitor = "eDP-1, 2256x1504, 0x0, 1.333333";
|
||||||
|
general = {
|
||||||
|
gaps_in = 0;
|
||||||
|
gaps_out = 0;
|
||||||
|
};
|
||||||
|
input = {
|
||||||
|
accel_profile = "flat";
|
||||||
|
sensitivity = 1.0;
|
||||||
|
touchpad = {
|
||||||
|
disable_while_typing = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
xwayland = {
|
||||||
|
force_zero_scaling = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
hyprpolkitagent.enable = true;
|
||||||
|
|
||||||
|
hyprpaper = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
ipc = true;
|
||||||
|
preload = [
|
||||||
|
cfg.wallpaper
|
||||||
|
];
|
||||||
|
wallpaper = [
|
||||||
|
",${cfg.wallpaper}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hypridle = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.hyprlock = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
mainBar = {
|
||||||
|
height = 30;
|
||||||
|
spacing = 4;
|
||||||
|
"modules-left" = [
|
||||||
|
"hyprland/workspaces"
|
||||||
|
"sway/mode"
|
||||||
|
"sway/scratchpad"
|
||||||
|
"custom/media"
|
||||||
|
];
|
||||||
|
"modules-center" = [
|
||||||
|
"sway/window"
|
||||||
|
];
|
||||||
|
"modules-right" = [
|
||||||
|
"mpd"
|
||||||
|
"pulseaudio"
|
||||||
|
"network"
|
||||||
|
"cpu"
|
||||||
|
"memory"
|
||||||
|
"backlight"
|
||||||
|
"battery"
|
||||||
|
"clock"
|
||||||
|
"tray"
|
||||||
|
];
|
||||||
|
backlight = {
|
||||||
|
format = "{percent}% {icon}";
|
||||||
|
format-icons = [""];
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
"format" = "{volume}% {icon} {format_source}";
|
||||||
|
"format-bluetooth" = "{volume}% {icon} {format_source}";
|
||||||
|
"format-bluetooth-muted" = " {icon} {format_source}";
|
||||||
|
"format-muted" = " {format_source}";
|
||||||
|
"format-source" = "{volume}% ";
|
||||||
|
"format-source-muted" = "";
|
||||||
|
"format-icons" = {
|
||||||
|
"headphone" = "";
|
||||||
|
"hands-free" = "";
|
||||||
|
"headset" = "";
|
||||||
|
"phone" = "";
|
||||||
|
"portable" = "";
|
||||||
|
"car" = "";
|
||||||
|
"default" = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"on-click" = "pavucontrol";
|
||||||
|
};
|
||||||
|
cpu = {
|
||||||
|
format = "{usage}% ";
|
||||||
|
};
|
||||||
|
memory = {
|
||||||
|
format = "{used}/{total} GiB";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
network = {
|
||||||
|
"format-wifi" = "{essid} ({signalStrength}%) ";
|
||||||
|
"format-ethernet" = "{ipaddr}/{cidr} ";
|
||||||
|
"tooltip-format" = "{ifname} via {gwaddr}";
|
||||||
|
"format-linked" = "{ifname} (No IP)";
|
||||||
|
"format-disconnected" = "Disconnected";
|
||||||
|
"format-alt" = "{ifname}: {ipaddr}/{cidr}";
|
||||||
|
};
|
||||||
|
battery = {
|
||||||
|
states = {
|
||||||
|
warning = 30;
|
||||||
|
critical = 15;
|
||||||
|
};
|
||||||
|
format = "{capacity}% {icon} {time}";
|
||||||
|
"format-icons" = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
"format-charging" = "{capacity}% {time}";
|
||||||
|
"format-plugged" = "{capacity}% {time}";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
"tooltip-format" = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||||
|
format = "{:%Y-%m-%d %H:%M:%S}";
|
||||||
|
interval = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
54
mainWireguard.nix
Normal file
54
mainWireguard.nix
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
{config, lib, pkgs, ...}:
|
||||||
|
let
|
||||||
|
cfg = config.cos.mainWireguard;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.cos.mainWireguard = {
|
||||||
|
enable = lib.mkEnableOption "enable";
|
||||||
|
interface = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "wg0";
|
||||||
|
};
|
||||||
|
ip = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
port = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
default = 51820;
|
||||||
|
};
|
||||||
|
privateKeyFile = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
networking.firewall.interfaces.${cfg.interface}.allowedUDPPorts = [
|
||||||
|
cfg.port
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
wireguard-tools
|
||||||
|
];
|
||||||
|
|
||||||
|
networking.wireguard = {
|
||||||
|
enable = true;
|
||||||
|
interfaces = {
|
||||||
|
${cfg.interface} = {
|
||||||
|
ips = [ "${cfg.ip}/24" ];
|
||||||
|
listenPort = 51820;
|
||||||
|
|
||||||
|
privateKeyFile = cfg.privateKeyFile;
|
||||||
|
|
||||||
|
peers = [
|
||||||
|
{
|
||||||
|
publicKey = "raOzdkhoag+sN2/KXz18F9ncmeTWhdmPJxQJkqsJ7FI=";
|
||||||
|
allowedIPs = [ "10.100.0.0/24" ];
|
||||||
|
endpoint = "50.116.49.95:51820";
|
||||||
|
persistentKeepalive = 25;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue