Switch back to sway (and all the changes that involved)
This commit is contained in:
parent
7376697711
commit
bb86cd082d
|
@ -53,7 +53,7 @@
|
||||||
in {
|
in {
|
||||||
inherit hostname iosevkaCustom;
|
inherit hostname iosevkaCustom;
|
||||||
inherit (plasma-manager.packages.${system}) rc2nix;
|
inherit (plasma-manager.packages.${system}) rc2nix;
|
||||||
accentColourName = "base0C";
|
accentColourName = "base0E";
|
||||||
fonts = with iosevkaCustom; rec {
|
fonts = with iosevkaCustom; rec {
|
||||||
sizes = {
|
sizes = {
|
||||||
applications = 12;
|
applications = 12;
|
||||||
|
@ -91,6 +91,7 @@
|
||||||
}: {
|
}: {
|
||||||
networking = {inherit hostName;};
|
networking = {inherit hostName;};
|
||||||
nix.settings.trusted-users = [username];
|
nix.settings.trusted-users = [username];
|
||||||
|
services.greetd.settings.initial_session.user = username;
|
||||||
programs.${loginShell}.enable = true;
|
programs.${loginShell}.enable = true;
|
||||||
users.users.${username} = {
|
users.users.${username} = {
|
||||||
shell = pkgs.${loginShell};
|
shell = pkgs.${loginShell};
|
||||||
|
|
|
@ -1,4 +1,12 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
imports = [./personal.nix];
|
imports = [./personal.nix];
|
||||||
programs.plasma.configFile.kcminputrc."Libinput/1739/52759/SYNA32AA:00 06CB:CE17 Touchpad".NaturalScroll = true;
|
wayland.windowManager.sway.config = {
|
||||||
|
output."eDP-1".scale = "1.25";
|
||||||
|
workspaceOutputAssign = [
|
||||||
|
{
|
||||||
|
output = "eDP-1";
|
||||||
|
workspace = "1";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1,6 @@
|
||||||
{...}: {imports = [./work.nix];}
|
{...}: {
|
||||||
|
imports = [./work.nix];
|
||||||
|
wayland.windowManager.sway.config = {
|
||||||
|
output."Dell Inc. DELL P3223QE CCG8YN3".scale = "1.5";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -1,4 +1,40 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
imports = [./work.nix];
|
imports = [./work.nix];
|
||||||
programs.plasma.configFile.kcminputrc."Libinput/1160/4132/DELL0A21:00 0488:1024 Touchpad".NaturalScroll = true;
|
wayland.windowManager.sway.config = {
|
||||||
|
output."eDP-1".scale = "1.25";
|
||||||
|
workspaceOutputAssign = [
|
||||||
|
{
|
||||||
|
output = "eDP-1";
|
||||||
|
workspace = "1";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
services.kanshi = {
|
||||||
|
enable = true;
|
||||||
|
settings = let
|
||||||
|
laptopScreen = {
|
||||||
|
criteria = "eDP-1";
|
||||||
|
scale = 1.25;
|
||||||
|
position = "2560,576";
|
||||||
|
};
|
||||||
|
monitor = {
|
||||||
|
criteria = "Dell Inc. DELL P3223QE CCG8YN3";
|
||||||
|
scale = 1.5;
|
||||||
|
position = "0,0";
|
||||||
|
};
|
||||||
|
in [
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "undocked";
|
||||||
|
outputs = [laptopScreen];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "docked";
|
||||||
|
outputs = [laptopScreen monitor];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,34 @@
|
||||||
{...}: {
|
{pkgs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./personal.nix
|
./personal.nix
|
||||||
./games/default.nix
|
./games/default.nix
|
||||||
./streaming/default.nix
|
./streaming/default.nix
|
||||||
];
|
];
|
||||||
|
wayland.windowManager.sway.config = {
|
||||||
|
output = {
|
||||||
|
"Microstep MSI G27CQ4 E2 Unknown" = {
|
||||||
|
mode = "2560x1440@120Hz";
|
||||||
|
scale = "1.25";
|
||||||
|
position = "1920 0";
|
||||||
|
};
|
||||||
|
"Acer Technologies ED270R TJMEE0043W01" = {
|
||||||
|
mode = "1920x1080@120Hz";
|
||||||
|
position = "0 140";
|
||||||
|
adaptive_sync = "off";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
workspaceOutputAssign = [
|
||||||
|
{
|
||||||
|
output = "DP-1";
|
||||||
|
workspace = "2";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
output = "DP-2";
|
||||||
|
workspace = "1";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
startup = [
|
||||||
|
{command = "${pkgs.xorg.xrandr}/bin/xrandr --output DP-1 --primary";}
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
x = 10;
|
x = 10;
|
||||||
y = 10;
|
y = 10;
|
||||||
};
|
};
|
||||||
# decorations = "none";
|
decorations = "none";
|
||||||
# opacity = 0.9;
|
opacity = 0.85;
|
||||||
};
|
};
|
||||||
live_config_reload = true;
|
live_config_reload = true;
|
||||||
selection.save_to_clipboard = true;
|
selection.save_to_clipboard = true;
|
||||||
|
|
19
home/desktop/avizo/default.nix
Normal file
19
home/desktop/avizo/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
accentColourName,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
services.avizo = {
|
||||||
|
enable = true;
|
||||||
|
settings.default = let
|
||||||
|
sc = config.scheme;
|
||||||
|
rgba = colourName: "${sc."${colourName}-rgb-r"}, ${sc."${colourName}-rgb-g"}, ${sc."${colourName}-rgb-b"}";
|
||||||
|
in {
|
||||||
|
background = "rgba(${rgba "base00"}, 0.9)";
|
||||||
|
bar-bg-color = "rgba(${rgba "base00"}, 0.9)";
|
||||||
|
bar-fg-color = "rgba(${rgba "base05"}, 1.0)";
|
||||||
|
border-color = "rgba(${rgba accentColourName}, 1.0)";
|
||||||
|
image-opacity = "1.0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,18 +1,98 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [./plasma/default.nix];
|
imports = [
|
||||||
|
./sway/default.nix
|
||||||
|
./foot/default.nix
|
||||||
|
./alacritty/default.nix
|
||||||
|
./avizo/default.nix
|
||||||
|
./fuzzel/default.nix
|
||||||
|
./swaylock/default.nix
|
||||||
|
./swayidle/default.nix
|
||||||
|
./swaync/default.nix
|
||||||
|
./waybar/default.nix
|
||||||
|
./wlogout/default.nix
|
||||||
|
];
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
pinentry
|
||||||
|
ffmpeg
|
||||||
|
evince
|
||||||
libreoffice-fresh
|
libreoffice-fresh
|
||||||
inkscape
|
inkscape
|
||||||
webcord
|
webcord
|
||||||
teams-for-linux
|
teams-for-linux
|
||||||
kdePackages.krdc
|
swayimg
|
||||||
|
swaybg
|
||||||
|
(writeShellScriptBin "set-background" ''
|
||||||
|
${swaybg}/bin/swaybg -m fill -i ${./wallpapers/landscapes/tropic_island_day.jpg}
|
||||||
|
'')
|
||||||
|
(writeShellScriptBin "protonmail-setup-bridge" ''
|
||||||
|
pkill -9 -f protonmail-bridge
|
||||||
|
${protonmail-bridge}/bin/protonmail-bridge -c
|
||||||
|
swaymsg exec "${protonmail-bridge}/bin/protonmail-bridge -n"
|
||||||
|
'')
|
||||||
|
(writeShellScriptBin "davmail-setup" ''
|
||||||
|
systemctl --user restart davmail # Ensure config file is present
|
||||||
|
systemctl --user stop davmail
|
||||||
|
${davmail}/bin/davmail -n ~/.davmail.properties
|
||||||
|
systemctl --user restart davmail
|
||||||
|
'')
|
||||||
];
|
];
|
||||||
services.syncthing.enable = true;
|
services = {
|
||||||
|
avizo.enable = true;
|
||||||
|
gpg-agent.pinentryPackage = pkgs.pinentry-gtk2;
|
||||||
|
remmina.enable = true;
|
||||||
|
syncthing.enable = true;
|
||||||
|
kdeconnect = {
|
||||||
|
enable = true;
|
||||||
|
indicator = true;
|
||||||
|
};
|
||||||
|
udiskie = {
|
||||||
|
enable = true;
|
||||||
|
notify = true;
|
||||||
|
automount = true;
|
||||||
|
tray = "never";
|
||||||
|
};
|
||||||
|
};
|
||||||
programs.mpv.enable = true;
|
programs.mpv.enable = true;
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
iconTheme = {
|
||||||
|
package = pkgs.papirus-icon-theme.override {color = "violet";};
|
||||||
|
name =
|
||||||
|
if config.scheme.variant == "light"
|
||||||
|
then "Papirus-Light"
|
||||||
|
else "Papirus-Dark";
|
||||||
|
};
|
||||||
|
cursorTheme = {
|
||||||
|
package = pkgs.volantes-cursors;
|
||||||
|
name =
|
||||||
|
if config.scheme.variant == "light"
|
||||||
|
then "volantes_cursors"
|
||||||
|
else "volantes_light_cursors";
|
||||||
|
size = 32;
|
||||||
|
};
|
||||||
|
theme = {
|
||||||
|
package = pkgs.gnome.gnome-themes-extra;
|
||||||
|
name =
|
||||||
|
if config.scheme.variant == "light"
|
||||||
|
then "Adwaita"
|
||||||
|
else "Adwaita-dark";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
style = {
|
||||||
|
package = pkgs.adwaita-qt;
|
||||||
|
name =
|
||||||
|
if config.scheme.variant == "light"
|
||||||
|
then "adwaita"
|
||||||
|
else "adwaita-dark";
|
||||||
|
};
|
||||||
|
};
|
||||||
xdg = {
|
xdg = {
|
||||||
mime.enable = true;
|
mime.enable = true;
|
||||||
mimeApps = let
|
mimeApps = let
|
||||||
|
@ -20,7 +100,12 @@
|
||||||
in {
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
inherit defaultApplications;
|
inherit defaultApplications;
|
||||||
associations.added = defaultApplications;
|
associations = {
|
||||||
|
added = defaultApplications;
|
||||||
|
removed = {
|
||||||
|
"x-scheme-handler/zoomus" = config.xdg.mimeApps.defaultApplications."x-scheme-handler/http";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
userDirs = {
|
userDirs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -33,9 +118,30 @@
|
||||||
awayOnSystemIdle = true;
|
awayOnSystemIdle = true;
|
||||||
closeAppOnCross = true;
|
closeAppOnCross = true;
|
||||||
followSystemTheme = true;
|
followSystemTheme = true;
|
||||||
|
electronCLIFlags = lib.mkIf config.wayland.windowManager.sway.enable [["ozone-platform" "wayland"]];
|
||||||
notificationMethod = "electron";
|
notificationMethod = "electron";
|
||||||
optInTeamsV2 = true;
|
optInTeamsV2 = true;
|
||||||
spellCheckerLanguages = ["en_GB"];
|
spellCheckerLanguages = ["en_GB"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
xresources.properties = with config.scheme.withHashtag; {
|
||||||
|
"*background" = base00;
|
||||||
|
"*foreground" = base05;
|
||||||
|
"*color0" = base00;
|
||||||
|
"*color1" = red;
|
||||||
|
"*color2" = green;
|
||||||
|
"*color3" = yellow;
|
||||||
|
"*color4" = blue;
|
||||||
|
"*color5" = magenta;
|
||||||
|
"*color6" = cyan;
|
||||||
|
"*color7" = base04;
|
||||||
|
"*color8" = base01;
|
||||||
|
"*color9" = red;
|
||||||
|
"*color10" = green;
|
||||||
|
"*color11" = yellow;
|
||||||
|
"*color12" = blue;
|
||||||
|
"*color13" = magenta;
|
||||||
|
"*color14" = cyan;
|
||||||
|
"*color15" = base05;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
47
home/desktop/foot/default.nix
Normal file
47
home/desktop/foot/default.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
fonts,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.foot = {
|
||||||
|
enable = true;
|
||||||
|
server.enable = true;
|
||||||
|
settings = {
|
||||||
|
main = {
|
||||||
|
term = "xterm-256color";
|
||||||
|
locked-title = false;
|
||||||
|
font = "${fonts.monospace.name}:size=${toString fonts.sizes.applications}";
|
||||||
|
dpi-aware = false;
|
||||||
|
pad = "10x10";
|
||||||
|
};
|
||||||
|
bell = {
|
||||||
|
urgent = false;
|
||||||
|
notify = false;
|
||||||
|
visual = false;
|
||||||
|
};
|
||||||
|
cursor = {blink = true;};
|
||||||
|
mouse = {hide-when-typing = true;};
|
||||||
|
colors = with config.scheme; rec {
|
||||||
|
alpha = 0.85;
|
||||||
|
background = base00;
|
||||||
|
foreground = base05;
|
||||||
|
regular0 = base02;
|
||||||
|
regular1 = red;
|
||||||
|
regular2 = green;
|
||||||
|
regular3 = yellow;
|
||||||
|
regular4 = blue;
|
||||||
|
regular5 = magenta;
|
||||||
|
regular6 = cyan;
|
||||||
|
regular7 = base05;
|
||||||
|
bright0 = base04;
|
||||||
|
bright1 = regular1;
|
||||||
|
bright2 = regular2;
|
||||||
|
bright3 = regular3;
|
||||||
|
bright4 = regular4;
|
||||||
|
bright5 = regular5;
|
||||||
|
bright6 = regular6;
|
||||||
|
bright7 = base05;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
46
home/desktop/fuzzel/default.nix
Normal file
46
home/desktop/fuzzel/default.nix
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
fonts,
|
||||||
|
accentColourName,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.fuzzel = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
main = {
|
||||||
|
dpi-aware = false;
|
||||||
|
font = "${fonts.monospace.name}:size=${toString fonts.sizes.popups}";
|
||||||
|
icon-theme = config.gtk.iconTheme.name;
|
||||||
|
icons-enabled = true;
|
||||||
|
fields = "filename,name,generic,categories";
|
||||||
|
fuzzy = true;
|
||||||
|
filter-desktop = true;
|
||||||
|
terminal = with config.programs; "${
|
||||||
|
if alacritty.enable
|
||||||
|
then alacritty.package
|
||||||
|
else pkgs.alacritty
|
||||||
|
}/bin/alacritty -e";
|
||||||
|
lines = 24;
|
||||||
|
width = 80;
|
||||||
|
tabs = 4;
|
||||||
|
layer = "overlay";
|
||||||
|
};
|
||||||
|
colors = let
|
||||||
|
sc = config.scheme;
|
||||||
|
in {
|
||||||
|
background = "${sc.base00}cc"; # 80% Opacity
|
||||||
|
text = "${sc.base05}ff";
|
||||||
|
match = "${sc.red}ff";
|
||||||
|
selection = "${sc.base01}ff";
|
||||||
|
selection-text = "${sc.base05}ff";
|
||||||
|
selection-match = "${sc.red}ff";
|
||||||
|
border = "${sc.${accentColourName}}ff";
|
||||||
|
};
|
||||||
|
border = {
|
||||||
|
width = 1;
|
||||||
|
radius = 10;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
26
home/desktop/mako/default.nix
Normal file
26
home/desktop/mako/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
fonts,
|
||||||
|
accentColourName,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
services.mako = let
|
||||||
|
sc = config.scheme.withHashtag;
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
anchor = "top-right";
|
||||||
|
font = "${fonts.monospace.name} ${toString fonts.sizes.popups}";
|
||||||
|
layer = "top";
|
||||||
|
markup = true;
|
||||||
|
maxVisible = 10;
|
||||||
|
icons = true;
|
||||||
|
iconPath = with config.gtk.iconTheme; "${package}/share/icons/${name}";
|
||||||
|
textColor = "${sc.base05}ff";
|
||||||
|
progressColor = "over ${sc.red}ff";
|
||||||
|
backgroundColor = "${sc.base00}cc";
|
||||||
|
borderColor = "${sc.${accentColourName}}ff";
|
||||||
|
borderRadius = 10;
|
||||||
|
borderSize = 1;
|
||||||
|
defaultTimeout = 0;
|
||||||
|
};
|
||||||
|
}
|
139
home/desktop/rofi/default.nix
Normal file
139
home/desktop/rofi/default.nix
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
fonts,
|
||||||
|
accentColourName,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.rofi = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.rofi-wayland;
|
||||||
|
terminal = with config.programs; "${
|
||||||
|
if alacritty.enable
|
||||||
|
then alacritty.package
|
||||||
|
else pkgs.alacritty
|
||||||
|
}/bin/alacritty";
|
||||||
|
font = fonts.monospace.name;
|
||||||
|
location = "center";
|
||||||
|
plugins = with pkgs; [rofi-emoji];
|
||||||
|
extraConfig = {
|
||||||
|
modi = "run,drun,ssh,window,emoji,combi";
|
||||||
|
combi-modi = "drun,ssh,window,emoji";
|
||||||
|
sidebar-mode = true;
|
||||||
|
sort = true;
|
||||||
|
sorting-method = "fzf";
|
||||||
|
matching = "fuzzy";
|
||||||
|
icon-theme = config.gtk.iconTheme.name;
|
||||||
|
show-icons = true;
|
||||||
|
application-fallback-icon = "application-x-addon";
|
||||||
|
drun-display-format = "{icon} {name} ({categories})";
|
||||||
|
disable-history = false;
|
||||||
|
hide-scrollbar = true;
|
||||||
|
display-run = " Run ";
|
||||||
|
display-drun = " Apps ";
|
||||||
|
display-ssh = " SSH ";
|
||||||
|
display-window = " Move ";
|
||||||
|
display-emoji = " Emoji ";
|
||||||
|
display-combi = " Combi ";
|
||||||
|
};
|
||||||
|
theme = with builtins; let
|
||||||
|
inherit (config.lib.formats.rasi) mkLiteral;
|
||||||
|
sc = config.scheme;
|
||||||
|
bg = mkLiteral "rgba (${sc.base00-rgb-r}, ${sc.base00-rgb-g}, ${sc.base00-rgb-b}, 80%)";
|
||||||
|
bg2 = mkLiteral "rgba (${sc.base01-rgb-r}, ${sc.base01-rgb-g}, ${sc.base01-rgb-b}, 100%)";
|
||||||
|
fg = mkLiteral sc.withHashtag.base05;
|
||||||
|
fg2 = mkLiteral sc.withHashtag.base04;
|
||||||
|
border = mkLiteral sc.withHashtag.${accentColour};
|
||||||
|
blue = mkLiteral sc.withHashtag.blue;
|
||||||
|
in {
|
||||||
|
"*" = {
|
||||||
|
background-color = mkLiteral "transparent";
|
||||||
|
text-color = fg;
|
||||||
|
font = with fonts; "${monospace.name} ${toString sizes.popups}";
|
||||||
|
};
|
||||||
|
|
||||||
|
window = {
|
||||||
|
height = mkLiteral "75%";
|
||||||
|
width = mkLiteral "75%";
|
||||||
|
border = mkLiteral "1px";
|
||||||
|
border-color = border;
|
||||||
|
border-radius = mkLiteral "10px";
|
||||||
|
background-color = bg;
|
||||||
|
};
|
||||||
|
|
||||||
|
inputbar = {
|
||||||
|
children = map mkLiteral ["prompt" "entry"];
|
||||||
|
padding = mkLiteral "2px";
|
||||||
|
};
|
||||||
|
|
||||||
|
prompt = {
|
||||||
|
background-color = bg2;
|
||||||
|
padding = mkLiteral "6px";
|
||||||
|
text-color = blue;
|
||||||
|
border-radius = mkLiteral "10px";
|
||||||
|
margin = mkLiteral "20px 0px 0px 20px";
|
||||||
|
};
|
||||||
|
|
||||||
|
textbox-prompt-colon = {
|
||||||
|
expand = false;
|
||||||
|
str = "=";
|
||||||
|
};
|
||||||
|
|
||||||
|
entry = {
|
||||||
|
padding = mkLiteral "6px";
|
||||||
|
margin = mkLiteral "20px 0px 0px 10px";
|
||||||
|
};
|
||||||
|
|
||||||
|
listview = {
|
||||||
|
border = mkLiteral "0px 0px 0px";
|
||||||
|
padding = mkLiteral "6px 0px 0px";
|
||||||
|
margin = mkLiteral "10px 0px 0px 20px";
|
||||||
|
columns = 2;
|
||||||
|
lines = 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
element = {
|
||||||
|
padding = mkLiteral "5px";
|
||||||
|
};
|
||||||
|
|
||||||
|
"element-icon" = {
|
||||||
|
size = mkLiteral "25px";
|
||||||
|
};
|
||||||
|
|
||||||
|
"element selected" = {
|
||||||
|
background-color = bg2;
|
||||||
|
text-color = blue;
|
||||||
|
border-radius = mkLiteral "10px";
|
||||||
|
};
|
||||||
|
|
||||||
|
mode-switcher = {
|
||||||
|
spacing = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
button = {
|
||||||
|
padding = mkLiteral "10px";
|
||||||
|
text-color = fg2;
|
||||||
|
border-radius = mkLiteral "10px";
|
||||||
|
vertical-align = mkLiteral "0.5";
|
||||||
|
horizontal-align = mkLiteral "0.5";
|
||||||
|
};
|
||||||
|
|
||||||
|
"button selected" = {
|
||||||
|
background-color = bg2;
|
||||||
|
text-color = blue;
|
||||||
|
};
|
||||||
|
|
||||||
|
message = {
|
||||||
|
margin = mkLiteral "2px";
|
||||||
|
padding = mkLiteral "2px";
|
||||||
|
border-radius = mkLiteral "5px";
|
||||||
|
};
|
||||||
|
|
||||||
|
textbox = {
|
||||||
|
padding = mkLiteral "6px";
|
||||||
|
margin = mkLiteral "20px 0px 0px 20px";
|
||||||
|
text-color = blue;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
182
home/desktop/sway/default.nix
Normal file
182
home/desktop/sway/default.nix
Normal file
|
@ -0,0 +1,182 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
fonts,
|
||||||
|
accentColourName,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.waybar.systemd.target = "sway-session.target";
|
||||||
|
services.kanshi.systemdTarget = "sway-session.target";
|
||||||
|
wayland.windowManager.sway = {
|
||||||
|
enable = true;
|
||||||
|
package =
|
||||||
|
pkgs.swayfx.overrideAttrs
|
||||||
|
(old: {passthru.providedSessions = ["sway"];});
|
||||||
|
swaynag.enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
xwayland = true;
|
||||||
|
checkConfig = false;
|
||||||
|
config = {
|
||||||
|
input = {
|
||||||
|
"*" = {
|
||||||
|
xkb_layout = "gb";
|
||||||
|
xkb_options = "ctrl:nocaps";
|
||||||
|
};
|
||||||
|
"type:touchpad" = {
|
||||||
|
tap = "enabled";
|
||||||
|
natural_scroll = "enabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
seat = {
|
||||||
|
"seat0" = {
|
||||||
|
xcursor_theme = with config.gtk.cursorTheme; "${name} ${toString size}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modifier = "Mod4";
|
||||||
|
terminal = "${config.programs.alacritty.package}/bin/alacritty";
|
||||||
|
menu = "${config.programs.fuzzel.package}/bin/fuzzel";
|
||||||
|
workspaceAutoBackAndForth = true;
|
||||||
|
bars = [];
|
||||||
|
gaps = {
|
||||||
|
inner = 5;
|
||||||
|
outer = 0;
|
||||||
|
};
|
||||||
|
fonts = {
|
||||||
|
names = [fonts.monospace.name];
|
||||||
|
style = "regular";
|
||||||
|
size = fonts.sizes.desktop * 1.0;
|
||||||
|
};
|
||||||
|
colors = let
|
||||||
|
sc = config.scheme.withHashtag;
|
||||||
|
text = toString sc.base05;
|
||||||
|
indicator = toString sc.${accentColourName};
|
||||||
|
background = toString sc.base00;
|
||||||
|
in {
|
||||||
|
inherit background;
|
||||||
|
focused = let
|
||||||
|
border = toString sc.${accentColourName};
|
||||||
|
in {
|
||||||
|
inherit background text indicator border;
|
||||||
|
childBorder = border;
|
||||||
|
};
|
||||||
|
focusedInactive = let
|
||||||
|
border = toString sc.base04;
|
||||||
|
in {
|
||||||
|
inherit background text indicator border;
|
||||||
|
childBorder = border;
|
||||||
|
};
|
||||||
|
unfocused = let
|
||||||
|
border = toString sc.base03;
|
||||||
|
in {
|
||||||
|
inherit background text indicator border;
|
||||||
|
childBorder = border;
|
||||||
|
};
|
||||||
|
urgent = let
|
||||||
|
border = toString sc.red;
|
||||||
|
in {
|
||||||
|
inherit background text indicator border;
|
||||||
|
childBorder = border;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
startup = [
|
||||||
|
{command = "${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1";}
|
||||||
|
{command = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n";}
|
||||||
|
{command = "set-background";}
|
||||||
|
];
|
||||||
|
window = {
|
||||||
|
border = 1;
|
||||||
|
titlebar = false;
|
||||||
|
commands = [
|
||||||
|
{
|
||||||
|
criteria.window_role = "(?:pop-up|bubble|dialog)";
|
||||||
|
command = "floating enable";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria.app_id = "(?:org\.kde\.polkit-kde-authentication-agent-1|Pinentry|pavucontrol|\.blueman-manager-wrapped|nm-connection-editor)";
|
||||||
|
command = "floating enable";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria.class = "(?:[Mm]atplotlib|.*\.py|Idl)";
|
||||||
|
command = "floating enable";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# Catch-all for file dialog windows
|
||||||
|
criteria.title = "(?:Open|Save) (?:File|Folder|As)";
|
||||||
|
command = "floating enable, resize set width 1030 height 710";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# Inhibit idle when watching vidoes
|
||||||
|
criteria.app_id = "(?:firefox|mpv)";
|
||||||
|
command = "inhibit_idle fullscreen";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# Window rules for game sessions.
|
||||||
|
# Note: controllers don't reset idle timer
|
||||||
|
criteria.class = "(?:steam_app|Minecraft).*";
|
||||||
|
command = "floating enable, fullscreen enable, inhibit_idle focus";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
floating.border = 1;
|
||||||
|
keybindings = with config; let
|
||||||
|
modifier = wayland.windowManager.sway.config.modifier;
|
||||||
|
in
|
||||||
|
lib.mkOptionDefault {
|
||||||
|
# Movement
|
||||||
|
"${modifier}+comma" = "workspace prev";
|
||||||
|
"${modifier}+period" = "workspace next";
|
||||||
|
"${modifier}+shift+comma" = "move workspace prev";
|
||||||
|
"${modifier}+shift+period" = "move workspace next";
|
||||||
|
"${modifier}+bracketleft" = "move workspace to output left";
|
||||||
|
"${modifier}+bracketright" = "move workspace to output right";
|
||||||
|
|
||||||
|
# Function keys
|
||||||
|
## Sound
|
||||||
|
"XF86AudioMute" = "exec ${services.avizo.package}/bin/volumectl %";
|
||||||
|
"XF86AudioMicMute" = "exec ${services.avizo.package}/bin/volumectl -m %";
|
||||||
|
"XF86AudioRaiseVolume" = "exec ${services.avizo.package}/bin/volumectl -u + 5";
|
||||||
|
"XF86AudioLowerVolume" = "exec ${services.avizo.package}/bin/volumectl -u - 5";
|
||||||
|
|
||||||
|
## Playback
|
||||||
|
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
||||||
|
"XF86AudioStop" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
||||||
|
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
|
||||||
|
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
|
||||||
|
|
||||||
|
## Brightness
|
||||||
|
"XF86MonBrightnessUp" = "exec ${services.avizo.package}/bin/lightctl + 5";
|
||||||
|
"XF86MonBrightnessDown" = "exec ${services.avizo.package}/bin/lightctl - 5";
|
||||||
|
|
||||||
|
# System utilities
|
||||||
|
"Mod4+Mod1+l" = "exec swaylockfx";
|
||||||
|
"${modifier}+z" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw";
|
||||||
|
"${modifier}+Shift+z" = "exec ${pkgs.swaynotificationcenter}/bin/swaync-client -d -sw";
|
||||||
|
"${modifier}+Shift+p" = "exec ${programs.wlogout.package}/bin/wlogout";
|
||||||
|
"${modifier}+Shift+Return" = "exec ${programs.emacs.finalPackage}/bin/emacsclient -c";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
bindgesture swipe:right workspace prev
|
||||||
|
bindgesture swipe:left workspace next
|
||||||
|
corner_radius 10
|
||||||
|
blur enable
|
||||||
|
blur_xray disable
|
||||||
|
blur_passes 3
|
||||||
|
blur_radius 5
|
||||||
|
corner_radius 10
|
||||||
|
shadows disable
|
||||||
|
shadow_blur_radius 0
|
||||||
|
layer_effects "system-menu" blur enable; shadows disable
|
||||||
|
layer_effects "gtk-layer-shell" blur enable; shadows disable
|
||||||
|
layer_effects "notifications" blur enable; shadows disable
|
||||||
|
layer_effects "launcher" blur enable; shadows disable
|
||||||
|
layer_effects "logout_dialog" blur enable; shadows disable
|
||||||
|
layer_effects "waybar" blur enable; shadows disable
|
||||||
|
layer_effects "avizo" blur enable; shadows disable
|
||||||
|
layer_effects "swaync-notification-window" blur enable; shadows disable
|
||||||
|
layer_effects "swaync-control-center" blur enable; shadows disable
|
||||||
|
titlebar_separator enable
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
20
home/desktop/swayidle/default.nix
Normal file
20
home/desktop/swayidle/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [../swaylock/default.nix];
|
||||||
|
services.swayidle = let
|
||||||
|
swaylockfx =
|
||||||
|
pkgs.callPackage ../swaylock/swaylockfx.nix
|
||||||
|
{swaylock-effects = config.programs.swaylock.package;};
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
timeouts = [
|
||||||
|
{
|
||||||
|
timeout = 60 * 15; # 15 minutes
|
||||||
|
command = "${swaylockfx}/bin/swaylockfx";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
48
home/desktop/swaylock/default.nix
Normal file
48
home/desktop/swaylock/default.nix
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
accentColourName,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
(callPackage ./swaylockfx.nix
|
||||||
|
{swaylock-effects = config.programs.swaylock.package;})
|
||||||
|
];
|
||||||
|
programs.swaylock = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.swaylock-effects;
|
||||||
|
# Settings are specifically for swaylock-effects
|
||||||
|
settings = let
|
||||||
|
sc = config.scheme;
|
||||||
|
in {
|
||||||
|
indicator-radius = 100;
|
||||||
|
indicator-thickness = 10;
|
||||||
|
indicator-caps-lock = true;
|
||||||
|
ignore-empty-password = true;
|
||||||
|
show-failed-attempts = true;
|
||||||
|
effect-blur = "5x3";
|
||||||
|
effect-vignette = "0.5:0.5";
|
||||||
|
grace = 2;
|
||||||
|
fade-in = 0.2;
|
||||||
|
bs-hl-color = sc.base06;
|
||||||
|
caps-lock-bs-hl-color = sc.base06;
|
||||||
|
caps-lock-key-hl-color = sc.green;
|
||||||
|
inside-color = "${sc.base00}cc";
|
||||||
|
key-hl-color = sc.green;
|
||||||
|
layout-bg-color = "${sc.base00}cc";
|
||||||
|
layout-border-color = sc.${accentColourName};
|
||||||
|
layout-text-color = sc.base05;
|
||||||
|
ring-color = sc.${accentColourName};
|
||||||
|
ring-clear-color = sc.base06;
|
||||||
|
ring-caps-lock-color = sc.base09;
|
||||||
|
ring-ver-color = sc.blue;
|
||||||
|
ring-wrong-color = sc.red;
|
||||||
|
separator-color = sc.base01;
|
||||||
|
text-color = sc.base05;
|
||||||
|
text-clear-color = sc.base06;
|
||||||
|
text-caps-lock-color = sc.base09;
|
||||||
|
text-ver-color = sc.blue;
|
||||||
|
text-wrong-color = sc.red;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
6
home/desktop/swaylock/swaylockfx.nix
Normal file
6
home/desktop/swaylock/swaylockfx.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
writeShellScriptBin,
|
||||||
|
swaylock-effects,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
writeShellScriptBin "swaylockfx" "${swaylock-effects}/bin/swaylock --screenshots --clock --indicator --grace-no-mouse"
|
360
home/desktop/swaync/default.nix
Normal file
360
home/desktop/swaync/default.nix
Normal file
|
@ -0,0 +1,360 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
fonts,
|
||||||
|
accentColourName,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = [pkgs.swaynotificationcenter];
|
||||||
|
xdg.configFile."swaync/style.css".text = let
|
||||||
|
sc = config.scheme.withHashtag;
|
||||||
|
alpha = "0.85";
|
||||||
|
alpha-background = "rgba(${config.scheme.base00-rgb-r}, ${config.scheme.base00-rgb-g}, ${config.scheme.base00-rgb-b}, ${alpha})";
|
||||||
|
in ''
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-family: "${fonts.monospace.name}";
|
||||||
|
transition: 200ms;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background .notification-row .notification-background {
|
||||||
|
border-radius: 10px;
|
||||||
|
border: 1px solid ${sc.${accentColourName}};
|
||||||
|
margin: 18px;
|
||||||
|
background-color: ${alpha-background};
|
||||||
|
color: ${sc.base05};
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification {
|
||||||
|
padding: 7px;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
.notification-content {
|
||||||
|
margin: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
.notification-content
|
||||||
|
.summary {
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
.notification-content
|
||||||
|
.time {
|
||||||
|
color: ${sc.base04};
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
.notification-content
|
||||||
|
.body {
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
> *:last-child
|
||||||
|
> * {
|
||||||
|
min-height: 3.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
> *:last-child
|
||||||
|
> *
|
||||||
|
.notification-action {
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: ${sc.base01};
|
||||||
|
color: ${sc.base05};
|
||||||
|
margin: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
> *:last-child
|
||||||
|
> *
|
||||||
|
.notification-action:hover {
|
||||||
|
background-color: ${sc.base01};
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
> *:last-child
|
||||||
|
> *
|
||||||
|
.notification-action:active {
|
||||||
|
background-color: ${sc.blue};
|
||||||
|
color: ${sc.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.close-button {
|
||||||
|
margin: 7px;
|
||||||
|
padding: 2px;
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: ${sc.red};
|
||||||
|
color: ${sc.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.close-button:hover {
|
||||||
|
background-color: ${sc.red};
|
||||||
|
color: ${sc.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
.floating-notifications.background
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.close-button:active {
|
||||||
|
background-color: ${sc.red};
|
||||||
|
color: ${sc.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center {
|
||||||
|
border-radius: 10px;
|
||||||
|
border: 1px solid ${sc.${accentColourName}};
|
||||||
|
margin: 18px;
|
||||||
|
background-color: ${alpha-background};
|
||||||
|
color: ${sc.base05};
|
||||||
|
padding: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .widget-title {
|
||||||
|
color: ${sc.base05};
|
||||||
|
font-size: 1.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .widget-title button {
|
||||||
|
border-radius: 7px;
|
||||||
|
background-color: ${sc.base01};
|
||||||
|
color: ${sc.base05};
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .widget-title button:hover {
|
||||||
|
background-color: ${sc.base02};
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .widget-title button:active {
|
||||||
|
background-color: ${sc.base03};
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .notification-row .notification-background {
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: ${sc.base01};
|
||||||
|
color: ${sc.base05};
|
||||||
|
margin-top: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .notification-row .notification-background .notification {
|
||||||
|
padding: 7px;
|
||||||
|
border-radius: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
.notification-content {
|
||||||
|
margin: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
.notification-content
|
||||||
|
.summary {
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
.notification-content
|
||||||
|
.time {
|
||||||
|
color: ${sc.base04};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
.notification-content
|
||||||
|
.body {
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
> *:last-child
|
||||||
|
> * {
|
||||||
|
min-height: 3.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
> *:last-child
|
||||||
|
> *
|
||||||
|
.notification-action {
|
||||||
|
border-radius: 7px;
|
||||||
|
background-color: ${sc.base00};
|
||||||
|
color: ${sc.base05};
|
||||||
|
margin: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
> *:last-child
|
||||||
|
> *
|
||||||
|
.notification-action:hover {
|
||||||
|
background-color: ${sc.base01};;
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.notification
|
||||||
|
> *:last-child
|
||||||
|
> *
|
||||||
|
.notification-action:active {
|
||||||
|
background-color: ${sc.blue};
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .notification-row .notification-background .close-button {
|
||||||
|
margin: 7px;
|
||||||
|
padding: 2px;
|
||||||
|
border-radius: 6.3px;
|
||||||
|
background-color: ${sc.red};
|
||||||
|
color: ${sc.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .notification-row .notification-background .close-button:hover {
|
||||||
|
background-color: ${sc.red};
|
||||||
|
color: ${sc.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center
|
||||||
|
.notification-row
|
||||||
|
.notification-background
|
||||||
|
.close-button:active {
|
||||||
|
background-color: ${sc.red};
|
||||||
|
color: ${sc.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .notification-row .notification-background:hover {
|
||||||
|
background-color: ${sc.base00};
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center .notification-row .notification-background:active {
|
||||||
|
background-color: ${sc.blue};
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
progressbar,
|
||||||
|
progress,
|
||||||
|
trough {
|
||||||
|
border-radius: 12.6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification.critical progress {
|
||||||
|
background-color: ${sc.red};
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification.low progress,
|
||||||
|
.notification.normal progress {
|
||||||
|
background-color: ${sc.blue};
|
||||||
|
}
|
||||||
|
|
||||||
|
trough {
|
||||||
|
background-color: ${sc.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center trough {
|
||||||
|
background-color: ${sc.base03};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-dnd {
|
||||||
|
margin-top: 5px;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: ${sc.base00};
|
||||||
|
border: 1px solid ${sc.base03};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-dnd:checked {
|
||||||
|
background: ${sc.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-center-dnd slider {
|
||||||
|
background: ${sc.base03};
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-dnd {
|
||||||
|
margin: 0px;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-dnd > switch {
|
||||||
|
font-size: initial;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: ${sc.base00};
|
||||||
|
border: 1px solid ${sc.base03};
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-dnd > switch:checked {
|
||||||
|
background: ${sc.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-dnd > switch slider {
|
||||||
|
background: ${sc.base01};
|
||||||
|
border-radius: 8px;
|
||||||
|
border: 1px solid ${sc.${accentColourName}};
|
||||||
|
}
|
||||||
|
|
||||||
|
'';
|
||||||
|
}
|
345
home/desktop/waybar/default.nix
Normal file
345
home/desktop/waybar/default.nix
Normal file
|
@ -0,0 +1,345 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
fonts,
|
||||||
|
accentColourName,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
systemd.user.targets.tray.Unit = {
|
||||||
|
Description = "Home Manager System Tray";
|
||||||
|
Requires = ["graphical-session.target"];
|
||||||
|
};
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
settings.main = {
|
||||||
|
name = "main";
|
||||||
|
layer = "top";
|
||||||
|
position = "bottom";
|
||||||
|
# Layout
|
||||||
|
"modules-left" = [
|
||||||
|
"sway/workspaces"
|
||||||
|
"sway/window"
|
||||||
|
];
|
||||||
|
"modules-center" = [];
|
||||||
|
"modules-right" = [
|
||||||
|
"mpris"
|
||||||
|
"custom/notification"
|
||||||
|
"pulseaudio"
|
||||||
|
"network"
|
||||||
|
"bluetooth"
|
||||||
|
"clock#calendar"
|
||||||
|
"clock"
|
||||||
|
"backlight"
|
||||||
|
"battery"
|
||||||
|
"custom/weather"
|
||||||
|
"tray"
|
||||||
|
];
|
||||||
|
# Module config
|
||||||
|
"sway/workspaces" = {
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
"1" = " ";
|
||||||
|
"2" = " ";
|
||||||
|
"3" = " ";
|
||||||
|
"4" = " ";
|
||||||
|
"5" = " ";
|
||||||
|
"6" = " ";
|
||||||
|
default = " ";
|
||||||
|
urgent = " ";
|
||||||
|
};
|
||||||
|
all-outputs = false;
|
||||||
|
persistent-workspaces = {
|
||||||
|
"1" = [];
|
||||||
|
"2" = [];
|
||||||
|
"3" = [];
|
||||||
|
"4" = [];
|
||||||
|
"5" = [];
|
||||||
|
"6" = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"sway/window" = {
|
||||||
|
"format" = "{title}";
|
||||||
|
"max-length" = 50;
|
||||||
|
"rewrite" = {
|
||||||
|
"(.*) - GNU Emacs at (.*)" = " $1 [$2]";
|
||||||
|
"(alacritty.*)" = " $1";
|
||||||
|
"(foot.*)" = " $1";
|
||||||
|
"(.*) - mpv" = " $1";
|
||||||
|
"swayimg: (.*)" = " $1";
|
||||||
|
"(btm)" = " Resource Usage [$1]";
|
||||||
|
"(cava)" = " Music Visualiser [$1]";
|
||||||
|
"(.*) - Thunar" = " $1";
|
||||||
|
"Mozilla Firefox" = " $1";
|
||||||
|
"(.*) — Mozilla Firefox" = " $1";
|
||||||
|
"Nyxt - (.*)" = " $1";
|
||||||
|
"(.*) - Chromium" = " $1";
|
||||||
|
"(Signal.*)" = " $1";
|
||||||
|
"((?:.*)WebCord.*)" = " $1";
|
||||||
|
"(Cartridges.*)" = " $1";
|
||||||
|
"([Ss]team.*)" = " $1";
|
||||||
|
"(Prism Launcher.*)" = " Minecraft ($1)";
|
||||||
|
"(X2Go Client)" = " $1";
|
||||||
|
"(NoMachine|Nxplayer.bin) (.*)" = " $1 $2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mpris = {
|
||||||
|
"format" = "{status_icon} {player_icon} {artist} - {title}";
|
||||||
|
"tooltip-format" = "{player_icon} ({player}) {dynamic}";
|
||||||
|
"title-len" = 64;
|
||||||
|
"interval" = 1;
|
||||||
|
"dynamic-order" = [
|
||||||
|
"album"
|
||||||
|
"artist"
|
||||||
|
"title"
|
||||||
|
"position"
|
||||||
|
"length"
|
||||||
|
];
|
||||||
|
"player-icons" = {
|
||||||
|
"default" = " ";
|
||||||
|
"emms" = " ";
|
||||||
|
"firefox" = " ";
|
||||||
|
"mpv" = " ";
|
||||||
|
};
|
||||||
|
"status-icons" = {
|
||||||
|
"playing" = "";
|
||||||
|
"paused" = "";
|
||||||
|
"stopped" = "";
|
||||||
|
};
|
||||||
|
"ignored-players" = [];
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
scroll-step = 5;
|
||||||
|
format = "{format_source}{icon}{volume}%";
|
||||||
|
format-muted = "{format_source} ";
|
||||||
|
format-source = " ";
|
||||||
|
format-source-muted = " ";
|
||||||
|
format-icons = {
|
||||||
|
car = " ";
|
||||||
|
default = [" " " " " "];
|
||||||
|
hands-free = " ";
|
||||||
|
headset = " ";
|
||||||
|
phone = " ";
|
||||||
|
portable = " ";
|
||||||
|
headphone = " ";
|
||||||
|
};
|
||||||
|
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
|
||||||
|
on-click-right = "${pkgs.pamixer}/bin/pamixer -t";
|
||||||
|
on-scroll-up = "${pkgs.pamixer}/bin/pamixer -i 5";
|
||||||
|
on-scroll-down = "${pkgs.pamixer}/bin/pamixer -d 5";
|
||||||
|
};
|
||||||
|
disk = {
|
||||||
|
format = " {percentage_used}%";
|
||||||
|
path = config.home.homeDirectory;
|
||||||
|
};
|
||||||
|
cpu = {
|
||||||
|
format = " {usage}%";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
memory = {format = " {}%";};
|
||||||
|
temperature = {
|
||||||
|
critical-threshold = 80;
|
||||||
|
format = "{icon} {temperatureC}°C";
|
||||||
|
format-icons = ["" "" ""];
|
||||||
|
};
|
||||||
|
network = {
|
||||||
|
format-icons = [" " " " " " " "];
|
||||||
|
format-wifi = "{icon}";
|
||||||
|
format-ethernet = " ";
|
||||||
|
tooltip-format = "{essid} ({signalStrength}%)";
|
||||||
|
format-linked = " ";
|
||||||
|
format-disconnected = " ";
|
||||||
|
};
|
||||||
|
bluetooth = {
|
||||||
|
format = "";
|
||||||
|
format-disabled = "";
|
||||||
|
format-off = "";
|
||||||
|
format-on = "";
|
||||||
|
format-connected = "";
|
||||||
|
tooltip-format = "{status} | {device_alias}";
|
||||||
|
on-click = "${pkgs.bluez}/bin/bluetoothctl power on";
|
||||||
|
on-click-right = "${pkgs.bluez}/bin/bluetoothctl power off";
|
||||||
|
};
|
||||||
|
"clock#calendar" = {
|
||||||
|
# format = "{: %Y-%m-%d}";
|
||||||
|
format = "{:%Y-%m-%d}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021
|
||||||
|
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
||||||
|
calendar = {
|
||||||
|
mode = "month";
|
||||||
|
mode-mon-col = 3;
|
||||||
|
weeks-pos = "left";
|
||||||
|
on-scroll = 1;
|
||||||
|
on-click-right = "mode";
|
||||||
|
format = {
|
||||||
|
months = "<span color='#ffead3'><b>{}</b></span>";
|
||||||
|
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||||
|
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
||||||
|
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
||||||
|
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
actions = {
|
||||||
|
on-click-right = "mode";
|
||||||
|
on-scroll-up = "shift_up";
|
||||||
|
on-scroll-down = "shift_down";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
# format = "{: %R}";
|
||||||
|
format = "{:%R}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021
|
||||||
|
};
|
||||||
|
backlight = {
|
||||||
|
format = "{icon}";
|
||||||
|
tooltip-format = "{percent}%";
|
||||||
|
format-icons = [" " " " " " " " " " " " " " " " " "];
|
||||||
|
};
|
||||||
|
battery = {
|
||||||
|
states = {
|
||||||
|
warning = 30;
|
||||||
|
critical = 20;
|
||||||
|
};
|
||||||
|
format = "{icon}";
|
||||||
|
format-charging = " ";
|
||||||
|
format-plugged = " ";
|
||||||
|
tooltip-format = "{capacity}% {time}";
|
||||||
|
format-icons = [" " " " " " " " " " " " " " " " " " " " " "];
|
||||||
|
};
|
||||||
|
"custom/notification" = let
|
||||||
|
swaync = pkgs.swaynotificationcenter;
|
||||||
|
in {
|
||||||
|
"tooltip" = false;
|
||||||
|
"format" = "{icon}{}";
|
||||||
|
"format-icons" = {
|
||||||
|
"notification" = " ";
|
||||||
|
"none" = " ";
|
||||||
|
"dnd-notification" = " ";
|
||||||
|
"dnd-none" = " ";
|
||||||
|
"inhibited-notification" = " ";
|
||||||
|
"inhibited-none" = " ";
|
||||||
|
"dnd-inhibited-notification" = " ";
|
||||||
|
"dnd-inhibited-none" = " ";
|
||||||
|
};
|
||||||
|
"return-type" = "json";
|
||||||
|
"exec-if" = "which ${swaync}/bin/swaync-client";
|
||||||
|
"exec" = "${swaync}/bin/swaync-client -swb";
|
||||||
|
"on-click" = "${swaync}/bin/swaync-client -t -sw";
|
||||||
|
"on-click-right" = "${swaync}/bin/swaync-client -d -sw";
|
||||||
|
"escape" = true;
|
||||||
|
};
|
||||||
|
"custom/weather" = let
|
||||||
|
date-format = "%Y-%m-%d";
|
||||||
|
custom-indicator = "{ICON}{temp_C}({FeelsLikeC})";
|
||||||
|
in {
|
||||||
|
format = "{}°";
|
||||||
|
tooltip = true;
|
||||||
|
interval = 900; # Every 15 minutes
|
||||||
|
exec = ''${pkgs.wttrbar}/bin/wttrbar --location Didcot --date-format "${date-format}" --custom-indicator "${custom-indicator}"'';
|
||||||
|
return-type = "json";
|
||||||
|
};
|
||||||
|
tray = {
|
||||||
|
icon-size = builtins.floor fonts.sizes.popups;
|
||||||
|
show-passive-items = true;
|
||||||
|
spacing = 5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
style = let
|
||||||
|
sc = config.scheme.withHashtag;
|
||||||
|
alpha = "0.85";
|
||||||
|
in ''
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
font-size: ${toString (builtins.floor (builtins.div fonts.sizes.popups 10))}em;
|
||||||
|
font-family: ${fonts.monospace.name};
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
background: transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
window > box {
|
||||||
|
color: ${sc.base05};
|
||||||
|
background: alpha(${sc.base00}, ${alpha});
|
||||||
|
margin: 0px 5px 5px;
|
||||||
|
padding: 0px;
|
||||||
|
border-top: 1px solid ${sc.base04};
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
background: ${sc.base00};
|
||||||
|
border: 1px solid ${sc.${accentColourName}};
|
||||||
|
border-radius: 10px;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
color: ${sc.base05};
|
||||||
|
border: none;
|
||||||
|
padding: 5px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces,
|
||||||
|
#window,
|
||||||
|
#mpris,
|
||||||
|
#pulseaudio,
|
||||||
|
#network,
|
||||||
|
#bluetooth,
|
||||||
|
#backlight,
|
||||||
|
#battery,
|
||||||
|
#clock,
|
||||||
|
#custom-notification,
|
||||||
|
#custom-weather,
|
||||||
|
#tray {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 1px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces,
|
||||||
|
#window,
|
||||||
|
#mpris,
|
||||||
|
#tray,
|
||||||
|
#backlight,
|
||||||
|
#battery,
|
||||||
|
#custom-weather {
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
background: transparent;
|
||||||
|
color: ${sc.base05};
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px 5px;
|
||||||
|
}
|
||||||
|
#workspaces button.persistent {
|
||||||
|
color: ${sc.base03};
|
||||||
|
}
|
||||||
|
#workspaces button.focused {
|
||||||
|
color: ${sc.${accentColourName}};
|
||||||
|
}
|
||||||
|
#workspaces button.urgent {
|
||||||
|
color: ${sc.base09};
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-notification {
|
||||||
|
color: ${sc.base08};
|
||||||
|
}
|
||||||
|
#pulseaudio {
|
||||||
|
color: ${sc.base09};
|
||||||
|
}
|
||||||
|
#network {
|
||||||
|
color: ${sc.base0A};
|
||||||
|
}
|
||||||
|
#bluetooth {
|
||||||
|
color: ${sc.base0B};
|
||||||
|
}
|
||||||
|
#clock.calendar {
|
||||||
|
color: ${sc.base0C};
|
||||||
|
}
|
||||||
|
#clock {
|
||||||
|
color: ${sc.base0D};
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
77
home/desktop/wlogout/default.nix
Normal file
77
home/desktop/wlogout/default.nix
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
fonts,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.wlogout = {
|
||||||
|
enable = true;
|
||||||
|
layout = [
|
||||||
|
{
|
||||||
|
label = "reboot";
|
||||||
|
action = "systemctl reboot";
|
||||||
|
text = "Reboot";
|
||||||
|
keybind = "r";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "shutdown";
|
||||||
|
action = "systemctl poweroff";
|
||||||
|
text = "Shutdown";
|
||||||
|
keybind = "s";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "logout";
|
||||||
|
action = "swaymsg exit";
|
||||||
|
text = "Logout";
|
||||||
|
keybind = "l";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
style = let
|
||||||
|
sc = config.scheme.withHashtag;
|
||||||
|
shutdownIcon = ./icons/shutdown.png;
|
||||||
|
rebootIcon = ./icons/reboot.png;
|
||||||
|
logoutIcon = ./icons/logout.png;
|
||||||
|
in ''
|
||||||
|
* {
|
||||||
|
font-size: ${toString fonts.sizes.popups}px;
|
||||||
|
font-family: "${fonts.sansSerif.name}";
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
border: none;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
background-color: ${sc.base00};
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 25%;
|
||||||
|
box-shadow: none;
|
||||||
|
margin: 5px;
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
background-color: ${sc.base01};
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus {
|
||||||
|
background-color: ${sc.base02};
|
||||||
|
color: ${sc.base05};
|
||||||
|
}
|
||||||
|
|
||||||
|
#shutdown {
|
||||||
|
background-image: url("${shutdownIcon}");
|
||||||
|
}
|
||||||
|
|
||||||
|
#reboot {
|
||||||
|
background-image: url("${rebootIcon}");
|
||||||
|
}
|
||||||
|
|
||||||
|
#logout {
|
||||||
|
background-image: url("${logoutIcon}");
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
BIN
home/desktop/wlogout/icons/hibernate.png
Normal file
BIN
home/desktop/wlogout/icons/hibernate.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
BIN
home/desktop/wlogout/icons/lock.png
Normal file
BIN
home/desktop/wlogout/icons/lock.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.9 KiB |
BIN
home/desktop/wlogout/icons/logout.png
Normal file
BIN
home/desktop/wlogout/icons/logout.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.2 KiB |
BIN
home/desktop/wlogout/icons/reboot.png
Normal file
BIN
home/desktop/wlogout/icons/reboot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
home/desktop/wlogout/icons/shutdown.png
Normal file
BIN
home/desktop/wlogout/icons/shutdown.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
BIN
home/desktop/wlogout/icons/suspend.png
Normal file
BIN
home/desktop/wlogout/icons/suspend.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
|
@ -27,6 +27,7 @@
|
||||||
fixed-font-family = "${fonts.monospace.name}";
|
fixed-font-family = "${fonts.monospace.name}";
|
||||||
variable-font-family = "${fonts.sansSerif.name}";
|
variable-font-family = "${fonts.sansSerif.name}";
|
||||||
font-height = builtins.toString (builtins.floor (builtins.mul fonts.sizes.applications 10));
|
font-height = builtins.toString (builtins.floor (builtins.mul fonts.sizes.applications 10));
|
||||||
|
alpha = "85";
|
||||||
custom-theme-name = "nix";
|
custom-theme-name = "nix";
|
||||||
custom-theme = pkgs.writeTextFile {
|
custom-theme = pkgs.writeTextFile {
|
||||||
name = "custom-emacs-theme";
|
name = "custom-emacs-theme";
|
||||||
|
@ -51,6 +52,8 @@
|
||||||
};
|
};
|
||||||
custom-theme-hash = builtins.hashFile "sha256" "${custom-theme}/${custom-theme-name}-theme.el";
|
custom-theme-hash = builtins.hashFile "sha256" "${custom-theme}/${custom-theme-name}-theme.el";
|
||||||
in ''
|
in ''
|
||||||
|
(add-to-list 'initial-frame-alist '(alpha-background . ${alpha}))
|
||||||
|
(add-to-list 'default-frame-alist '(alpha-background . ${alpha}))
|
||||||
(add-to-list 'custom-theme-load-path "${custom-theme}")
|
(add-to-list 'custom-theme-load-path "${custom-theme}")
|
||||||
(add-to-list 'custom-safe-themes "${custom-theme-hash}")
|
(add-to-list 'custom-safe-themes "${custom-theme-hash}")
|
||||||
(load-theme '${custom-theme-name})
|
(load-theme '${custom-theme-name})
|
||||||
|
|
|
@ -9,27 +9,71 @@
|
||||||
system.autoUpgrade.operation = "boot";
|
system.autoUpgrade.operation = "boot";
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
environment = {
|
environment = {
|
||||||
plasma6 =
|
sessionVariables = {
|
||||||
lib.mkIf config.services.desktopManager.plasma6.enable
|
NIXOS_OZONE_WL = "1";
|
||||||
{excludePackages = with pkgs.kdePackages; [plasma-browser-integration];};
|
GRIM_DEFAULT_DIR = "$HOME/Pictures/Grim";
|
||||||
|
};
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
xdg-utils
|
xdg-utils
|
||||||
|
wtype
|
||||||
|
wl-clipboard
|
||||||
|
libnotify
|
||||||
|
libcamera
|
||||||
|
glib
|
||||||
|
gsettings-desktop-schemas
|
||||||
hunspell
|
hunspell
|
||||||
hunspellDicts.en_GB-large
|
hunspellDicts.en_GB-large
|
||||||
|
pamixer
|
||||||
|
pavucontrol
|
||||||
|
playerctl
|
||||||
|
brightnessctl
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
security = {
|
||||||
|
polkit.enable = true;
|
||||||
|
pam.services.swaylock = {};
|
||||||
|
};
|
||||||
programs = {
|
programs = {
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
|
light.enable = true;
|
||||||
noisetorch.enable = true;
|
noisetorch.enable = true;
|
||||||
kdeconnect.enable = true;
|
kdeconnect.enable = true;
|
||||||
|
file-roller.enable = true;
|
||||||
|
thunar = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.xfce; [thunar-archive-plugin thunar-volman];
|
||||||
|
};
|
||||||
|
sway = {
|
||||||
|
enable = true;
|
||||||
|
package =
|
||||||
|
pkgs.swayfx.overrideAttrs
|
||||||
|
(old: {passthru.providedSessions = ["sway"];});
|
||||||
|
wrapperFeatures.gtk = true;
|
||||||
|
};
|
||||||
gamescope = {
|
gamescope = {
|
||||||
enable = true;
|
enable = true;
|
||||||
capSysNice = true;
|
capSysNice = true;
|
||||||
};
|
};
|
||||||
|
xwayland.enable = true;
|
||||||
|
};
|
||||||
|
gtk.iconCache.enable = true;
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme = "gnome";
|
||||||
|
style = "adwaita";
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
|
dbus.packages = with pkgs; [gcr];
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
|
blueman.enable = true;
|
||||||
printing.enable = true;
|
printing.enable = true;
|
||||||
|
accounts-daemon.enable = true;
|
||||||
|
tumbler.enable = true;
|
||||||
|
udisks2.enable = true;
|
||||||
|
gvfs = {
|
||||||
|
enable = true;
|
||||||
|
package = lib.mkForce pkgs.gnome3.gvfs;
|
||||||
|
};
|
||||||
pipewire = {
|
pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
|
@ -38,21 +82,27 @@
|
||||||
support32Bit = true;
|
support32Bit = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
xserver = {
|
greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
settings = let
|
||||||
|
command = "sway";
|
||||||
|
in {
|
||||||
|
initial_session = {inherit command;};
|
||||||
|
default_session = {inherit command;};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
xserver = {
|
||||||
|
enable = false;
|
||||||
xkb = {
|
xkb = {
|
||||||
layout = "gb";
|
layout = "gb";
|
||||||
variant = "";
|
variant = "";
|
||||||
options = "ctrl:nocaps";
|
options = "ctrl:nocaps";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
displayManager.sddm = {
|
};
|
||||||
enable = true;
|
xdg.portal = {
|
||||||
wayland.enable = true;
|
enable = true;
|
||||||
};
|
config.common.default = "*"; # TODO change for xdg-desktop-portal > 1.17 changes
|
||||||
desktopManager.plasma6 = {
|
extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||||
enable = true;
|
|
||||||
enableQt5Integration = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue