Initial commit for nixos
This commit is contained in:
89
nixos/flake.lock
generated
Normal file
89
nixos/flake.lock
generated
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"firefox-addons": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"dir": "pkgs/firefox-addons",
|
||||||
|
"lastModified": 1771732978,
|
||||||
|
"narHash": "sha256-o7gZh/eXFkEEmzwlBdIbgCJhmdlqQhOhVjudqgsIefg=",
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nur-expressions",
|
||||||
|
"rev": "18226106e18bc40cce99d436ee741a946f1888f6",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"dir": "pkgs/firefox-addons",
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nur-expressions",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1714043624,
|
||||||
|
"narHash": "sha256-Xn2r0Jv95TswvPlvamCC46wwNo8ALjRCMBJbGykdhcM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "86853e31dc1b62c6eeed11c667e8cdd0285d4411",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-23.11",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1713995372,
|
||||||
|
"narHash": "sha256-fFE3M0vCoiSwCX02z8VF58jXFRj9enYUSTqjyHAjrds=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "dd37924974b9202f8226ed5d74a252a9785aedf8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-23.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1714076141,
|
||||||
|
"narHash": "sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"firefox-addons": "firefox-addons",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
64
nixos/flake.nix
Normal file
64
nixos/flake.nix
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
description = "Stationette nix config";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
|
||||||
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
home-manager.url = "github:nix-community/home-manager/release-23.11";
|
||||||
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
firefox-addons = {
|
||||||
|
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
nixpkgs-unstable,
|
||||||
|
home-manager,
|
||||||
|
...
|
||||||
|
} @ inputs: let
|
||||||
|
lib = nixpkgs.lib;
|
||||||
|
# Supported systems for your flake packages, shell, etc.
|
||||||
|
# "aarch64-linux"
|
||||||
|
# "i686-linux"
|
||||||
|
# "x86_64-linux"
|
||||||
|
# "aarch64-darwin"
|
||||||
|
# "x86_64-darwin"
|
||||||
|
system = "x86_64-linux";
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
|
||||||
|
in {
|
||||||
|
# NixOS configuration entrypoint
|
||||||
|
# Available through 'nixos-rebuild --flake .#stationette'
|
||||||
|
nixosConfigurations = {
|
||||||
|
stationette = nixpkgs.lib.nixosSystem {
|
||||||
|
modules = [
|
||||||
|
./system/configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager {
|
||||||
|
home-manager.users.chris = import ./home;
|
||||||
|
home-manager.extraSpecialArgs = {
|
||||||
|
inherit pkgs-unstable;
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Standalone home-manager configuration entrypoint
|
||||||
|
homeConfigurations = {
|
||||||
|
chris = home-manager.lib.homeManagerConfiguration {
|
||||||
|
inherit pkgs;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit pkgs-unstable;
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
./home
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
56
nixos/home/config/hypr/bind.conf
Normal file
56
nixos/home/config/hypr/bind.conf
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
$mainMod = SUPER
|
||||||
|
|
||||||
|
bind = $mainMod, Return, exec, kitty
|
||||||
|
bind = $mainMod, Q, killactive,
|
||||||
|
bind = $mainMod, M, exec, wlogout --protocol layer-shell
|
||||||
|
bind = $mainMod, E, exec, thunar
|
||||||
|
bind = $mainMod, V, togglefloating
|
||||||
|
bind = $mainMod, D, exec, wofi --show drun
|
||||||
|
bind = $mainMod, P, pseudo, #dwindle
|
||||||
|
bind = $mainMod, S, togglesplit, #dwindle
|
||||||
|
bind = $mainMod SHIFT, Q, exec, swaylock
|
||||||
|
bind = , PRINT, exec, hyprshot -m region --clipboard-only
|
||||||
|
|
||||||
|
bind = $mainMod, h, movefocus, l
|
||||||
|
bind = $mainMod, l, movefocus, r
|
||||||
|
bind = $mainMod, k, movefocus, u
|
||||||
|
bind = $mainMod, j, movefocus, d
|
||||||
|
|
||||||
|
bind = $mainMod, 1, workspace, 1
|
||||||
|
bind = $mainMod, 2, workspace, 2
|
||||||
|
bind = $mainMod, 3, workspace, 3
|
||||||
|
bind = $mainMod, 4, workspace, 4
|
||||||
|
bind = $mainMod, 5, workspace, 5
|
||||||
|
bind = $mainMod, 6, workspace, 6
|
||||||
|
bind = $mainMod, 7, workspace, 7
|
||||||
|
bind = $mainMod, 8, workspace, 8
|
||||||
|
bind = $mainMod, 9, workspace, 9
|
||||||
|
bind = $mainMod, 0, workspace, 10
|
||||||
|
|
||||||
|
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||||
|
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||||
|
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||||
|
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||||
|
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||||
|
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||||
|
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||||
|
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||||
|
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||||
|
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||||
|
|
||||||
|
bind = $mainMod CTRL, l, resizeactive, 10 0
|
||||||
|
bind = $mainMod CTRL, h, resizeactive, -10 0
|
||||||
|
bind = $mainMod CTRL, k, resizeactive, 0 -10
|
||||||
|
bind = $mainMod CTRL, j, resizeactive, 0 10
|
||||||
|
|
||||||
|
bind = $mainMod SHIFT, l, movewindow, r
|
||||||
|
bind = $mainMod SHIFT, h, movewindow, l
|
||||||
|
bind = $mainMod SHIFT, k, movewindow, u
|
||||||
|
bind = $mainMod SHIFT, j, movewindow, d
|
||||||
|
|
||||||
|
bind = $mainMod, b, exec, firefox
|
||||||
|
bind = $mainMod, c, exec, thunderbird
|
||||||
|
|
||||||
|
# Move/resize windws with mainMod + LMB/RMB and draggin
|
||||||
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
11
nixos/home/config/hypr/exec.conf
Normal file
11
nixos/home/config/hypr/exec.conf
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
exec-once = dbus-update-activation-environment --systemd --all
|
||||||
|
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||||
|
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||||
|
exec-once = waybar & hyprpaper
|
||||||
|
exec-once = swayidle -w
|
||||||
|
exec-once = nwg-look -a
|
||||||
|
exec-once = [workspace 2 silent] firefox
|
||||||
|
exec-once = [workspace 10 silent] telegram-desktop
|
||||||
|
exec-once = [workspace 10 silent] vesktop
|
||||||
|
exec-once = [workspace 3 silent] thunderbird
|
||||||
|
exec-once = [workspace 5 silent] steam
|
||||||
6
nixos/home/config/hypr/hyprland.conf
Normal file
6
nixos/home/config/hypr/hyprland.conf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
source = ~/.config/hypr/monitor.conf
|
||||||
|
source = ~/.config/hypr/exec.conf
|
||||||
|
source = ~/.config/hypr/bind.conf
|
||||||
|
source = ~/.config/hypr/input.conf
|
||||||
|
source = ~/.config/hypr/window.conf
|
||||||
|
source = ~/.config/hypr/windowrule.conf
|
||||||
4
nixos/home/config/hypr/hyprpaper.conf
Normal file
4
nixos/home/config/hypr/hyprpaper.conf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#preload = ~/.config/wallpaper/wall.png
|
||||||
|
#wallpaper = HDMI-A-1, ~/.config/wallpapers/wall.png
|
||||||
|
splash = false
|
||||||
|
|
||||||
16
nixos/home/config/hypr/input.conf
Normal file
16
nixos/home/config/hypr/input.conf
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
input {
|
||||||
|
kb_layout = gb, us, ro
|
||||||
|
|
||||||
|
kb_variant =
|
||||||
|
kb_model =
|
||||||
|
kb_options = grp:alt_shift_toggle, caps:swapescape
|
||||||
|
kb_rules =
|
||||||
|
|
||||||
|
follow_mouse = 1
|
||||||
|
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = no
|
||||||
|
}
|
||||||
|
|
||||||
|
sensitivity = 0 # -1.0 -1.0, 0 means no modification
|
||||||
|
}
|
||||||
1
nixos/home/config/hypr/monitor.conf
Normal file
1
nixos/home/config/hypr/monitor.conf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
monitor=HDMI-A-1,2560x1440@164.835999, 0x0, 1
|
||||||
55
nixos/home/config/hypr/window.conf
Normal file
55
nixos/home/config/hypr/window.conf
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
general {
|
||||||
|
gaps_in = 5
|
||||||
|
gaps_out = 10
|
||||||
|
border_size = 1
|
||||||
|
col.active_border = rgb(8aadf4) rgb(24273a) rgb(24273a) rgb(8aadf4) 45deg
|
||||||
|
col.inactive_border = rgb(24273a) rgb(24273a) rgb(24273a) rgb(24273a) 45deg
|
||||||
|
layout = dwindle
|
||||||
|
allow_tearing = false
|
||||||
|
}
|
||||||
|
|
||||||
|
decoration {
|
||||||
|
rounding = 10
|
||||||
|
blur {
|
||||||
|
enabled = true
|
||||||
|
size = 2
|
||||||
|
passes = 2
|
||||||
|
new_optimizations = true
|
||||||
|
xray = true
|
||||||
|
}
|
||||||
|
drop_shadow = yes
|
||||||
|
shadow_range = 4
|
||||||
|
shadow_render_power = 3
|
||||||
|
col.shadow = rgba(1a1a1aee)
|
||||||
|
}
|
||||||
|
|
||||||
|
animations {
|
||||||
|
enabled = yes
|
||||||
|
bezier = overshot, 0.05, 0.9, 0.1, 1.05
|
||||||
|
bezier = smoothOut, 0.3, 0, 0.66, -0.56
|
||||||
|
bezier = smoothIn, 0.25, 1, 0.5, 1
|
||||||
|
animation = windows, 1, 5, overshot, slide
|
||||||
|
animation = windowsOut, 1, 4, smoothOut, slide
|
||||||
|
animation = windowsMove, 1, 4, default
|
||||||
|
animation = border, 1, 10, default
|
||||||
|
animation = fade, 1, 10, smoothIn
|
||||||
|
animation = fadeDim, 1, 10, smoothIn
|
||||||
|
animation = workspaces, 1, 6, default
|
||||||
|
}
|
||||||
|
|
||||||
|
dwindle {
|
||||||
|
pseudotile = yes
|
||||||
|
preserve_split = yes
|
||||||
|
}
|
||||||
|
|
||||||
|
master {
|
||||||
|
new_is_master = true
|
||||||
|
}
|
||||||
|
|
||||||
|
gestures {
|
||||||
|
workspace_swipe = off
|
||||||
|
}
|
||||||
|
|
||||||
|
misc {
|
||||||
|
force_default_wallpaper = 0
|
||||||
|
}
|
||||||
33
nixos/home/config/hypr/windowrule.conf
Normal file
33
nixos/home/config/hypr/windowrule.conf
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
windowrule = float, file_progress
|
||||||
|
windowrule = float, confirm
|
||||||
|
windowrule = float, dialog
|
||||||
|
windowrule = float, download
|
||||||
|
windowrule = float, notification
|
||||||
|
windowrule = float, error
|
||||||
|
windowrule = float, splash
|
||||||
|
windowrule = float, confirmreset
|
||||||
|
windowrule = float, title:Open File
|
||||||
|
windowrule = float, title:branchdialog
|
||||||
|
windowrule = float, viewnior
|
||||||
|
windowrule = float, pavucontrol-qt
|
||||||
|
windowrule = float, pavucontrol
|
||||||
|
windowrule = float, file-roller
|
||||||
|
windowrule = fullscreen, wlogout
|
||||||
|
windowrule = float, title:wlogout
|
||||||
|
windowrule = fullscreen, title:wlogout
|
||||||
|
windowrule = idleinhibit stayfocused, mpv
|
||||||
|
windowrulev2 = float, title:^(Media viewer)$
|
||||||
|
|
||||||
|
# Picture in picture windows
|
||||||
|
windowrulev2 = float, title:^(Picture-inPicture)$
|
||||||
|
windowrulev2 = pin, title:^(Picture-inPicture)$
|
||||||
|
windowrulev2 = float, class:^(vesktop)$,title:^(Discord Popout)$
|
||||||
|
windowrulev2 = pin, class:^(vesktop)$,title:^(Discord Popout)$
|
||||||
|
windowrulev2 = float, class:^(steam)$,title:^(Friends List)$
|
||||||
|
|
||||||
|
# Workspace assign
|
||||||
|
windowrulev2 = workspace: 1, class:^(kitty)$
|
||||||
|
windowrulev2 = workspace: 2, class:^(firefox)$
|
||||||
|
windowrulev2 = workspace: 5, class:^(steam)$
|
||||||
|
windowrulev2 = workspace: 10, class:^(org.telegram.desktop)$
|
||||||
|
windowrulev2 = workspace: 10, class:^(vesktop)$
|
||||||
4
nixos/home/config/swayidle/config
Normal file
4
nixos/home/config/swayidle/config
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
timeout 300 'swaylock'
|
||||||
|
timeout 420 'systemctl suspend'
|
||||||
|
before-sleep 'swaylock'
|
||||||
|
|
||||||
31
nixos/home/config/swaylock/config
Normal file
31
nixos/home/config/swaylock/config
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
daemonize
|
||||||
|
indicator
|
||||||
|
clock
|
||||||
|
screenshots
|
||||||
|
|
||||||
|
effect-blur=11x11
|
||||||
|
font=JetBrains Mono
|
||||||
|
indicator-radius=80
|
||||||
|
indicator-thickness=8
|
||||||
|
timestr=%I:%M %p
|
||||||
|
datestr=%F
|
||||||
|
|
||||||
|
inside-color=#181926
|
||||||
|
ring-color=#8bd5ca
|
||||||
|
key-hl-color=#cad3f5
|
||||||
|
text-color=#cad3f5
|
||||||
|
layout-text-color=#cad3f5
|
||||||
|
layout-bg-color=#cad3f5
|
||||||
|
text-caps-lock-color=#cad3f5
|
||||||
|
|
||||||
|
inside-clear-color=#f4dbd6
|
||||||
|
ring-clear-color=#f0c6c6
|
||||||
|
text-clear-color=#1e2030
|
||||||
|
|
||||||
|
inside-ver-color=#91d7e3
|
||||||
|
ring-ver-color=#7dc4e4
|
||||||
|
text-ver-color=#1e2030
|
||||||
|
|
||||||
|
inside-wrong-color=#ee99a0
|
||||||
|
ring-wrong-color=#ed8796
|
||||||
|
text-wrong-color=#1e2030
|
||||||
80
nixos/home/config/waybar/config.jsonc
Normal file
80
nixos/home/config/waybar/config.jsonc
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"mod": "dock",
|
||||||
|
"exclusice": true,
|
||||||
|
"passthrough": false,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
"height": 0,
|
||||||
|
"modules-left": [
|
||||||
|
"hyprland/workspaces"
|
||||||
|
],
|
||||||
|
"modules-center": ["hyprland/window"],
|
||||||
|
"modules-right": [
|
||||||
|
"tray",
|
||||||
|
"custom/updates",
|
||||||
|
"hyprland/language",
|
||||||
|
"pulseaudio",
|
||||||
|
"pulseaudio#microphone",
|
||||||
|
"clock",
|
||||||
|
"custom/weather"
|
||||||
|
],
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": {}
|
||||||
|
},
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"disable-scroll": true,
|
||||||
|
"all-outputs": true,
|
||||||
|
"on-click": "activate",
|
||||||
|
"persisten_workspaces": {
|
||||||
|
"1": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprland/language": {
|
||||||
|
"format": "{}",
|
||||||
|
"format-en": "EN",
|
||||||
|
"format-ro": "RO"
|
||||||
|
},
|
||||||
|
"custom/weather": {
|
||||||
|
"tooltip": true,
|
||||||
|
"format": "{}",
|
||||||
|
"interval": 30,
|
||||||
|
"exec": "~/.config/waybar/scripts/waybar-wttr.py",
|
||||||
|
"return-type": "json"
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 16,
|
||||||
|
"spacing": 10
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"format": "{:%R %d%M}",
|
||||||
|
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
"tooltip": false,
|
||||||
|
"format-muted": "Muted",
|
||||||
|
"on-click": "pamixer -t",
|
||||||
|
"on-scroll-up": "pamixer -i 5",
|
||||||
|
"on-scroll-down": "pamixer -d 5",
|
||||||
|
"scroll-step": 5
|
||||||
|
// "format-icons": {
|
||||||
|
// "headphones": "",
|
||||||
|
// "hands-free": "",
|
||||||
|
// "headset": "",
|
||||||
|
// "phone": "",
|
||||||
|
// "portable": "",
|
||||||
|
// "car": "",
|
||||||
|
// "default": ["", "", ""]
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
"pulseaudio#microphone": {
|
||||||
|
"format": "{format_source}",
|
||||||
|
"format-source": "{volume}%",
|
||||||
|
"format-source-muted": "Muted",
|
||||||
|
"on-click": "pamixer --default-source -t",
|
||||||
|
"on-scroll-up": "pamixer --default-source -i 5",
|
||||||
|
"on-scroll-down": "pamixer --default-source -d 5",
|
||||||
|
"scroll-step": 5
|
||||||
|
}
|
||||||
|
}
|
||||||
124
nixos/home/config/waybar/scripts/waybar-wttr.py
Normal file
124
nixos/home/config/waybar/scripts/waybar-wttr.py
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
#!/run/current-system/sw/bin/python
|
||||||
|
|
||||||
|
import json
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
import requests
|
||||||
|
|
||||||
|
WEATHER_CODES = {
|
||||||
|
"113": "Sunny",
|
||||||
|
"116": "Patchy",
|
||||||
|
"119": "Cloudy",
|
||||||
|
"122": "Cloudy",
|
||||||
|
"143": "Cloudy",
|
||||||
|
"176": "Rain",
|
||||||
|
"179": "Rain",
|
||||||
|
"182": "Rain",
|
||||||
|
"185": "Rain",
|
||||||
|
"200": "Storm",
|
||||||
|
"227": "Rain",
|
||||||
|
"230": "Rain",
|
||||||
|
"248": "Cloudy",
|
||||||
|
"260": "Cloudy",
|
||||||
|
"263": "Rain",
|
||||||
|
"266": "Rain",
|
||||||
|
"281": "Rain",
|
||||||
|
"284": "Rain",
|
||||||
|
"293": "Rain",
|
||||||
|
"296": "Rain",
|
||||||
|
"299": "Rain",
|
||||||
|
"302": "Rain",
|
||||||
|
"305": "Rain",
|
||||||
|
"308": "Rain",
|
||||||
|
"311": "Rain",
|
||||||
|
"314": "Rain",
|
||||||
|
"317": "Rain",
|
||||||
|
"320": "Rain",
|
||||||
|
"323": "Rain",
|
||||||
|
"326": "Rain",
|
||||||
|
"329": "Snow",
|
||||||
|
"332": "Snow",
|
||||||
|
"335": "Snow",
|
||||||
|
"338": "Snow",
|
||||||
|
"350": "Rain",
|
||||||
|
"353": "Rain",
|
||||||
|
"356": "Rain",
|
||||||
|
"359": "Rain",
|
||||||
|
"362": "Rain",
|
||||||
|
"365": "Rain",
|
||||||
|
"368": "Rain",
|
||||||
|
"371": "Snow",
|
||||||
|
"374": "Rain",
|
||||||
|
"377": "Rain",
|
||||||
|
"386": "Rain",
|
||||||
|
"389": "Rain",
|
||||||
|
"392": "Rain",
|
||||||
|
"395": "Snow",
|
||||||
|
}
|
||||||
|
|
||||||
|
data = {}
|
||||||
|
|
||||||
|
weather = request.get("https://wttr.in/?format=j1").json()
|
||||||
|
|
||||||
|
def format_time(time):
|
||||||
|
return time.replace("00", "").zfill(2)
|
||||||
|
|
||||||
|
def format_temp(temp):
|
||||||
|
return(temp["FeelsLikeC"] + "o").ljust(3)
|
||||||
|
|
||||||
|
def format_chances(hour):
|
||||||
|
chances = {
|
||||||
|
"chancesoffog": "Fog",
|
||||||
|
"chancesoffrost": "Frost",
|
||||||
|
"chancesofovercast": "Overcast",
|
||||||
|
"chancesofrain": "Rain",
|
||||||
|
"chancesofsnow": "Snow",
|
||||||
|
"chancesofsunshine": "Sunshine",
|
||||||
|
"chancesofthunder": "Thunder",
|
||||||
|
"chancesofwindy": "Wind",
|
||||||
|
}
|
||||||
|
|
||||||
|
conditions = []
|
||||||
|
for event in chances.keys():
|
||||||
|
if int(hour[event]) > 0:
|
||||||
|
conditions.append(chances[event] + "" + hour[event] + "%")
|
||||||
|
return ", ".join(conditions)
|
||||||
|
|
||||||
|
tempint = int(weather["current_condition"][0]["FeelsLikeC"])
|
||||||
|
extrachar = ""
|
||||||
|
if tempint > 0 and tempint < 10:
|
||||||
|
extrachar = "+"
|
||||||
|
|
||||||
|
data["text"] = (
|
||||||
|
" "
|
||||||
|
+ WEATHER_CODES[weather["current_condition"][0]["weatherCode"]]
|
||||||
|
+ " "
|
||||||
|
+ extrachar
|
||||||
|
+ weather["current_condition"][0]["FeelsLikeC"]
|
||||||
|
+ "o"
|
||||||
|
)
|
||||||
|
|
||||||
|
data["tooltip"] = (
|
||||||
|
f"<b>{weather['current_condition'][0]['weatherDesc'][0]['value']} {weather['current_condition'][0]['temp_C']}o</b>\n"
|
||||||
|
)
|
||||||
|
data["tooltip"] += f"Feels like: {weather['current_condition'][0]['FeelsLikeC']}o\n"
|
||||||
|
data["tooltip"] += f"Wind: {weather['current_condition'][0]['WindspeedKmph']}Km/h\n"
|
||||||
|
data["tooltip"] += f"Humidity: {weather['current_condition'][0]['FeelsLikeC']}%\n"
|
||||||
|
for i, day in enumerate(weather["weather"]):
|
||||||
|
data["tooltip"] += f"\n<b>"
|
||||||
|
if i == 0:
|
||||||
|
data["tooltip"] += "Today, "
|
||||||
|
if i == 1:
|
||||||
|
data["tooltip"] += "Tomorrow, "
|
||||||
|
data["tooltip"] += f"{day['date']}</b>\n"
|
||||||
|
data["tooltip"] += f"Up {day['maxtempC']}o Down {day['mintempC']}o "
|
||||||
|
data["tooltip"] += f"Sunrise {day['astronomy'][0]['sunrise']} Sunset {day['astronomy'][0]['sunset']} \n"
|
||||||
|
|
||||||
|
for hour in day["hourly"]:
|
||||||
|
if i == 0"
|
||||||
|
if int(format_time(hour["time"])) < datetime.now().hour - 2:
|
||||||
|
continue
|
||||||
|
|
||||||
|
data["tooltip"] += f"{format_time(hour['time'])} {WEATHER_CODES[hour['weatherCode']]} {format_temp(hour['FeelsLikeC'])} {hour['weatherDesc'][0]['value']}, {format_chances(hour)}\n"
|
||||||
|
|
||||||
|
print(json.dumps(data))
|
||||||
149
nixos/home/config/waybar/style.css
Normal file
149
nixos/home/config/waybar/style.css
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
font-family:
|
||||||
|
JetBrains Mono Nerd Font,
|
||||||
|
monospace;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 14px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: rgba(21, 18, 27, 0);
|
||||||
|
color: #cdd6f4;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
background: #1e1e2e;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-width: 2px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #11111b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 5px;
|
||||||
|
color: #313244;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
color: #a6adc8;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
color: #a6adc8;
|
||||||
|
background: #eba0ac;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
color: #11111b;
|
||||||
|
background: #a6e3a1;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
color: #11111b;
|
||||||
|
background: #cdd6f4;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#language,
|
||||||
|
#custom-updates,
|
||||||
|
#custom-caffeine,
|
||||||
|
#custom-weather,
|
||||||
|
#window,
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#pulseaudio,
|
||||||
|
#network,
|
||||||
|
#workspaces,
|
||||||
|
#tray,
|
||||||
|
#backlight {
|
||||||
|
background: #1e1e2e;
|
||||||
|
padding: 0px 10px;
|
||||||
|
margin: 3px 0px;
|
||||||
|
margin-top: 10px;
|
||||||
|
border: 1px solid #181825;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
background: #1e1e2e;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-left: 10px;
|
||||||
|
padding-right: 0px;
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-caffeine {
|
||||||
|
color: #89dceb;
|
||||||
|
border-radius: 10px 0 0 10px;
|
||||||
|
border-right: 0;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-language {
|
||||||
|
color: #f38ba8;
|
||||||
|
border-right: 0;
|
||||||
|
border-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-updates {
|
||||||
|
color: #f5c2e7;
|
||||||
|
border-radius: 10px 0 0 10px;
|
||||||
|
border-left: 0;
|
||||||
|
border-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
color: #fab387;
|
||||||
|
border-radius: 10px 0 0 10px;
|
||||||
|
margin-left: 5px;
|
||||||
|
border-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
color: #f9e2af;
|
||||||
|
border-left: 0px;
|
||||||
|
border-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: #89b4fa;
|
||||||
|
border-left: 0px;
|
||||||
|
border-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.microphone {
|
||||||
|
color: #cba6f7;
|
||||||
|
border-radius: 0 10px 10px 0;
|
||||||
|
border-left: 0;
|
||||||
|
border-right: 0;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: #a6e3a1;
|
||||||
|
border-radius: 0 10px 10px 0;
|
||||||
|
margin-right: 10px;
|
||||||
|
border-left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-weather {
|
||||||
|
border-radius: 0 10px 10px 0;
|
||||||
|
border-right: 0;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
36
nixos/home/config/wlogout/layout
Normal file
36
nixos/home/config/wlogout/layout
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"label" : "lock",
|
||||||
|
"action" : "swaylock",
|
||||||
|
"text" : "Lock",
|
||||||
|
"keybind" : "l",
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "hibernate",
|
||||||
|
"action" : "systemctl hibernate",
|
||||||
|
"text" : "Hibernate",
|
||||||
|
"keybind" : "h",
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "logout",
|
||||||
|
"action" : "sleep 1; hyprctl dispatch exit",
|
||||||
|
"text" : "Logout",
|
||||||
|
"keybind" : "e",
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "shutdown",
|
||||||
|
"action" : "systemctl poweroff",
|
||||||
|
"text" : "Shutdown",
|
||||||
|
"keybind" : "s",
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "suspend",
|
||||||
|
"action" : "systemctl suspend",
|
||||||
|
"text" : "Suspend",
|
||||||
|
"keybind" : "u",
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"label" : "reboot",
|
||||||
|
"action" : "systemctl reboot",
|
||||||
|
"text" : "Reboot",
|
||||||
|
"keybind" : "r",
|
||||||
|
}
|
||||||
51
nixos/home/config/wlogout/style.css
Normal file
51
nixos/home/config/wlogout/style.css
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
* {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
background-color: rgba(36,39,58,0.9)
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
margin: 8px;
|
||||||
|
color: #cad3f5;
|
||||||
|
background-color: #363a4f;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 2px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:active,
|
||||||
|
button:focus,
|
||||||
|
button:hover {
|
||||||
|
color: #8bd5ca;
|
||||||
|
background-color: #24273a;
|
||||||
|
outline-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lock{
|
||||||
|
/* background-image: image(url("icons/lock.png")); */
|
||||||
|
}
|
||||||
|
|
||||||
|
#logout{
|
||||||
|
/* background-image: image(url("icons/logout.png")); */
|
||||||
|
}
|
||||||
|
|
||||||
|
#suspend{
|
||||||
|
/* background-image: image(url("icons/suspend.png")); */
|
||||||
|
}
|
||||||
|
|
||||||
|
#hibernate{
|
||||||
|
/* background-image: image(url("icons/hibernate.png")); */
|
||||||
|
}
|
||||||
|
|
||||||
|
#shutdown{
|
||||||
|
/* background-image: image(url("icons/shutdown.png")); */
|
||||||
|
}
|
||||||
|
|
||||||
|
#reboot{
|
||||||
|
/* background-image: image(url("icons/reboot.png")); */
|
||||||
|
}
|
||||||
|
|
||||||
74
nixos/home/config/wofi/style.css
Normal file
74
nixos/home/config/wofi/style.css
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
@define-color lavender #b7bdf8;
|
||||||
|
@define-color base #24273a;
|
||||||
|
@define-color red #ed8796;
|
||||||
|
@define-color mauve #c6a0f6;
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-family: "Inconsolata Nerd Font", monospace;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
margin: 0;
|
||||||
|
padding: 10px;
|
||||||
|
border: 0.16em solid @lavender;
|
||||||
|
border-radius: 0.1em;
|
||||||
|
background-color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inner-box {
|
||||||
|
margin: 5px;
|
||||||
|
padding: 10px;
|
||||||
|
border: none;
|
||||||
|
background-color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
#outer-box {
|
||||||
|
margin: 5px;
|
||||||
|
padding: 10px;
|
||||||
|
border: none;
|
||||||
|
background-color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
#scroll {
|
||||||
|
margin: o;
|
||||||
|
padding: 10px;
|
||||||
|
border none;
|
||||||
|
background-color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input image {
|
||||||
|
border: none;
|
||||||
|
color: @red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input * {
|
||||||
|
outline: 4px solid @red !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#text {
|
||||||
|
margin: 5px;
|
||||||
|
border: none;
|
||||||
|
color: @text;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry {
|
||||||
|
background-color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry array {
|
||||||
|
border: none;
|
||||||
|
color: @lavender;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:selected {
|
||||||
|
border: 0.11em solid @lavender;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:selected #text {
|
||||||
|
color: @mauve;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:drop(active) {
|
||||||
|
background-color: @lavender !important;
|
||||||
|
}
|
||||||
21
nixos/home/default.nix
Normal file
21
nixos/home/default.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
pkgs-unstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./user
|
||||||
|
];
|
||||||
|
|
||||||
|
home = {
|
||||||
|
username = "chris";
|
||||||
|
homeDirectory = "/home/chris";
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||||
|
home.stateVersion = "23.05";
|
||||||
|
}
|
||||||
12
nixos/home/user/config.nix
Normal file
12
nixos/home/user/config.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
let configDir = ../config;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home.file = {
|
||||||
|
".config/hypr".source = "${configDir}/hypr";
|
||||||
|
".config/swayidle".source = "${configDir}/swayidle";
|
||||||
|
".config/swaylock".source = "${configDir}/swaylock";
|
||||||
|
".config/wlogout".source = "${configDir}/wlogout";
|
||||||
|
".config/waybar".source = "${configDir}/waybar";
|
||||||
|
".config/wofi".source = "${configDir}/wofi";
|
||||||
|
};
|
||||||
|
}
|
||||||
22
nixos/home/user/default.nix
Normal file
22
nixos/home/user/default.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./git.nix
|
||||||
|
./gtk.nix
|
||||||
|
./shell.nix
|
||||||
|
./config.nix
|
||||||
|
./packages.nix
|
||||||
|
./programs.nix
|
||||||
|
./environment.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs = {
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
allowUnfreePredicate = (_: true);
|
||||||
|
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
"electron-25.9.0" # Obsidian
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
31
nixos/home/user/environment.nix
Normal file
31
nixos/home/user/environment.nix
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
home.sessionVariables = {
|
||||||
|
BROWSER = "firefox";
|
||||||
|
EDITOR = "nvim";
|
||||||
|
TERMINAL = "kitty";
|
||||||
|
NIXOS_OZONE_WL = "1";
|
||||||
|
QT_QPA_PLATFORMTHEME = "gtk3";
|
||||||
|
QT_SCALE_FACTOR = "1";
|
||||||
|
MOZ_ENABLE_WAYLAND = "1";
|
||||||
|
SDL_VIDEODRIVER = "wayland";
|
||||||
|
QT_QPA_PLATFORM = "wayland-egl";
|
||||||
|
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||||
|
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
|
||||||
|
GTK_CSD = "0";
|
||||||
|
WLR_DRM_DEVICES = "/dev/dri/card0";
|
||||||
|
WLR_NO_HARDWARE_CURSORS = "1";
|
||||||
|
CLUTTER_BACKEND = "wayland";
|
||||||
|
WLR_RENDERER = "vulkan";
|
||||||
|
XCURSOR_SIZE = "32";
|
||||||
|
GTK_THEME = "Catppuccin-Macchiato-Compact-Blue-Dark";
|
||||||
|
XDG_CURRENT_DESKTOP = "hyprland";
|
||||||
|
XDG_SESSION_DESKTOP = "Hyprland";
|
||||||
|
XDG_SESSION_TYPE = "wayland";
|
||||||
|
GTK_USE_PORTAL = "1";
|
||||||
|
NIXOS_XDG_OPEN_USE_PORTAL = "1";
|
||||||
|
XDG_CACHE_HOME = "\${HOME}/.cache";
|
||||||
|
XDG_CONFIG_HOME = "\${HOME}/.config";
|
||||||
|
#XDG_BIN_HOME = "\${HOME}/.local/bin";
|
||||||
|
XDG_DATA_HOME = "\${HOME}/.local/share";
|
||||||
|
};
|
||||||
|
}
|
||||||
11
nixos/home/user/git.nix
Normal file
11
nixos/home/user/git.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
let
|
||||||
|
userName = "chris";
|
||||||
|
email = "stofflees@gmail.com";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userName = userName;
|
||||||
|
userEmail = email;
|
||||||
|
};
|
||||||
|
}
|
||||||
38
nixos/home/user/gtk.nix
Normal file
38
nixos/home/user/gtk.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
cursorTheme = {
|
||||||
|
name = "Catppuccin-Macchiato-Blue";
|
||||||
|
package = pkgs.catppuccin-cursors.macchiatoBlue;
|
||||||
|
};
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
name = "Catppuccin-Macchiato-Compact-Blue-dark";
|
||||||
|
package = pkgs.catppuccin-gtk.override {
|
||||||
|
size = "compact";
|
||||||
|
accents = ["blue"];
|
||||||
|
variant = "macchiato";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
iconTheme = {
|
||||||
|
name = "Papirus-Dark";
|
||||||
|
package = pkgs.papirus-folders;
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk3.extraConfig = {
|
||||||
|
Settings = ''
|
||||||
|
gtk-application-prefer-dark-theme = 1;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk4.extraConfig = {
|
||||||
|
Settings = ''
|
||||||
|
gtk-application-prefer-dark-theme = 1;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
37
nixos/home/user/packages.nix
Normal file
37
nixos/home/user/packages.nix
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{ pkgs, pkgs-unstable, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
pkgs.jetbrains.rider
|
||||||
|
pkgs.go
|
||||||
|
pkgs.lua
|
||||||
|
# pkgs.nodejs_22
|
||||||
|
pkgs.nodePackages.pnpm
|
||||||
|
(pkgs.python3.withPackages (python-pkgs: [
|
||||||
|
python-pkgs.pip
|
||||||
|
python-pkgs.requests
|
||||||
|
]))
|
||||||
|
pkgs.rustup
|
||||||
|
pkgs.zig
|
||||||
|
pkgs.obsidian
|
||||||
|
pkgs.thunderbird
|
||||||
|
pkgs.libreoffice-qt
|
||||||
|
pkgs.hunspell
|
||||||
|
pkgs.blueberry
|
||||||
|
pkgs.telegram-desktop
|
||||||
|
pkgs.steam
|
||||||
|
pkgs.steam-run
|
||||||
|
pkgs.yuzu-mainline
|
||||||
|
(pkgs.lutris.override {
|
||||||
|
extraPkgs = pkgs: [
|
||||||
|
pkgs.wineWowPackages.stable
|
||||||
|
pkgs.winetricks
|
||||||
|
];
|
||||||
|
})
|
||||||
|
pkgs.viewnior
|
||||||
|
pkgs-unstable.hyprshot
|
||||||
|
pkgs.catppuccin-cursors.macchiatoBlue
|
||||||
|
pkgs.catppuccin-gtk
|
||||||
|
pkgs.papirus-folders
|
||||||
|
];
|
||||||
|
}
|
||||||
17
nixos/home/user/programs.nix
Normal file
17
nixos/home/user/programs.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
profiles.chris = {
|
||||||
|
extensions = with inputs.firefox-addons.packages."x86_64-linux"; [
|
||||||
|
darkreader
|
||||||
|
i-dont-care-about-cookies
|
||||||
|
ublock-origin
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
}
|
||||||
32
nixos/home/user/shell.nix
Normal file
32
nixos/home/user/shell.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
myAliases = {
|
||||||
|
docker-compose = "podman-compose";
|
||||||
|
cat = "bat";
|
||||||
|
ls = "eza --icons=always";
|
||||||
|
fullClean = ''
|
||||||
|
nix-collect-garbage --delete-old
|
||||||
|
|
||||||
|
sudo nix-collect-garbage -d
|
||||||
|
|
||||||
|
sudo /run/current-system/bin/switch-to-configuration boot
|
||||||
|
'';
|
||||||
|
rebuild = "sudo nixos-rebuild switch --flake ~/.dotfiles/";
|
||||||
|
fullRebuild = "sudo nixos-rebuild switch --flake ~/.dotfiles/ && home-manager switch --flake ~/dotfiles/ -b backup";
|
||||||
|
homeRebuild = "home-manager switch --flake ~/.dotfiles/ -b backup";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableAutosuggestions = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
# initExtra = ''
|
||||||
|
# eval "${zoxide init --cmd cd zsh)" &&
|
||||||
|
# '';
|
||||||
|
shellAliases = myAliases;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
15
nixos/system/configuration.nix
Normal file
15
nixos/system/configuration.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./hardware-configuration.nix
|
||||||
|
./modules
|
||||||
|
];
|
||||||
|
|
||||||
|
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||||
|
system.stateVersion = "23.05";
|
||||||
|
}
|
||||||
31
nixos/system/hardware-configuration.nix
Normal file
31
nixos/system/hardware-configuration.nix
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/c425db8f-455a-4fec-8a24-72cd670640cb";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/038B-4974";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
23
nixos/system/modules/boot.nix
Normal file
23
nixos/system/modules/boot.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
boot = {
|
||||||
|
kernelParams = ["nohibernate" "ipv6.disable=1"];
|
||||||
|
tmp.cleanOnBoot = true;
|
||||||
|
# supportedFilesystems = ["ntfs"];
|
||||||
|
loader = {
|
||||||
|
grub = {
|
||||||
|
device = "nodev";
|
||||||
|
efiSupport = true;
|
||||||
|
enable = true;
|
||||||
|
useOSProber = true;
|
||||||
|
timeoutStyle = "menu";
|
||||||
|
efiInstallAsRemovable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
insmod tpm
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
timeout = 300;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
24
nixos/system/modules/default.nix
Normal file
24
nixos/system/modules/default.nix
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./boot.nix
|
||||||
|
./fonts.nix
|
||||||
|
./gaming.nix
|
||||||
|
./hardware.nix
|
||||||
|
./hyprland.nix
|
||||||
|
./internationalisation.nix
|
||||||
|
./networking.nix
|
||||||
|
./nixsettings.nix
|
||||||
|
./packages.nix
|
||||||
|
./polkit.nix
|
||||||
|
./programs.nix
|
||||||
|
./security.nix
|
||||||
|
./services.nix
|
||||||
|
./sound.nix
|
||||||
|
./theme.nix
|
||||||
|
./time.nix
|
||||||
|
./users.nix
|
||||||
|
./virtualisation.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
10
nixos/system/modules/fonts.nix
Normal file
10
nixos/system/modules/fonts.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
font-awesome
|
||||||
|
jetbrains-mono
|
||||||
|
|
||||||
|
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
|
||||||
|
];
|
||||||
|
}
|
||||||
13
nixos/system/modules/gaming.nix
Normal file
13
nixos/system/modules/gaming.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
nix = {
|
||||||
|
settings = {
|
||||||
|
warn-dirty = false;
|
||||||
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
auto-optimise-store = true;
|
||||||
|
substituters = ["https://nix-gaming.cachix.org"];
|
||||||
|
trusted-public-keys = ["nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
12
nixos/system/modules/hardware.nix
Normal file
12
nixos/system/modules/hardware.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
hardware = {
|
||||||
|
bluetooth.enable = true;
|
||||||
|
opengl = {
|
||||||
|
enable = true;
|
||||||
|
driSupport = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
22
nixos/system/modules/hyprland.nix
Normal file
22
nixos/system/modules/hyprland.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
hyprpaper
|
||||||
|
kitty
|
||||||
|
libnotify
|
||||||
|
mako
|
||||||
|
qt5.qtwayland
|
||||||
|
qt6.qtwayland
|
||||||
|
swayidle
|
||||||
|
swaylock-effects
|
||||||
|
wlogout
|
||||||
|
wl-clipboard
|
||||||
|
wofi
|
||||||
|
waybar
|
||||||
|
];
|
||||||
|
}
|
||||||
23
nixos/system/modules/internationalisation.nix
Normal file
23
nixos/system/modules/internationalisation.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
i18n.defaultLocale = "en_GB.UTF-8";
|
||||||
|
|
||||||
|
i18n.extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "en_GB.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "en_GB.UTF-8";
|
||||||
|
LC_MEASUREMENT = "en_GB.UTF-8";
|
||||||
|
LC_MONETARY = "en_GB.UTF-8";
|
||||||
|
LC_NAME = "en_GB.UTF-8";
|
||||||
|
LC_NUMERIC = "en_GB.UTF-8";
|
||||||
|
LC_PAPER = "en_GB.UTF-8";
|
||||||
|
LC_TELEPHONE = "en_GB.UTF-8";
|
||||||
|
LC_TIME = "en_GB.UTF-8";
|
||||||
|
};
|
||||||
|
|
||||||
|
i18n.supportedLocales = [
|
||||||
|
"en_GB.UTF-8/UTF-8"
|
||||||
|
"en_US.UTF-8/UTF-8"
|
||||||
|
"ro_RO.UTF-8/UTF-8"
|
||||||
|
];
|
||||||
|
}
|
||||||
10
nixos/system/modules/networking.nix
Normal file
10
nixos/system/modules/networking.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
hostName = "stationette";
|
||||||
|
networkmanager.enable = true;
|
||||||
|
enableIPv6 = false;
|
||||||
|
firewall.enable = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
23
nixos/system/modules/nixsettings.nix
Normal file
23
nixos/system/modules/nixsettings.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
documentation.nixos.enable = false;
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
settings = {
|
||||||
|
warn-dirty = false;
|
||||||
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
auto-optimise-store = true;
|
||||||
|
substituters = ["https://nix-gaming.cachix.org"];
|
||||||
|
trusted-public-keys = ["nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="];
|
||||||
|
};
|
||||||
|
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "weekly";
|
||||||
|
options = "--delete-older-than 7d";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
30
nixos/system/modules/packages.nix
Normal file
30
nixos/system/modules/packages.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
bat
|
||||||
|
btop
|
||||||
|
eza
|
||||||
|
fzf
|
||||||
|
git
|
||||||
|
gnumake
|
||||||
|
lm_sensors
|
||||||
|
libsForQt5.qt5.qtquickcontrols2
|
||||||
|
libsForQt5.qt5.qtgraphicaleffects
|
||||||
|
libsForQt5.qt5.qtsvg
|
||||||
|
neofetch
|
||||||
|
neovim
|
||||||
|
ripgrep
|
||||||
|
tldr
|
||||||
|
unzip
|
||||||
|
openssl
|
||||||
|
openssl.dev
|
||||||
|
pkg-config
|
||||||
|
wget
|
||||||
|
xfce.thunar
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
xdg-desktop-portal-wlr
|
||||||
|
zip
|
||||||
|
zoxide
|
||||||
|
];
|
||||||
|
}
|
||||||
27
nixos/system/modules/polkit.nix
Normal file
27
nixos/system/modules/polkit.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
systemd = {
|
||||||
|
user.services.polkit-gnome-authentication-agent-1 = {
|
||||||
|
description = "polkit-gnome-authentication-agent-1";
|
||||||
|
wantedBy = [ "graphical-session.target" ];
|
||||||
|
wants = [ "graphical-session.target" ];
|
||||||
|
after = [ "graphical-session.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = 1;
|
||||||
|
TimeoutStopSec = 10;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
DefaulTimeoutStopSec=10s
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
polkit
|
||||||
|
polkit_gnome
|
||||||
|
];
|
||||||
|
}
|
||||||
57
nixos/system/modules/programs.nix
Normal file
57
nixos/system/modules/programs.nix
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
wlr.enable = true;
|
||||||
|
xdgOpenUsePortal = false;
|
||||||
|
extraPortals = [
|
||||||
|
pkgs.xdg-desktop-portal-hyprland
|
||||||
|
pkgs.xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
steam = {
|
||||||
|
enable = true;
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
dedicatedServer.openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
hyprland = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
xwayland = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
portalPackage = pkgs.xdg-desktop-portal-hyprland;
|
||||||
|
};
|
||||||
|
|
||||||
|
gnupg = {
|
||||||
|
agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
tmux = {
|
||||||
|
enable = true;
|
||||||
|
escapeTime = 0;
|
||||||
|
|
||||||
|
# plugins = with pkgs; [
|
||||||
|
# tmuxPlugins.vim-timux-navigator
|
||||||
|
# tmuxPlugins.resurrect
|
||||||
|
# tmuxPlugins.continuum
|
||||||
|
# tmuxPlugins.catppuccin
|
||||||
|
# ];
|
||||||
|
|
||||||
|
# zsh.enable = true;
|
||||||
|
# mtr.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
15
nixos/system/modules/sddm-theme.nix
Normal file
15
nixos/system/modules/sddm-theme.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{ pkgs }:
|
||||||
|
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
|
name = "sddm-theme";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "gpskwlkr";
|
||||||
|
repo = "sddm-astronaut-theme";
|
||||||
|
rev = "468a100460d5feaa701c2215c737b55789cba0fc";
|
||||||
|
sha256 = "1h20b7n6a4pbqnrj22y8v5gc01zxs58lck3bipmgkpyp52ip3vig";
|
||||||
|
};
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
cp -R ./* $out/
|
||||||
|
'';
|
||||||
|
}
|
||||||
7
nixos/system/modules/security.nix
Normal file
7
nixos/system/modules/security.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
security.polkit.enable = true;
|
||||||
|
security.pam.services.swaylock = {};
|
||||||
|
security.pam.services.swaylock.fprintAuth = false;
|
||||||
|
}
|
||||||
21
nixos/system/modules/services.nix
Normal file
21
nixos/system/modules/services.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
dbus.enable = true;
|
||||||
|
picom.enable = true;
|
||||||
|
openssh.enable = true;
|
||||||
|
spice-vdagentd.enable = true;
|
||||||
|
|
||||||
|
xserver = {
|
||||||
|
enable = true;
|
||||||
|
layout = "gb, us, ro";
|
||||||
|
xkbOptions = "grp:alt_shift_toggle, caps:swapescape";
|
||||||
|
|
||||||
|
displayManager = {
|
||||||
|
sddm.enable = true;
|
||||||
|
sddm.theme = "${import ./sddm-theme.nix { inherit pkgs; }}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
21
nixos/system/modules/sound.nix
Normal file
21
nixos/system/modules/sound.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
sound.enable = true;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
hardware.pulseaudio.enable = false;
|
||||||
|
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
wireplumber.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
pamixer
|
||||||
|
pavucontrol
|
||||||
|
];
|
||||||
|
}
|
||||||
10
nixos/system/modules/theme.nix
Normal file
10
nixos/system/modules/theme.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
gnome3.adwaita-icon-theme
|
||||||
|
glib
|
||||||
|
gsettings-desktop-schemas
|
||||||
|
nwg-look
|
||||||
|
];
|
||||||
|
}
|
||||||
5
nixos/system/modules/time.nix
Normal file
5
nixos/system/modules/time.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
time.timeZone = "Europe/London";
|
||||||
|
}
|
||||||
16
nixos/system/modules/users.nix
Normal file
16
nixos/system/modules/users.nix
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
users.users.chris = {
|
||||||
|
isNormalUser = true;
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"docker"
|
||||||
|
"qemu"
|
||||||
|
"kvm"
|
||||||
|
"libvirtd"
|
||||||
|
"networkmanager"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
36
nixos/system/modules/virtualisation.nix
Normal file
36
nixos/system/modules/virtualisation.nix
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
spiceUSBRedirection.enable = true;
|
||||||
|
|
||||||
|
libvirtd = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
qemu = {
|
||||||
|
swtpm.enable = true;
|
||||||
|
ovmf.enable = true;
|
||||||
|
# ovmf.packages = [ pkgs.OVMFFULL.fd ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
podman = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
dockerCompat = true;
|
||||||
|
defaultNetwork.settings.dns_enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
podman-compose
|
||||||
|
qemu
|
||||||
|
spice
|
||||||
|
spice-gtk
|
||||||
|
spice-protocol
|
||||||
|
virt-manager
|
||||||
|
virt-viewer
|
||||||
|
win-spice
|
||||||
|
win-virtio
|
||||||
|
];
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user