feat: a bunch of changes i forgot to commit
This commit is contained in:
parent
57c72d9ac7
commit
8141140de9
21 changed files with 2871 additions and 186 deletions
42
computers/python/apps.nix
Normal file
42
computers/python/apps.nix
Normal file
|
@ -0,0 +1,42 @@
|
|||
{pkgs, ...}: {
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
inherit
|
||||
(pkgs)
|
||||
nil
|
||||
statix
|
||||
deadnix
|
||||
alejandra
|
||||
;
|
||||
};
|
||||
alqueva = {
|
||||
fonts = {
|
||||
names = {
|
||||
sansSerif = ["Iosevka Comfy Wide Fixed"];
|
||||
monospace = ["Iosevka Comfy Wide Fixed"];
|
||||
serif = ["Iosevka Comfy Wide Motion Fixed"];
|
||||
};
|
||||
packages = builtins.attrValues {
|
||||
inherit
|
||||
(pkgs.iosevka-comfy)
|
||||
comfy-wide-fixed
|
||||
comfy-wide-motion-fixed
|
||||
;
|
||||
nerdfonts = pkgs.nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];};
|
||||
};
|
||||
enable = true;
|
||||
};
|
||||
mpd = {
|
||||
enable = true;
|
||||
ncmpcpp = true;
|
||||
};
|
||||
emacs.enable = true;
|
||||
xonsh.enable = true;
|
||||
libvirt.enable = true;
|
||||
direnv.enable = true;
|
||||
git.enable = true;
|
||||
pipewire.enable = true;
|
||||
qutebrowser.enable = true;
|
||||
openssh.enable = true;
|
||||
river.enable = true;
|
||||
};
|
||||
}
|
81
computers/python/configs/alacritty/alacritty.toml
Normal file
81
computers/python/configs/alacritty/alacritty.toml
Normal file
|
@ -0,0 +1,81 @@
|
|||
[window]
|
||||
decorations = "None"
|
||||
|
||||
[window.padding]
|
||||
x = 8
|
||||
y = 8
|
||||
|
||||
[font]
|
||||
size = 14
|
||||
|
||||
[colors.primary]
|
||||
foreground = "#e0def4"
|
||||
background = "#191724"
|
||||
dim_foreground = "#908caa"
|
||||
bright_foreground = "#e0def4"
|
||||
|
||||
[colors.cursor]
|
||||
text = "#e0def4"
|
||||
cursor = "#524f67"
|
||||
|
||||
[colors.vi_mode_cursor]
|
||||
text = "#e0def4"
|
||||
cursor = "#524f67"
|
||||
|
||||
[colors.search.matches]
|
||||
foreground = "#908caa"
|
||||
background = "#26233a"
|
||||
|
||||
[colors.search.focused_match]
|
||||
foreground = "#191724"
|
||||
background = "#ebbcba"
|
||||
|
||||
[colors.hints.start]
|
||||
foreground = "#908caa"
|
||||
background = "#1f1d2e"
|
||||
|
||||
[colors.hints.end]
|
||||
foreground = "#6e6a86"
|
||||
background = "#1f1d2e"
|
||||
|
||||
[colors.line_indicator]
|
||||
foreground = "None"
|
||||
background = "None"
|
||||
|
||||
[colors.footer_bar]
|
||||
foreground = "#e0def4"
|
||||
background = "#1f1d2e"
|
||||
|
||||
[colors.selection]
|
||||
text = "#e0def4"
|
||||
background = "#403d52"
|
||||
|
||||
[colors.normal]
|
||||
black = "#26233a"
|
||||
red = "#eb6f92"
|
||||
green = "#31748f"
|
||||
yellow = "#f6c177"
|
||||
blue = "#9ccfd8"
|
||||
magenta = "#c4a7e7"
|
||||
cyan = "#ebbcba"
|
||||
white = "#e0def4"
|
||||
|
||||
[colors.bright]
|
||||
black = "#6e6a86"
|
||||
red = "#eb6f92"
|
||||
green = "#31748f"
|
||||
yellow = "#f6c177"
|
||||
blue = "#9ccfd8"
|
||||
magenta = "#c4a7e7"
|
||||
cyan = "#ebbcba"
|
||||
white = "#e0def4"
|
||||
|
||||
[colors.dim]
|
||||
black = "#6e6a86"
|
||||
red = "#eb6f92"
|
||||
green = "#31748f"
|
||||
yellow = "#f6c177"
|
||||
blue = "#9ccfd8"
|
||||
magenta = "#c4a7e7"
|
||||
cyan = "#ebbcba"
|
||||
white = "#e0def4"
|
|
@ -1,9 +0,0 @@
|
|||
{inputs, ...}: {
|
||||
systemd.user.tmpfiles.users.artur.rules = (hcfg: [
|
||||
"L+ ${hcfg}/qutebrowser/config.py - - - - ${./qutebrowser/config.py}"
|
||||
"L+ ${hcfg}/qutebrowser/rosepine - - - - ${inputs.rosepine-qutebrowser}"
|
||||
"L+ ${hcfg}/kanshi/ - - - - ${./kanshi}"
|
||||
"L+ ${hcfg}/fuzzel/ - - - - ${./fuzzel}"
|
||||
"L+ ${hcfg}/river/ - - - - ${./river}"
|
||||
]) "%h/.config";
|
||||
}
|
165
computers/python/configs/hypr/hyprland.conf
Normal file
165
computers/python/configs/hypr/hyprland.conf
Normal file
|
@ -0,0 +1,165 @@
|
|||
monitor=HDMI-A-1,1920x1080@100,0x0,1
|
||||
|
||||
# exec-once = nm-applet &
|
||||
exec-once = hyprpaper
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_THEME,rose-pine-hyprcursor
|
||||
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 10
|
||||
border_size = 0
|
||||
col.active_border = rgba(00000000)
|
||||
col.inactive_border = rgba(00000000)
|
||||
col.nogroup_border = rgba(00000000)
|
||||
col.nogroup_border_active = rgba(00000000)
|
||||
resize_on_border = false
|
||||
allow_tearing = false
|
||||
layout = master
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 10
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = yes, please :)
|
||||
|
||||
bezier = easeOutQuint,0.23,1,0.32,1
|
||||
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||
bezier = linear,0,0,1,1
|
||||
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||
bezier = quick,0.15,0,0.1,1
|
||||
|
||||
animation = global, 1, 10, default
|
||||
animation = border, 1, 5.39, easeOutQuint
|
||||
animation = windows, 1, 4.79, easeOutQuint
|
||||
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
animation = fadeIn, 1, 1.73, almostLinear
|
||||
animation = fadeOut, 1, 1.46, almostLinear
|
||||
animation = fade, 1, 3.03, quick
|
||||
animation = layers, 1, 3.81, easeOutQuint
|
||||
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1.5, linear, fade
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
}
|
||||
|
||||
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
# uncomment all if you wish to use that.
|
||||
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||
# workspace = f[1], gapsout:0, gapsin:0
|
||||
# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
|
||||
# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
master {
|
||||
new_status = master
|
||||
mfact = 0.60
|
||||
}
|
||||
|
||||
misc {
|
||||
force_default_wallpaper = 0
|
||||
disable_hyprland_logo = true
|
||||
}
|
||||
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
follow_mouse = 1
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
gestures {
|
||||
workspace_swipe = false
|
||||
}
|
||||
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exit,
|
||||
bind = $mainMod, E, exec, emacs
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, R, exec, fuzzel
|
||||
bind = $mainMod, F, exec, emacs --eval '(dired "~")'
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
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
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
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
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
# Example windowrule v1
|
||||
# windowrule = float, ^(kitty)$
|
||||
|
||||
# Example windowrule v2
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrulev2 = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
2
computers/python/configs/hypr/hyprpaper.conf
Normal file
2
computers/python/configs/hypr/hyprpaper.conf
Normal file
|
@ -0,0 +1,2 @@
|
|||
preload = /tmp/wallpapers/rose_pine/04.png
|
||||
wallpaper = HDMI-A-1,/tmp/wallpapers/rose_pine/04.png
|
|
@ -1,15 +1,16 @@
|
|||
#!/bin/sh
|
||||
|
||||
riverctl spawn kanshi
|
||||
riverctl spawn "swaybg -i /tmp/wallpapers/rose_pine/04.png -m fill"
|
||||
riverctl spawn "swaybg -i ~/.local/share/wallpapers/02.jpg -m fill"
|
||||
|
||||
riverctl spawn "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
riverctl spawn "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river"
|
||||
|
||||
riverctl map normal Super+Shift Return spawn emacs
|
||||
riverctl map normal Super T spawn alacritty
|
||||
riverctl map normal Super R spawn fuzzel
|
||||
riverctl map normal Super Q close
|
||||
riverctl map normal Super+Shift E exit
|
||||
riverctl map normal Super+Shift C spawn "~/.config/river/init"
|
||||
riverctl map normal Super J focus-view next
|
||||
riverctl map normal Super K focus-view previous
|
||||
riverctl map normal Super+Shift J swap next
|
||||
|
@ -75,14 +76,16 @@ do
|
|||
riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 5%-'
|
||||
done
|
||||
|
||||
riverctl background-color 0x000000
|
||||
riverctl border-color-focused 0x9ccfd8
|
||||
riverctl border-color-unfocused 0x524f67
|
||||
|
||||
riverctl set-repeat 50 300
|
||||
|
||||
# hacky way of making everything have borders
|
||||
riverctl rule-add ssd
|
||||
|
||||
riverctl background-color 0x00000000
|
||||
riverctl border-color-focused 0x9ccfd8ff
|
||||
riverctl border-color-unfocused 0x524f67ff
|
||||
|
||||
riverctl keyboard-layout "us"
|
||||
riverctl set-repeat 50 300
|
||||
|
||||
riverctl xcursor-theme "BreezeX-RosePine-Linux"
|
||||
|
||||
riverctl default-layout rivertile
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./disks.nix
|
||||
./river.nix
|
||||
./theme.nix
|
||||
./configs
|
||||
./apps.nix
|
||||
./users.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
|
@ -37,57 +37,6 @@
|
|||
enable32Bit = false;
|
||||
};
|
||||
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
inherit
|
||||
(pkgs)
|
||||
nil
|
||||
statix
|
||||
deadnix
|
||||
alejandra
|
||||
wget
|
||||
vesktop
|
||||
nicotine-plus
|
||||
mpv
|
||||
imv
|
||||
lunarvim
|
||||
amberol
|
||||
;
|
||||
};
|
||||
|
||||
alqueva = {
|
||||
mpd = {
|
||||
enable = true;
|
||||
ncmpcpp = true;
|
||||
};
|
||||
|
||||
fonts = {
|
||||
names = {
|
||||
sansSerif = ["Iosevka Comfy Wide Fixed"];
|
||||
monospace = ["Iosevka Comfy Wide Fixed"];
|
||||
serif = ["Iosevka Comfy Wide Motion Fixed"];
|
||||
};
|
||||
|
||||
packages = builtins.attrValues {
|
||||
nerdfonts = pkgs.nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];};
|
||||
inherit (pkgs) font-awesome;
|
||||
inherit (pkgs.iosevka-comfy)
|
||||
comfy-wide-motion-fixed
|
||||
comfy-wide-fixed
|
||||
;
|
||||
};
|
||||
|
||||
enable = true;
|
||||
};
|
||||
|
||||
qutebrowser.enable = true;
|
||||
pipewire.enable = true;
|
||||
openssh.enable = true;
|
||||
libvirt.enable = true;
|
||||
direnv.enable = true;
|
||||
emacs.enable = true;
|
||||
git.enable = true;
|
||||
};
|
||||
|
||||
networking.networkmanager.enable = true;
|
||||
time.timeZone = "Europe/London";
|
||||
i18n.defaultLocale = "nl_NL.UTF-8";
|
||||
|
|
11
computers/python/gnome.nix
Normal file
11
computers/python/gnome.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
_: {
|
||||
alqueva.support.wayland = true;
|
||||
services.xserver = {
|
||||
desktopManager.gnome = {
|
||||
enable = true;
|
||||
};
|
||||
displayManager.gdm = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
programs.river = {
|
||||
enable = true;
|
||||
extraPackages = builtins.attrValues {
|
||||
inherit
|
||||
(pkgs)
|
||||
grim
|
||||
slurp
|
||||
wf-recorder
|
||||
wl-clipboard
|
||||
fuzzel
|
||||
swaybg
|
||||
kanshi
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
config = {
|
||||
common.default = ["gtk"];
|
||||
river.default = ["wlr"];
|
||||
};
|
||||
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"L+ /tmp/wallpapers/ - - - - ${inputs.wallpkgs.packages.${pkgs.system}.rose_pine}/share/wallpapers"
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,10 +1,9 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
gtkTheme = pkgs.rose-pine-gtk-theme;
|
||||
in {
|
||||
}: {
|
||||
programs.dconf = {
|
||||
profiles.user.databases = [
|
||||
{
|
||||
|
@ -13,8 +12,8 @@ in {
|
|||
color-scheme = "prefer-dark";
|
||||
cursor-size = lib.gvariant.mkUint32 24;
|
||||
cursor-theme = "BreezeX-RosePine-Linux";
|
||||
gtk-theme = "rose-pine";
|
||||
icon-theme = "rose-pine";
|
||||
gtk-theme = "rose-pine";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -30,13 +29,15 @@ in {
|
|||
environment.systemPackages = builtins.attrValues {
|
||||
inherit
|
||||
(pkgs)
|
||||
rose-pine-gtk-theme
|
||||
rose-pine-cursor
|
||||
rose-pine-icon-theme
|
||||
libadwaita # workaround for PyGObject to give apps libadwaita
|
||||
;
|
||||
inherit gtkTheme;
|
||||
};
|
||||
|
||||
systemd.user.tmpfiles.users.artur.rules = [
|
||||
"L+ %h/.config/gtk-4.0/gtk.css - - - - ${gtkTheme}/share/themes/rose-pine/gtk-4.0/gtk.css"
|
||||
systemd.user.tmpfiles.rules = [
|
||||
"L+ %h/.config/gtk-4.0/gtk.css - - - - ${pkgs.rose-pine-gtk-theme}/share/themes/rose-pine/gtk-4.0/gtk.css"
|
||||
"L+ %h/.config/gtk-4.0/gtk-dark.css - - - - ${pkgs.rose-pine-gtk-theme}/share/themes/rose-pine/gtk-4.0/gtk.css"
|
||||
];
|
||||
}
|
||||
|
|
39
computers/python/users.nix
Normal file
39
computers/python/users.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
alqueva.users.artur = {
|
||||
tmpfiles = {
|
||||
".config/qutebrowser/config.py" = ./configs/qutebrowser/config.py;
|
||||
".config/qutebrowser/rosepine" = inputs.rosepine-qutebrowser;
|
||||
".config/kanshi/" = ./configs/kanshi;
|
||||
".config/fuzzel/" = ./configs/fuzzel;
|
||||
".config/river/" = ./configs/river;
|
||||
".config/alacritty" = ./configs/alacritty;
|
||||
".local/share/wallpapers" = "${inputs.wallpkgs.packages.${pkgs.system}.rose_pine}/share/wallpapers/rose_pine";
|
||||
};
|
||||
packages = builtins.attrValues {
|
||||
inherit
|
||||
(pkgs)
|
||||
wget
|
||||
vesktop
|
||||
mpv
|
||||
imv
|
||||
amberol
|
||||
fractal
|
||||
nicotine-plus
|
||||
nautilus
|
||||
;
|
||||
neovim = inputs.painless-neovim.packages.${pkgs.system}.default;
|
||||
};
|
||||
groups = [
|
||||
"wheel"
|
||||
"video"
|
||||
"audio"
|
||||
"networkmanager"
|
||||
"input"
|
||||
"libvirtd"
|
||||
];
|
||||
};
|
||||
}
|
|
@ -13,5 +13,8 @@
|
|||
./xonsh.nix
|
||||
./aliases.nix
|
||||
./libvirt.nix
|
||||
./users.nix
|
||||
./support.nix
|
||||
./river.nix
|
||||
];
|
||||
}
|
||||
|
|
33
computers/shared/river.nix
Normal file
33
computers/shared/river.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{config, lib, pkgs, ...}: let
|
||||
cfg = config.alqueva.river;
|
||||
in {
|
||||
options.alqueva.river = {
|
||||
enable = lib.mkEnableOption "River";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
alqueva.support.wayland = true;
|
||||
|
||||
programs.river = {
|
||||
enable = true;
|
||||
xwayland.enable = false;
|
||||
extraPackages = [
|
||||
pkgs.swaybg
|
||||
pkgs.kanshi
|
||||
];
|
||||
};
|
||||
|
||||
xdg.portal.wlr = {
|
||||
enable = true;
|
||||
settings = {
|
||||
screencast = {
|
||||
output_name = "HDMI-A-1";
|
||||
chooser_type = "simple";
|
||||
chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
};
|
||||
}
|
|
@ -10,7 +10,10 @@ in {
|
|||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.ssh.enableAskPassword = true;
|
||||
programs = {
|
||||
ssh.enableAskPassword = true;
|
||||
seahorse.enable = true;
|
||||
};
|
||||
services.openssh.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
40
computers/shared/support.nix
Normal file
40
computers/shared/support.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{config, lib, pkgs, ...}: let
|
||||
cfg = config.alqueva.support;
|
||||
inherit (lib) mkEnableOption;
|
||||
in {
|
||||
options.alqueva.support = {
|
||||
wayland = mkEnableOption "wayland support";
|
||||
};
|
||||
config = lib.mkIf cfg.wayland {
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
config.common = {
|
||||
default = [
|
||||
"gtk"
|
||||
"kde"
|
||||
];
|
||||
};
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
pkgs.xdg-desktop-portal-kde
|
||||
];
|
||||
};
|
||||
|
||||
environment = {
|
||||
systemPackages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
slurp
|
||||
grim
|
||||
wf-recorder
|
||||
fuzzel
|
||||
alacritty
|
||||
wl-clipboard
|
||||
;
|
||||
};
|
||||
sessionVariables = {
|
||||
"NIXOS_OZONE_WL" = "1";
|
||||
"QT_QPA_PLATFORM" = "wayland";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
51
computers/shared/users.nix
Normal file
51
computers/shared/users.nix
Normal file
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) types mkOption;
|
||||
createTmpfilesEntries = entries: builtins.attrValues (builtins.mapAttrs (dest: path: "L+ %h/${dest} - - - - ${path}") entries);
|
||||
cfg = config.alqueva.users;
|
||||
in {
|
||||
options.alqueva.users = mkOption {
|
||||
description = "Users to have on the system.";
|
||||
default = {};
|
||||
type = types.attrsOf (types.submodule {
|
||||
options = {
|
||||
tmpfiles = mkOption {
|
||||
description = "tmpfiles";
|
||||
type = types.attrsOf types.path;
|
||||
default = {};
|
||||
};
|
||||
packages = mkOption {
|
||||
type = types.listOf types.package;
|
||||
default = [];
|
||||
description = "Packages installed to the the defined user.";
|
||||
};
|
||||
groups = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = "Groups to add the defined user to.";
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
config = {
|
||||
users.users =
|
||||
builtins.mapAttrs (user: ucfg: {
|
||||
description = user;
|
||||
isNormalUser = true;
|
||||
extraGroups = ucfg.groups;
|
||||
inherit (ucfg) packages;
|
||||
shell = config.programs.xonsh.package;
|
||||
})
|
||||
cfg;
|
||||
|
||||
systemd.user.tmpfiles.users =
|
||||
builtins.mapAttrs (_: ucfg: {
|
||||
rules = createTmpfilesEntries ucfg.tmpfiles;
|
||||
})
|
||||
cfg;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue