mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-03-23 18:58:28 +01:00
Compare commits
7 commits
927f056987
...
d0c8b770ac
| Author | SHA1 | Date | |
|---|---|---|---|
| d0c8b770ac | |||
| 5b0ddf5c54 | |||
| 13d5b9c3f6 | |||
| fd16dd8aa3 | |||
| 3e0325cffa | |||
| 7cc0460181 | |||
| 048c7fb888 |
13 changed files with 277 additions and 70 deletions
5
.github/workflows/ci.yml
vendored
5
.github/workflows/ci.yml
vendored
|
|
@ -3,6 +3,9 @@ on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
jobs:
|
jobs:
|
||||||
parse-flake:
|
parse-flake:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
@ -96,7 +99,7 @@ jobs:
|
||||||
-d "Commit \`${GITHUB_SHA::7}\` deployed successfully." \
|
-d "Commit \`${GITHUB_SHA::7}\` deployed successfully." \
|
||||||
https://ntfy.sh/splitleaf
|
https://ntfy.sh/splitleaf
|
||||||
- name: Notify failure
|
- name: Notify failure
|
||||||
if: needs.deploy.result != 'success'
|
if: needs.deploy.result == 'failure'
|
||||||
run: |
|
run: |
|
||||||
curl -s \
|
curl -s \
|
||||||
-H "Title: CI: Deploy failed" \
|
-H "Title: CI: Deploy failed" \
|
||||||
|
|
|
||||||
43
flake.lock
generated
43
flake.lock
generated
|
|
@ -290,6 +290,48 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"noctalia": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"noctalia-qs": "noctalia-qs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1772659442,
|
||||||
|
"narHash": "sha256-F1oSoSwGvBiqtSfGU9YzsjL9sP6IQDYQeUIQbXma70U=",
|
||||||
|
"owner": "noctalia-dev",
|
||||||
|
"repo": "noctalia-shell",
|
||||||
|
"rev": "c56fa106b7d8c6ae3034ce6d706bc35432ac9ea6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "noctalia-dev",
|
||||||
|
"repo": "noctalia-shell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"noctalia-qs": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"noctalia",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1772227064,
|
||||||
|
"narHash": "sha256-f821ZSoGpa/aXrWq0gPpea9qBnX8KDyavGKkptz2Mog=",
|
||||||
|
"owner": "noctalia-dev",
|
||||||
|
"repo": "noctalia-qs",
|
||||||
|
"rev": "0741d27d2f7db567270f139c5d1684614ecf9863",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "noctalia-dev",
|
||||||
|
"repo": "noctalia-qs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"radicale-birthday-calendar": {
|
"radicale-birthday-calendar": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -320,6 +362,7 @@
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
|
"noctalia": "noctalia",
|
||||||
"radicale-birthday-calendar": "radicale-birthday-calendar",
|
"radicale-birthday-calendar": "radicale-birthday-calendar",
|
||||||
"sops": "sops",
|
"sops": "sops",
|
||||||
"statix": "statix",
|
"statix": "statix",
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,11 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
noctalia = {
|
||||||
|
url = "github:noctalia-dev/noctalia-shell";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
vscode-extensions = {
|
vscode-extensions = {
|
||||||
url = "github:nix-community/nix-vscode-extensions";
|
url = "github:nix-community/nix-vscode-extensions";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
|
||||||
51
modules/home/de/hyprland/classic.nix
Normal file
51
modules/home/de/hyprland/classic.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
options.custom.de.hyprland.classic.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
|
config = lib.mkIf config.custom.de.hyprland.classic.enable {
|
||||||
|
custom = {
|
||||||
|
programs = {
|
||||||
|
hyprland.enable = true;
|
||||||
|
rofi.enable = true;
|
||||||
|
hyprlock.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
wpaperd.enable = true;
|
||||||
|
hypridle.enable = true;
|
||||||
|
waybar.enable = true;
|
||||||
|
cliphist.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.dunst.enable = true;
|
||||||
|
|
||||||
|
home.packages = [
|
||||||
|
pkgs.playerctl
|
||||||
|
pkgs.grimblast
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.extraConfig = lib.mkBefore ''
|
||||||
|
# Variables
|
||||||
|
$play-pause = playerctl --ignore-player=firefox play-pause
|
||||||
|
$play-next = playerctl --ignore-player=firefox next
|
||||||
|
$play-previous = playerctl --ignore-player=firefox previous
|
||||||
|
$mute = wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
|
$volume-up = wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||||
|
$volume-down = wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||||
|
$mute-mic = wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||||
|
|
||||||
|
# Launch programs
|
||||||
|
bind = SUPER, R, exec, rofi -show drun
|
||||||
|
bind = SUPER, V, exec, rofi-clipboard
|
||||||
|
|
||||||
|
# Manage session
|
||||||
|
bindrl = SUPER CONTROL, L, exec, loginctl lock-session
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
options.custom.de.hyprland.enable = lib.mkEnableOption "" // {
|
|
||||||
default = osConfig.custom.de.hyprland.enable;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.custom.de.hyprland.enable {
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
package = null;
|
|
||||||
portalPackage = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = [
|
|
||||||
pkgs.playerctl
|
|
||||||
pkgs.grimblast
|
|
||||||
];
|
|
||||||
|
|
||||||
custom = {
|
|
||||||
services = {
|
|
||||||
wpaperd.enable = true;
|
|
||||||
hypridle.enable = true;
|
|
||||||
waybar.enable = true;
|
|
||||||
cliphist.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
rofi.enable = true;
|
|
||||||
hyprlock.enable = true;
|
|
||||||
btop.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.dunst.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
41
modules/home/de/hyprland/noctalia.nix
Normal file
41
modules/home/de/hyprland/noctalia.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
options.custom.de.hyprland.noctalia.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
|
config = lib.mkIf config.custom.de.hyprland.noctalia.enable {
|
||||||
|
custom = {
|
||||||
|
programs = {
|
||||||
|
hyprland.enable = true;
|
||||||
|
noctalia-shell.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.cliphist.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = [ pkgs.grimblast ];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.extraConfig = lib.mkBefore ''
|
||||||
|
# Variables
|
||||||
|
$ipc = noctalia-shell ipc call
|
||||||
|
$play-pause = $ipc media playPause
|
||||||
|
$play-next = $ipc media next
|
||||||
|
$play-previous = $ipc media previous
|
||||||
|
$mute = $ipc volume muteOutput
|
||||||
|
$volume-up = $ipc volume increase
|
||||||
|
$volume-down = $ipc volume decrease
|
||||||
|
$mute-mic = $ipc volume muteInput
|
||||||
|
|
||||||
|
# Launch programs
|
||||||
|
bind = SUPER, R, exec, $ipc launcher toggle
|
||||||
|
bind = SUPER, V, exec, $ipc launcher clipboard
|
||||||
|
|
||||||
|
# Manage session
|
||||||
|
bindrl = SUPER CONTROL, L, exec, $ipc lockScreen lock
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
12
modules/home/programs/hyprland/default.nix
Normal file
12
modules/home/programs/hyprland/default.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
{
|
||||||
|
options.custom.programs.hyprland.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
|
config = lib.mkIf config.custom.programs.hyprland.enable {
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
package = null;
|
||||||
|
portalPackage = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,30 +1,19 @@
|
||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.custom.de.hyprland.enable {
|
config = lib.mkIf config.custom.programs.hyprland.enable {
|
||||||
wayland.windowManager.hyprland.extraConfig = ''
|
wayland.windowManager.hyprland.extraConfig = ''
|
||||||
# Bindflags:
|
# Bindflags:
|
||||||
# r = release
|
# r = release
|
||||||
# e = repeat
|
# e = repeat
|
||||||
# l = locked
|
# l = locked
|
||||||
|
|
||||||
# Variables
|
|
||||||
$play-pause = playerctl --ignore-player=firefox play-pause
|
|
||||||
$play-next = playerctl --ignore-player=firefox next
|
|
||||||
$play-previous = playerctl --ignore-player=firefox previous
|
|
||||||
$mute = wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
|
||||||
$volume-up = wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
|
||||||
$volume-down = wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
|
||||||
$mute-mic = wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
|
||||||
|
|
||||||
# Essentials
|
# Essentials
|
||||||
bind = SUPER SHIFT, C, killactive,
|
bind = SUPER SHIFT, C, killactive,
|
||||||
bind = SUPER SHIFT, V, togglefloating,
|
bind = SUPER SHIFT, V, togglefloating,
|
||||||
bind = SUPER SHIFT, F, fullscreen, 0
|
bind = SUPER SHIFT, F, fullscreen, 0
|
||||||
|
|
||||||
# Launch programs
|
# Launch programs
|
||||||
bind = SUPER, R, exec, rofi -show drun
|
|
||||||
bind = SUPER, RETURN, exec, kitty
|
bind = SUPER, RETURN, exec, kitty
|
||||||
bind = SUPER, V, exec, rofi-clipboard
|
|
||||||
bind = SUPER, B, exec, firefox
|
bind = SUPER, B, exec, firefox
|
||||||
bind = SUPER, C, exec, code
|
bind = SUPER, C, exec, code
|
||||||
|
|
||||||
|
|
@ -61,7 +50,6 @@
|
||||||
bindrl = SUPER CONTROL, R, exec, reboot
|
bindrl = SUPER CONTROL, R, exec, reboot
|
||||||
bindrl = SUPER CONTROL, H, exec, systemctl hibernate
|
bindrl = SUPER CONTROL, H, exec, systemctl hibernate
|
||||||
bindrl = SUPER CONTROL, S, exec, systemctl sleep
|
bindrl = SUPER CONTROL, S, exec, systemctl sleep
|
||||||
bindrl = SUPER CONTROL, L, exec, loginctl lock-session
|
|
||||||
bindrl = SUPER CONTROL, B, exec, sleep 1 && hyprctl dispatch dpms off
|
bindrl = SUPER CONTROL, B, exec, sleep 1 && hyprctl dispatch dpms off
|
||||||
|
|
||||||
# Control media
|
# Control media
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.custom.de.hyprland.enable {
|
config = lib.mkIf config.custom.programs.hyprland.enable {
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
input = {
|
input = {
|
||||||
kb_layout = "de";
|
kb_layout = "de";
|
||||||
106
modules/home/programs/noctalia-shell.nix
Normal file
106
modules/home/programs/noctalia-shell.nix
Normal file
|
|
@ -0,0 +1,106 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
osConfig,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [ inputs.noctalia.homeModules.default ];
|
||||||
|
|
||||||
|
options.custom.programs.noctalia-shell.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
|
config = lib.mkIf config.custom.programs.noctalia-shell.enable {
|
||||||
|
programs.noctalia-shell = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
animationSpeed = 1.8;
|
||||||
|
enableShadows = false;
|
||||||
|
compactLockScreen = true;
|
||||||
|
autoStartAuth = true;
|
||||||
|
allowPasswordWithFprintd = true;
|
||||||
|
showSessionButtonsOnLockScreen = false;
|
||||||
|
avatarImage = "/home/seb/Pictures/face";
|
||||||
|
telemetryEnabled = false;
|
||||||
|
};
|
||||||
|
ui.boxBorderEnabled = true;
|
||||||
|
colorSchemes = {
|
||||||
|
darkMode =
|
||||||
|
{
|
||||||
|
dark = true;
|
||||||
|
light = false;
|
||||||
|
}
|
||||||
|
.${config.custom.theme};
|
||||||
|
predefinedScheme = "GitHub Dark";
|
||||||
|
};
|
||||||
|
wallpaper = {
|
||||||
|
enabled = true;
|
||||||
|
directory = "/home/seb/Pictures/Wallpapers";
|
||||||
|
transitionType = "fade";
|
||||||
|
transitionDuration = 1000;
|
||||||
|
automationEnabled = true;
|
||||||
|
randomIntervalSec = 1800;
|
||||||
|
};
|
||||||
|
bar = {
|
||||||
|
barType = "simple";
|
||||||
|
position = "bottom";
|
||||||
|
density = "default";
|
||||||
|
fontScale = 1.2;
|
||||||
|
widgetSpacing = 10;
|
||||||
|
widgets = {
|
||||||
|
left = lib.singleton {
|
||||||
|
id = "Clock";
|
||||||
|
formatHorizontal = "HH:mm ddd, d MMM";
|
||||||
|
tooltipFormat = "yyyy-MM-dd HH:mm";
|
||||||
|
};
|
||||||
|
center = lib.singleton {
|
||||||
|
id = "Workspace";
|
||||||
|
};
|
||||||
|
right = [
|
||||||
|
{ id = "Tray"; }
|
||||||
|
{
|
||||||
|
id = "NotificationHistory";
|
||||||
|
hideWhenZeroUnread = true;
|
||||||
|
}
|
||||||
|
{ id = "Volume"; }
|
||||||
|
(lib.optionalAttrs osConfig.custom.networking.underlay.wireless.enable { id = "Network"; })
|
||||||
|
(lib.optionalAttrs osConfig.custom.services.bluetooth.enable { id = "Bluetooth"; })
|
||||||
|
(lib.optionalAttrs config.custom.programs.brightnessctl.enable { id = "Brightness"; })
|
||||||
|
{
|
||||||
|
id = "Battery";
|
||||||
|
displayMode = "icon-hover";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
dock.enabled = false;
|
||||||
|
appLauncher = {
|
||||||
|
overviewLayer = true;
|
||||||
|
showCategories = false;
|
||||||
|
enableSessionSearch = false;
|
||||||
|
enableSettingsSearch = false;
|
||||||
|
enableWindowsSearch = false;
|
||||||
|
enableClipboardHistory = true;
|
||||||
|
};
|
||||||
|
osd.enabledTypes = [
|
||||||
|
0
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
];
|
||||||
|
location.name = "Darmstadt";
|
||||||
|
sessionMenu = {
|
||||||
|
largeButtonsStyle = false;
|
||||||
|
countdownDuration = 3000;
|
||||||
|
};
|
||||||
|
audio.mprisBlacklist = "firefox";
|
||||||
|
location = {
|
||||||
|
firstDayOfWeek = 1;
|
||||||
|
showWeekNumberInCalendar = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -42,12 +42,6 @@
|
||||||
"extensions.autoCheckUpdates" = false;
|
"extensions.autoCheckUpdates" = false;
|
||||||
"editor.fontFamily" = "JetBrainsMono Nerd Font";
|
"editor.fontFamily" = "JetBrainsMono Nerd Font";
|
||||||
"workbench.iconTheme" = "material-icon-theme";
|
"workbench.iconTheme" = "material-icon-theme";
|
||||||
"workbench.colorTheme" =
|
|
||||||
{
|
|
||||||
dark = "GitHub Dark";
|
|
||||||
light = "GitHub Light";
|
|
||||||
}
|
|
||||||
.${config.custom.theme};
|
|
||||||
"workbench.sideBar.location" = "right";
|
"workbench.sideBar.location" = "right";
|
||||||
"workbench.editor.decorations.colors" = false;
|
"workbench.editor.decorations.colors" = false;
|
||||||
"editor.renderWhitespace" = "none";
|
"editor.renderWhitespace" = "none";
|
||||||
|
|
@ -68,6 +62,12 @@
|
||||||
"github.copilot.enable"."*" = false;
|
"github.copilot.enable"."*" = false;
|
||||||
"chat.fontSize" = 15;
|
"chat.fontSize" = 15;
|
||||||
"chat.editor.fontSize" = 15;
|
"chat.editor.fontSize" = 15;
|
||||||
|
"workbench.colorTheme" =
|
||||||
|
{
|
||||||
|
dark = "GitHub Dark";
|
||||||
|
light = "GitHub Light";
|
||||||
|
}
|
||||||
|
.${config.custom.theme};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
in
|
in
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,6 @@
|
||||||
options.custom.services.cliphist.enable = lib.mkEnableOption "";
|
options.custom.services.cliphist.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.custom.services.cliphist.enable {
|
config = lib.mkIf config.custom.services.cliphist.enable {
|
||||||
assertions = lib.singleton {
|
|
||||||
assertion = config.custom.programs.rofi.enable;
|
|
||||||
message = "Cliphist requires Rofi";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.cliphist = {
|
services.cliphist = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraOptions = [ ];
|
extraOptions = [ ];
|
||||||
|
|
@ -23,7 +18,9 @@
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.wl-clipboard
|
pkgs.wl-clipboard
|
||||||
(pkgs.writeScriptBin "rofi-clipboard" "cliphist list | rofi -dmenu -display-columns 2 | cliphist decode | wl-copy")
|
]
|
||||||
];
|
++ lib.optional config.custom.programs.rofi.enable (
|
||||||
|
pkgs.writeScriptBin "rofi-clipboard" "cliphist list | rofi -dmenu -display-columns 2 | cliphist decode | wl-copy"
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@
|
||||||
custom = {
|
custom = {
|
||||||
sops.enable = true;
|
sops.enable = true;
|
||||||
|
|
||||||
|
de.hyprland.noctalia.enable = true;
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
shell = {
|
shell = {
|
||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
|
|
@ -32,6 +34,7 @@
|
||||||
vscode.enable = true;
|
vscode.enable = true;
|
||||||
firefox.enable = true;
|
firefox.enable = true;
|
||||||
libreoffice.enable = true;
|
libreoffice.enable = true;
|
||||||
|
btop.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue