init
This commit is contained in:
parent
1e9b3e0ab1
commit
ad9bd080eb
|
@ -8,18 +8,10 @@
|
||||||
imports = [
|
imports = [
|
||||||
./features/bottom.nix
|
./features/bottom.nix
|
||||||
./features/cava.nix
|
./features/cava.nix
|
||||||
./features/cursor.nix
|
|
||||||
./features/darkman.nix
|
|
||||||
./features/direnv.nix
|
./features/direnv.nix
|
||||||
./features/fish.nix
|
./features/fish.nix
|
||||||
./features/fnott.nix
|
|
||||||
./features/foot.nix
|
|
||||||
./features/fuzzel.nix
|
|
||||||
./features/gammastep.nix
|
|
||||||
./features/git.nix
|
./features/git.nix
|
||||||
./features/helix.nix
|
./features/helix.nix
|
||||||
./features/i3status-rust.nix
|
|
||||||
./features/imv.nix
|
|
||||||
./features/joshuto.nix
|
./features/joshuto.nix
|
||||||
./features/mmtc.nix
|
./features/mmtc.nix
|
||||||
./features/mpd.nix
|
./features/mpd.nix
|
||||||
|
@ -28,10 +20,6 @@
|
||||||
./features/qutebrowser
|
./features/qutebrowser
|
||||||
./features/readline.nix
|
./features/readline.nix
|
||||||
./features/ssh.nix
|
./features/ssh.nix
|
||||||
./features/swayidle.nix
|
|
||||||
./features/swaylock.nix
|
|
||||||
./features/sway.nix
|
|
||||||
./features/zathura.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
@ -53,147 +41,19 @@
|
||||||
progress
|
progress
|
||||||
pv
|
pv
|
||||||
rage
|
rage
|
||||||
ripdrag
|
|
||||||
rsync
|
rsync
|
||||||
sops
|
sops
|
||||||
systeroid
|
systeroid
|
||||||
tokei
|
tokei
|
||||||
tutanota-desktop
|
|
||||||
vscodium
|
vscodium
|
||||||
wf-recorder
|
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mime.enable = true;
|
mime.enable = true;
|
||||||
mimeApps = {
|
|
||||||
enable = true;
|
|
||||||
defaultApplications = let
|
|
||||||
mkDefaultApplication = mimeTypes: desktopFile: (lib.genAttrs mimeTypes (_: desktopFile));
|
|
||||||
in
|
|
||||||
lib.attrsets.mergeAttrsList [
|
|
||||||
(
|
|
||||||
mkDefaultApplication [
|
|
||||||
"x-scheme-handler/http"
|
|
||||||
"x-scheme-handler/https"
|
|
||||||
"text/html"
|
|
||||||
] "qutebrowser.desktop"
|
|
||||||
)
|
|
||||||
(
|
|
||||||
mkDefaultApplication [
|
|
||||||
"x-scheme-handler/mailto"
|
|
||||||
] "tutanota-desktop.desktop"
|
|
||||||
)
|
|
||||||
# TODO
|
|
||||||
# (
|
|
||||||
# mkDefaultApplication [
|
|
||||||
# "inode/directory"
|
|
||||||
# ] ""
|
|
||||||
# )
|
|
||||||
# (
|
|
||||||
# mkDefaultApplication [
|
|
||||||
# "x-scheme-handler/geo"
|
|
||||||
# ] ""
|
|
||||||
# )
|
|
||||||
(
|
|
||||||
mkDefaultApplication [
|
|
||||||
"image/png"
|
|
||||||
"image/jpeg"
|
|
||||||
"image/webp"
|
|
||||||
"image/avif"
|
|
||||||
"image/heif"
|
|
||||||
"image/bmp"
|
|
||||||
"image/x-icns"
|
|
||||||
] "imv.desktop"
|
|
||||||
)
|
|
||||||
(
|
|
||||||
mkDefaultApplication [
|
|
||||||
"audio/aac"
|
|
||||||
"audio/mp4"
|
|
||||||
"audio/mpeg"
|
|
||||||
"audio/mpegurl"
|
|
||||||
"audio/ogg"
|
|
||||||
"audio/vnd.rn-realaudio"
|
|
||||||
"audio/vorbis"
|
|
||||||
"audio/x-flac"
|
|
||||||
"audio/x-mp3"
|
|
||||||
"audio/x-mpegurl"
|
|
||||||
"audio/x-ms-wma"
|
|
||||||
"audio/x-musepack"
|
|
||||||
"audio/x-oggflac"
|
|
||||||
"audio/x-pn-realaudio"
|
|
||||||
"audio/x-scpls"
|
|
||||||
"audio/x-speex"
|
|
||||||
"audio/x-vorbis"
|
|
||||||
"audio/x-vorbis+ogg"
|
|
||||||
"audio/x-wav"
|
|
||||||
] "mpv.desktop"
|
|
||||||
)
|
|
||||||
(
|
|
||||||
mkDefaultApplication [
|
|
||||||
"application/pdf"
|
|
||||||
] "zathura.desktop"
|
|
||||||
)
|
|
||||||
(
|
|
||||||
mkDefaultApplication [
|
|
||||||
# TODO: Add more text filetypes
|
|
||||||
"text/plain"
|
|
||||||
"text/x-cmake"
|
|
||||||
"text/markdown"
|
|
||||||
"application/x-docbook+xml"
|
|
||||||
"application/json"
|
|
||||||
"application/x-yaml"
|
|
||||||
] "helix.desktop"
|
|
||||||
)
|
|
||||||
(
|
|
||||||
mkDefaultApplication [
|
|
||||||
"video/3gp"
|
|
||||||
"video/3gpp2"
|
|
||||||
"video/divx"
|
|
||||||
"video/fli"
|
|
||||||
"video/mp2t"
|
|
||||||
"video/mp4v-es"
|
|
||||||
"video/msvideo"
|
|
||||||
"video/quicktime"
|
|
||||||
"video/vnd.mpegurl"
|
|
||||||
"video/x-avi"
|
|
||||||
"video/x-m4v"
|
|
||||||
"video/x-mpeg2"
|
|
||||||
"video/x-msvideo"
|
|
||||||
"video/x-ms-wmx"
|
|
||||||
"video/x-ogm+ogg"
|
|
||||||
"video/x-theora+ogg"
|
|
||||||
"video/3gpp"
|
|
||||||
"video/avi"
|
|
||||||
"video/dv"
|
|
||||||
"video/flv"
|
|
||||||
"video/mp4"
|
|
||||||
"video/mpeg"
|
|
||||||
"video/ogg"
|
|
||||||
"video/vnd.divx"
|
|
||||||
"video/vnd.rn-realvideo"
|
|
||||||
"video/x-flv"
|
|
||||||
"video/x-matroska"
|
|
||||||
"video/x-ms-asf"
|
|
||||||
"video/x-ms-wmv"
|
|
||||||
"video/x-ogm"
|
|
||||||
"video/x-theora"
|
|
||||||
"application/x-matroska"
|
|
||||||
] "mpv.desktop"
|
|
||||||
)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
userDirs = {
|
userDirs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
createDirectories = true;
|
createDirectories = true;
|
||||||
desktop = "${config.home.homeDirectory}/desk";
|
|
||||||
documents = "${config.home.homeDirectory}/doc";
|
|
||||||
download = "${config.home.homeDirectory}/dl";
|
|
||||||
music = "${config.home.homeDirectory}/music";
|
|
||||||
pictures = "${config.home.homeDirectory}/pic";
|
|
||||||
publicShare = "${config.home.homeDirectory}/pub";
|
|
||||||
templates = "${config.home.homeDirectory}/tpl";
|
|
||||||
videos = "${config.home.homeDirectory}/vid";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
home.pointerCursor = {
|
|
||||||
name = "Bibata-Modern-Classic";
|
|
||||||
size = 16;
|
|
||||||
package = pkgs.bibata-cursors;
|
|
||||||
gtk.enable = true;
|
|
||||||
x11.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
systemd.user.services.darkman = {
|
|
||||||
Unit = {
|
|
||||||
Description = "Framework for dark-mode and light-mode transitions";
|
|
||||||
Documentation = ["man:darkman(1)"];
|
|
||||||
};
|
|
||||||
|
|
||||||
Service = {
|
|
||||||
Type = "dbus";
|
|
||||||
BusName = "nl.whynothugo.darkman";
|
|
||||||
ExecStart = "${pkgs.darkman}/bin/darkman run";
|
|
||||||
Restart = "on-failure";
|
|
||||||
TimeoutStopSec = 15;
|
|
||||||
Slice = "background.slice";
|
|
||||||
LockPersonality = true;
|
|
||||||
RestrictNamespaces = true;
|
|
||||||
SystemCallArchitectures = "native";
|
|
||||||
SystemCallFilter = [
|
|
||||||
"@system-service"
|
|
||||||
"@timer"
|
|
||||||
"mincore"
|
|
||||||
];
|
|
||||||
MemoryDenyWriteExecute = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
Install = {
|
|
||||||
WantedBy = ["default.target"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
services.dunst = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
global = {
|
|
||||||
width = 500;
|
|
||||||
height = 200;
|
|
||||||
offset = "20x50";
|
|
||||||
origin = "top-right";
|
|
||||||
transparency = 10;
|
|
||||||
frame_color = "#eceff1";
|
|
||||||
font = "monospace 12";
|
|
||||||
};
|
|
||||||
|
|
||||||
urgency_normal = {
|
|
||||||
background = "#37474f";
|
|
||||||
foreground = "#eceff1";
|
|
||||||
timeout = 10;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,66 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
services.fnott = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
min-width = 400;
|
|
||||||
max-icon-size = 96;
|
|
||||||
|
|
||||||
stacking-order = "bottom-up";
|
|
||||||
anchor = "top-right";
|
|
||||||
notification-margin = 5;
|
|
||||||
|
|
||||||
selection-helper = "${pkgs.bemenu}/bin/bemenu";
|
|
||||||
|
|
||||||
background = "263238ff";
|
|
||||||
|
|
||||||
border-color = "546e7acf";
|
|
||||||
border-size = 2;
|
|
||||||
|
|
||||||
padding-vertical = 20;
|
|
||||||
padding-horizontal = 20;
|
|
||||||
|
|
||||||
title-font = "sans-serif";
|
|
||||||
title-color = "ffffffff";
|
|
||||||
title-format = "<i>%a%A</i>";
|
|
||||||
|
|
||||||
summary-font = "sans-serif";
|
|
||||||
summary-color = "ffffffff";
|
|
||||||
summary-format = "<b>%s</b>\n";
|
|
||||||
|
|
||||||
body-font = "sans-serif";
|
|
||||||
body-color = "ffffffff";
|
|
||||||
body-format = "%b";
|
|
||||||
|
|
||||||
progress-bar-height = 20;
|
|
||||||
progress-bar-color = "ffffffff";
|
|
||||||
|
|
||||||
max-timeout = 0;
|
|
||||||
default-timeout = 10;
|
|
||||||
idle-timeout = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO
|
|
||||||
low = {
|
|
||||||
background = "2632388f";
|
|
||||||
title-color = "888888ff";
|
|
||||||
summary-color = "888888ff";
|
|
||||||
body-color = "888888ff";
|
|
||||||
};
|
|
||||||
|
|
||||||
normal = {
|
|
||||||
background = "263238ff";
|
|
||||||
title-color = "ffffffff";
|
|
||||||
summary-color = "ffffffff";
|
|
||||||
body-color = "ffffffff";
|
|
||||||
};
|
|
||||||
|
|
||||||
critical = {
|
|
||||||
background = "546e7aaf";
|
|
||||||
title-color = "888888ff";
|
|
||||||
summary-color = "888888ff";
|
|
||||||
body-color = "888888ff";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
programs.foot = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
app-id = "foot";
|
|
||||||
font = "monospace:size=12";
|
|
||||||
initial-window-size-chars = "80x24";
|
|
||||||
notify = "notify-send -a \${app-id} -i \${app-id} \${title} \${body}";
|
|
||||||
};
|
|
||||||
|
|
||||||
scrollback = {
|
|
||||||
lines = 10000;
|
|
||||||
};
|
|
||||||
|
|
||||||
url = {
|
|
||||||
launch = "${pkgs.xdg-utils}/bin/xdg-open \${url}";
|
|
||||||
};
|
|
||||||
|
|
||||||
cursor = {
|
|
||||||
style = "block";
|
|
||||||
blink = "yes";
|
|
||||||
};
|
|
||||||
|
|
||||||
mouse = {
|
|
||||||
hide-when-typing = "yes";
|
|
||||||
};
|
|
||||||
|
|
||||||
colors = {
|
|
||||||
alpha = "0.9";
|
|
||||||
foreground = "a9b1d6";
|
|
||||||
background = "09090a";
|
|
||||||
regular0 = "212121";
|
|
||||||
regular1 = "f07178";
|
|
||||||
regular2 = "c3e88d";
|
|
||||||
regular3 = "ffcb6b";
|
|
||||||
regular4 = "82aaff";
|
|
||||||
regular5 = "c792ea";
|
|
||||||
regular6 = "89ddff";
|
|
||||||
regular7 = "eeffff";
|
|
||||||
bright0 = "4a4a4a";
|
|
||||||
bright1 = "f07178";
|
|
||||||
bright2 = "c3e88d";
|
|
||||||
bright3 = "ffcb6b";
|
|
||||||
bright4 = "82aaff";
|
|
||||||
bright5 = "c792ea";
|
|
||||||
bright6 = "89ddff";
|
|
||||||
bright7 = "ffffff";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
{config, ...}: {
|
|
||||||
programs.fuzzel = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
font = "Iosevka Nerd Font";
|
|
||||||
terminal = "${config.programs.foot.package}/bin/foot";
|
|
||||||
layer = "overlay";
|
|
||||||
};
|
|
||||||
colors = {
|
|
||||||
background = "263238c0";
|
|
||||||
text = "ffffffff";
|
|
||||||
match = "eeffffff";
|
|
||||||
selection = "82aaffdd";
|
|
||||||
selection-text = "eeffffff";
|
|
||||||
border = "314549fa";
|
|
||||||
};
|
|
||||||
border = {
|
|
||||||
width = 2;
|
|
||||||
radius = 5;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
services.gammastep = {
|
|
||||||
enable = true;
|
|
||||||
provider = "geoclue2";
|
|
||||||
tray = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,93 +0,0 @@
|
||||||
{
|
|
||||||
programs.i3status-rust = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
bars = {
|
|
||||||
default = {
|
|
||||||
icons = "material-nf";
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
theme.overrides = {
|
|
||||||
idle_bg = "#000000";
|
|
||||||
idle_fg = "#c5c8c6";
|
|
||||||
info_bg = "#3971ed";
|
|
||||||
info_fg = "#0e0e0ef0";
|
|
||||||
good_bg = "#198844";
|
|
||||||
good_fg = "#0e0e0ef0";
|
|
||||||
warning_bg = "#fba922";
|
|
||||||
warning_fg = "#0e0e0ef0";
|
|
||||||
critical_bg = "#cc342b";
|
|
||||||
critical_fg = "#0e0e0ef0";
|
|
||||||
separator = "";
|
|
||||||
separator_bg = "auto";
|
|
||||||
separator_fg = "auto";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
blocks = [
|
|
||||||
{
|
|
||||||
block = "focused_window";
|
|
||||||
format = "{ $title $visible_marks |}";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
block = "net";
|
|
||||||
format = " $icon ^icon_net_up $speed_up ^icon_net_down $speed_down ";
|
|
||||||
interval = 1;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
block = "memory";
|
|
||||||
format = " $icon $mem_used ";
|
|
||||||
interval = 5;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
block = "cpu";
|
|
||||||
format = " $icon $barchart ";
|
|
||||||
interval = 5;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
block = "disk_space";
|
|
||||||
path = "/home";
|
|
||||||
info_type = "available";
|
|
||||||
alert_unit = "GB";
|
|
||||||
alert = 10;
|
|
||||||
warning = 15;
|
|
||||||
format = " $icon $used/$total ";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
block = "battery";
|
|
||||||
interval = 10;
|
|
||||||
format = " $icon $percentage ";
|
|
||||||
missing_format = "";
|
|
||||||
device = "BAT0";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
block = "battery";
|
|
||||||
interval = 10;
|
|
||||||
format = " $icon $percentage {$time |}";
|
|
||||||
missing_format = "";
|
|
||||||
device = "BAT1";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
block = "sound";
|
|
||||||
format = " $icon {$volume |}";
|
|
||||||
device_kind = "sink";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
block = "sound";
|
|
||||||
format = " $icon {$volume |}";
|
|
||||||
device_kind = "source";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
block = "music";
|
|
||||||
format = "{ $icon $combo $prev $play $next |}";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
block = "time";
|
|
||||||
interval = 1;
|
|
||||||
format = " $icon $timestamp.datetime(f:'%H:%M:%S, %b %d.') ";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
{
|
|
||||||
programs.imv = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
options = {
|
|
||||||
background = "checks";
|
|
||||||
loop_input = false;
|
|
||||||
overlay = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -37,12 +37,10 @@
|
||||||
|
|
||||||
config.bind("td", "config-cycle colors.webpage.darkmode.enabled;; restart")
|
config.bind("td", "config-cycle colors.webpage.darkmode.enabled;; restart")
|
||||||
|
|
||||||
c.tabs.show = "multiple"
|
|
||||||
|
|
||||||
c.tabs.tabs_are_windows = True
|
|
||||||
|
|
||||||
c.content.local_content_can_access_remote_urls = True
|
c.content.local_content_can_access_remote_urls = True
|
||||||
|
|
||||||
|
c.tabs.show = "multiple"
|
||||||
|
|
||||||
c.url.default_page = Path("${./start.html}").as_uri()
|
c.url.default_page = Path("${./start.html}").as_uri()
|
||||||
|
|
||||||
c.url.start_pages = [c.url.default_page]
|
c.url.start_pages = [c.url.default_page]
|
||||||
|
|
|
@ -1,537 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
./cursor.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# TODO: darkman
|
|
||||||
|
|
||||||
wayland.windowManager.sway = let
|
|
||||||
wpctl = "${pkgs.wireplumber}/bin/wpctl";
|
|
||||||
xdg-user-dir = "${pkgs.xdg-user-dirs}/bin/xdg-user-dir";
|
|
||||||
notify-send = "${pkgs.libnotify}/bin/notify-send";
|
|
||||||
slurp = "${pkgs.slurp}/bin/slurp";
|
|
||||||
grim = "${pkgs.grim}/bin/grim";
|
|
||||||
wl-copy = "${pkgs.wl-clipboard}/bin/wl-copy";
|
|
||||||
swaynag = "${config.wayland.windowManager.sway.package}/bin/swaynag";
|
|
||||||
swaymsg = "${config.wayland.windowManager.sway.package}/bin/swaymsg";
|
|
||||||
brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
|
|
||||||
mpc = "${pkgs.mpc-cli}/bin/mpc";
|
|
||||||
fnottctl = "${config.services.fnott.package}/bin/fnottctl";
|
|
||||||
modifier = "Mod4";
|
|
||||||
terminal = "${config.programs.foot.package}/bin/foot";
|
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
systemd = {
|
|
||||||
enable = true;
|
|
||||||
xdgAutostart = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
wrapperFeatures = {
|
|
||||||
base = true;
|
|
||||||
gtk = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: Remove GTK_THEME
|
|
||||||
extraSessionCommands = ''
|
|
||||||
export MOZ_ENABLE_WAYLAND=1
|
|
||||||
export MOZ_DBUS_REMOTE=1
|
|
||||||
export QT_QPA_PLATFORM=wayland-egl
|
|
||||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
|
|
||||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
|
||||||
export SDL_VIDEODRIVER=wayland
|
|
||||||
export BEMENU_OPTS='--tb #3971ed --tf #1d1f21 --fb #1d1f21 --ff #c5c8c6 --nb #1d1f21 --nf #c5c8c6 --hb #282a2e --hf #ffffff --sb #1d1f21 --sf #c5c8c6 --scb #373b41 --scf #3971ed --scrollbar autohide --fn monospace --bottom'
|
|
||||||
export GTK_THEME=Adwaita:dark
|
|
||||||
export XDG_SESSION_DESKTOP="''${XDG_SESSION_DESKTOP:-sway}"
|
|
||||||
export SUDO_ASKPASS=${
|
|
||||||
pkgs.writeShellScript "askpass" ''
|
|
||||||
echo -n | ${pkgs.bemenu}/bin/bemenu --password --prompt askpass
|
|
||||||
''
|
|
||||||
}
|
|
||||||
export GDK_SCALE=1
|
|
||||||
'';
|
|
||||||
|
|
||||||
config = {
|
|
||||||
inherit modifier terminal;
|
|
||||||
|
|
||||||
startup = [
|
|
||||||
{command = "${pkgs.dex}/bin/dex --autostart";}
|
|
||||||
];
|
|
||||||
|
|
||||||
# FIXME: Currently done by extraConfig
|
|
||||||
# defaultWorkspace = "workspace number 1";
|
|
||||||
|
|
||||||
gaps = {
|
|
||||||
smartBorders = "on";
|
|
||||||
smartGaps = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
window = {
|
|
||||||
titlebar = false;
|
|
||||||
|
|
||||||
commands = [
|
|
||||||
{
|
|
||||||
command = "inhibit_idle fullscreen";
|
|
||||||
criteria.app_id = "mpv";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
workspaceAutoBackAndForth = true;
|
|
||||||
|
|
||||||
input = {
|
|
||||||
"type:keyboard" = {
|
|
||||||
xkb_layout = lib.mkDefault "us";
|
|
||||||
repeat_rate = "45";
|
|
||||||
repeat_delay = "250";
|
|
||||||
};
|
|
||||||
|
|
||||||
"type:pointer" = {
|
|
||||||
accel_profile = "flat";
|
|
||||||
};
|
|
||||||
|
|
||||||
"type:touchpad" = {
|
|
||||||
tap = "enabled";
|
|
||||||
natural_scroll = "enabled";
|
|
||||||
dwt = "enabled";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
bars = [
|
|
||||||
{
|
|
||||||
statusCommand = "${config.programs.i3status-rust.package}/bin/i3status-rs ~/.config/i3status-rust/config-default.toml";
|
|
||||||
command = "${config.wayland.windowManager.sway.package}/bin/swaybar";
|
|
||||||
position = "top";
|
|
||||||
trayOutput = "*";
|
|
||||||
fonts = {
|
|
||||||
names = ["Iosevka Nerd Font" "monospace"];
|
|
||||||
style = "Regular";
|
|
||||||
size = 13.0;
|
|
||||||
};
|
|
||||||
colors = {
|
|
||||||
background = "#000000";
|
|
||||||
separator = "#121616f4";
|
|
||||||
statusline = "#121616f4";
|
|
||||||
focusedWorkspace = {
|
|
||||||
border = "#3971ed";
|
|
||||||
background = "#3971ed";
|
|
||||||
text = "#0e0e0ef0";
|
|
||||||
};
|
|
||||||
activeWorkspace = {
|
|
||||||
border = "#c5c8c6";
|
|
||||||
background = "#969896";
|
|
||||||
text = "#0e0e0ef0";
|
|
||||||
};
|
|
||||||
inactiveWorkspace = {
|
|
||||||
border = "#000000";
|
|
||||||
background = "#000000";
|
|
||||||
text = "#c5c8c6";
|
|
||||||
};
|
|
||||||
urgentWorkspace = {
|
|
||||||
border = "#cc342b";
|
|
||||||
background = "#cc342b";
|
|
||||||
text = "#0e0e0ef0";
|
|
||||||
};
|
|
||||||
bindingMode = {
|
|
||||||
border = "#fba922";
|
|
||||||
background = "#fba922";
|
|
||||||
text = "#0e0e0ef0";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
colors = {
|
|
||||||
focused = {
|
|
||||||
border = "#c5c8c6";
|
|
||||||
background = "#3971ed";
|
|
||||||
text = "#0e0e0ef0";
|
|
||||||
indicator = "#3971ed";
|
|
||||||
childBorder = "#3971ed";
|
|
||||||
};
|
|
||||||
focusedInactive = {
|
|
||||||
border = "#121616f4";
|
|
||||||
background = "#121616f4";
|
|
||||||
text = "#c5c8c6";
|
|
||||||
indicator = "#969896";
|
|
||||||
childBorder = "#121616f4";
|
|
||||||
};
|
|
||||||
unfocused = {
|
|
||||||
border = "#121616f4";
|
|
||||||
background = "#0e0e0ef0";
|
|
||||||
text = "#c5c8c6";
|
|
||||||
indicator = "#121616f4";
|
|
||||||
childBorder = "#121616f4";
|
|
||||||
};
|
|
||||||
urgent = {
|
|
||||||
border = "#cc342b";
|
|
||||||
background = "#cc342b";
|
|
||||||
text = "#0e0e0ef0";
|
|
||||||
indicator = "#cc342b";
|
|
||||||
childBorder = "#cc342b";
|
|
||||||
};
|
|
||||||
placeholder = {
|
|
||||||
border = "#0e0e0ef0";
|
|
||||||
background = "#0e0e0ef0";
|
|
||||||
text = "#c5c8c6";
|
|
||||||
indicator = "#0e0e0ef0";
|
|
||||||
childBorder = "#0e0e0ef0";
|
|
||||||
};
|
|
||||||
background = "#ffffff";
|
|
||||||
};
|
|
||||||
|
|
||||||
floating.criteria = [
|
|
||||||
{app_id = "neovidefloat";}
|
|
||||||
{app_id = "mpvfloat";}
|
|
||||||
{app_id = "footfloat";}
|
|
||||||
];
|
|
||||||
|
|
||||||
keybindings = {
|
|
||||||
"${modifier}+Shift+q" = "kill";
|
|
||||||
|
|
||||||
"${modifier}+d" = "exec ${config.programs.fuzzel.package}/bin/fuzzel";
|
|
||||||
"${modifier}+Shift+d" = "exec ${pkgs.bemenu}/bin/bemenu-run --no-exec | xargs ${swaymsg} exec --";
|
|
||||||
|
|
||||||
"${modifier}+Return" = "exec ${terminal}";
|
|
||||||
"${modifier}+Shift+Return" = "exec ${terminal} --class footfloat";
|
|
||||||
|
|
||||||
"${modifier}+Left" = "focus left";
|
|
||||||
"${modifier}+Down" = "focus down";
|
|
||||||
"${modifier}+Up" = "focus up";
|
|
||||||
"${modifier}+Right" = "focus right";
|
|
||||||
|
|
||||||
"${modifier}+h" = "focus left";
|
|
||||||
"${modifier}+j" = "focus down";
|
|
||||||
"${modifier}+k" = "focus up";
|
|
||||||
"${modifier}+l" = "focus right";
|
|
||||||
|
|
||||||
"${modifier}+Shift+Left" = "move left";
|
|
||||||
"${modifier}+Shift+Down" = "move down";
|
|
||||||
"${modifier}+Shift+Up" = "move up";
|
|
||||||
"${modifier}+Shift+Right" = "move right";
|
|
||||||
|
|
||||||
"${modifier}+Shift+h" = "move left";
|
|
||||||
"${modifier}+Shift+j" = "move down";
|
|
||||||
"${modifier}+Shift+k" = "move up";
|
|
||||||
"${modifier}+Shift+l" = "move right";
|
|
||||||
|
|
||||||
"${modifier}+s" = "layout stacking";
|
|
||||||
"${modifier}+w" = "layout tabbed";
|
|
||||||
"${modifier}+e" = "layout toggle split";
|
|
||||||
|
|
||||||
"${modifier}+Space" = "focus mode_toggle";
|
|
||||||
"${modifier}+Shift+Space" = "floating toggle";
|
|
||||||
|
|
||||||
"${modifier}+1" = "workspace number 1";
|
|
||||||
"${modifier}+2" = "workspace number 2";
|
|
||||||
"${modifier}+3" = "workspace number 3";
|
|
||||||
"${modifier}+4" = "workspace number 4";
|
|
||||||
"${modifier}+5" = "workspace number 5";
|
|
||||||
"${modifier}+6" = "workspace number 6";
|
|
||||||
"${modifier}+7" = "workspace number 7";
|
|
||||||
"${modifier}+8" = "workspace number 8";
|
|
||||||
"${modifier}+9" = "workspace number 9";
|
|
||||||
"${modifier}+0" = "workspace number 10";
|
|
||||||
"${modifier}+F1" = "workspace number 11";
|
|
||||||
"${modifier}+F2" = "workspace number 12";
|
|
||||||
"${modifier}+F3" = "workspace number 13";
|
|
||||||
"${modifier}+F4" = "workspace number 14";
|
|
||||||
"${modifier}+F5" = "workspace number 15";
|
|
||||||
"${modifier}+F6" = "workspace number 16";
|
|
||||||
"${modifier}+F7" = "workspace number 17";
|
|
||||||
"${modifier}+F8" = "workspace number 18";
|
|
||||||
"${modifier}+F9" = "workspace number 19";
|
|
||||||
"${modifier}+F10" = "workspace number 20";
|
|
||||||
"${modifier}+F11" = "workspace number 21";
|
|
||||||
"${modifier}+F12" = "workspace number 22";
|
|
||||||
|
|
||||||
"${modifier}+Shift+1" = "move container to workspace number 1";
|
|
||||||
"${modifier}+Shift+2" = "move container to workspace number 2";
|
|
||||||
"${modifier}+Shift+3" = "move container to workspace number 3";
|
|
||||||
"${modifier}+Shift+4" = "move container to workspace number 4";
|
|
||||||
"${modifier}+Shift+5" = "move container to workspace number 5";
|
|
||||||
"${modifier}+Shift+6" = "move container to workspace number 6";
|
|
||||||
"${modifier}+Shift+7" = "move container to workspace number 7";
|
|
||||||
"${modifier}+Shift+8" = "move container to workspace number 8";
|
|
||||||
"${modifier}+Shift+9" = "move container to workspace number 9";
|
|
||||||
"${modifier}+Shift+0" = "move container to workspace number 10";
|
|
||||||
"${modifier}+Shift+F1" = "move container to workspace number 11";
|
|
||||||
"${modifier}+Shift+F2" = "move container to workspace number 12";
|
|
||||||
"${modifier}+Shift+F3" = "move container to workspace number 13";
|
|
||||||
"${modifier}+Shift+F4" = "move container to workspace number 14";
|
|
||||||
"${modifier}+Shift+F5" = "move container to workspace number 15";
|
|
||||||
"${modifier}+Shift+F6" = "move container to workspace number 16";
|
|
||||||
"${modifier}+Shift+F7" = "move container to workspace number 17";
|
|
||||||
"${modifier}+Shift+F8" = "move container to workspace number 18";
|
|
||||||
"${modifier}+Shift+F9" = "move container to workspace number 19";
|
|
||||||
"${modifier}+Shift+F10" = "move container to workspace number 20";
|
|
||||||
"${modifier}+Shift+F11" = "move container to workspace number 21";
|
|
||||||
"${modifier}+Shift+F12" = "move container to workspace number 22";
|
|
||||||
|
|
||||||
Print =
|
|
||||||
"exec "
|
|
||||||
+ pkgs.writeShellScript "grabraw" ''
|
|
||||||
set -e
|
|
||||||
set -o pipefail
|
|
||||||
f=$(${xdg-user-dir} PICTURES)/$(date +'screenshot-%Y%m%d-%H%M%S').png
|
|
||||||
${grim} -t png - | tee -- "$f" | ${wl-copy} --type image/png
|
|
||||||
${notify-send} --icon "$f" -- "$f copied to clipboard."
|
|
||||||
'';
|
|
||||||
"Shift+Print" =
|
|
||||||
"exec "
|
|
||||||
+ pkgs.writeShellScript "grabregion" ''
|
|
||||||
set -e
|
|
||||||
set -o pipefail
|
|
||||||
f=$(${xdg-user-dir} PICTURES)/$(date +'screenshot-%Y%m%d-%H%M%S').png
|
|
||||||
${slurp} | ${grim} -t png -g - - | tee -- "$f" | ${wl-copy} --type image/png
|
|
||||||
${notify-send} --icon "$f" -- "$f copied to clipboard."
|
|
||||||
'';
|
|
||||||
"Control+Shift+Print" =
|
|
||||||
"exec "
|
|
||||||
+ pkgs.writeShellScript "grabcolor" ''
|
|
||||||
set -e
|
|
||||||
set -o pipefail
|
|
||||||
c=$(${slurp} -b 00000000 -p | ${grim} -g - - | ${pkgs.imagemagick}/bin/convert - -format '%[pixel:p{0,0}]' txt:- | tail --lines 1 | cut -d ' ' -f 4)
|
|
||||||
${wl-copy} --type text/plain --trim-newline <<< "$c"
|
|
||||||
${notify-send} -- "$c copied to clipboard."
|
|
||||||
'';
|
|
||||||
|
|
||||||
"${modifier}+x" = "split h";
|
|
||||||
"${modifier}+y" = "split v";
|
|
||||||
|
|
||||||
"${modifier}+f" = "fullscreen toggle";
|
|
||||||
"${modifier}+a" = "focus parent";
|
|
||||||
"${modifier}+c" = "focus child";
|
|
||||||
|
|
||||||
"${modifier}+Shift+c" = "reload";
|
|
||||||
"${modifier}+Shift+r" = "restart";
|
|
||||||
|
|
||||||
"${modifier}+Shift+z" = ''
|
|
||||||
exec ${swaynag} \
|
|
||||||
-t warning \
|
|
||||||
-m 'What do you want to do?' \
|
|
||||||
-b 'Exit sway' 'systemctl --user stop sway-session.target && ${swaymsg} exit' \
|
|
||||||
-b 'Shutdown' 'systemctl --user stop sway-session.target && shutdown now' \
|
|
||||||
-b 'Reboot' 'systemctl --user stop sway-session.target && reboot' \
|
|
||||||
-b 'Suspend' 'loginctl lock-session && systemctl suspend' \
|
|
||||||
-b 'Hibernate' 'loginctl lock-session && systemctl hibernate'
|
|
||||||
'';
|
|
||||||
|
|
||||||
"${modifier}+b" = "exec ${fnottctl} dismiss";
|
|
||||||
"${modifier}+Shift+b" = "exec ${fnottctl} actions";
|
|
||||||
|
|
||||||
XF86AudioRaiseVolume = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 1%+";
|
|
||||||
XF86AudioLowerVolume = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 1%-";
|
|
||||||
"Shift+XF86AudioRaiseVolume" = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 10%+";
|
|
||||||
"Shift+XF86AudioLowerVolume" = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 10%-";
|
|
||||||
XF86AudioMute = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ 1";
|
|
||||||
"Shift+XF86AudioMute" = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ 0";
|
|
||||||
XF86AudioMicMute = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SOURCE@ 1";
|
|
||||||
"Shift+XF86AudioMicMute" = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SOURCE@ 0";
|
|
||||||
"${modifier}+n" = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ 1";
|
|
||||||
"${modifier}+Shift+n" = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SINK@ 0";
|
|
||||||
"${modifier}+m" = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SOURCE@ 1";
|
|
||||||
"${modifier}+Shift+m" = "exec ${wpctl} set-mute @DEFAULT_AUDIO_SOURCE@ 0";
|
|
||||||
|
|
||||||
XF86AudioPause = "exec ${mpc} pause";
|
|
||||||
XF86AudioPlay = "exec ${mpc} play";
|
|
||||||
XF86AudioPrev = "exec ${mpc} prev";
|
|
||||||
XF86AudioNext = "exec ${mpc} next";
|
|
||||||
|
|
||||||
XF86MonBrightnessUp = "exec ${brightnessctl} set +1%";
|
|
||||||
XF86MonBrightnessDown = "exec ${brightnessctl} set 1%-";
|
|
||||||
"Shift+XF86MonBrightnessUp" = "exec ${brightnessctl} set +10%";
|
|
||||||
"Shift+XF86MonBrightnessDown" = "exec ${brightnessctl} set 10%-";
|
|
||||||
|
|
||||||
"${modifier}+Apostrophe" = "move workspace to output right";
|
|
||||||
|
|
||||||
"${modifier}+Minus" = "scratchpad show";
|
|
||||||
"${modifier}+Shift+Minus" = "move scratchpad";
|
|
||||||
"${modifier}+Underscore" = "move container to scratchpad";
|
|
||||||
|
|
||||||
"${modifier}+Shift+s" = "exec loginctl lock-session";
|
|
||||||
|
|
||||||
XF86PowerOff = "exec loginctl lock-session";
|
|
||||||
"Shift+XF86PowerOff" = "exec systemctl suspend-then-hibernate";
|
|
||||||
|
|
||||||
XF86Eject = "exec loginctl lock-session";
|
|
||||||
"Shift+XF86Eject" = "exec systemctl suspend-then-hibernate";
|
|
||||||
|
|
||||||
Pause = "exec loginctl lock-session";
|
|
||||||
"Shift+Pause" = "exec systemctl suspend-then-hibernate";
|
|
||||||
|
|
||||||
"${modifier}+r" = "mode resize";
|
|
||||||
"${modifier}+g" = "mode gaps";
|
|
||||||
"${modifier}+p" = "mode mpc";
|
|
||||||
"${modifier}+i" = "mode microphone";
|
|
||||||
"${modifier}+t" = "mode clipboard";
|
|
||||||
"${modifier}+v" = "mode volume";
|
|
||||||
"${modifier}+u" = "mode brightness";
|
|
||||||
};
|
|
||||||
|
|
||||||
modes = {
|
|
||||||
resize = {
|
|
||||||
h = "resize shrink width 1 px or 1 ppt";
|
|
||||||
j = "resize grow height 1 px or 1 ppt";
|
|
||||||
k = "resize shrink height 1 px or 1 ppt";
|
|
||||||
l = "resize grow width 1 px or 1 ppt";
|
|
||||||
"Shift+h" = "resize shrink width 10 px or 10 ppt";
|
|
||||||
"Shift+j" = "resize grow height 10 px or 10 ppt";
|
|
||||||
"Shift+k" = "resize shrink height 10 px or 10 ppt";
|
|
||||||
"Shift+l" = "resize grow width 10 px or 10 ppt";
|
|
||||||
|
|
||||||
Return = "mode default";
|
|
||||||
Escape = "mode default";
|
|
||||||
};
|
|
||||||
|
|
||||||
volume = {
|
|
||||||
k = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 1%+";
|
|
||||||
j = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 1%-";
|
|
||||||
"Shift+k" = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 10%+";
|
|
||||||
"Shift+j" = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 10%-";
|
|
||||||
|
|
||||||
Return = "mode default";
|
|
||||||
Escape = "mode default";
|
|
||||||
};
|
|
||||||
|
|
||||||
microphone = {
|
|
||||||
XF86AudioRaiseVolume = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SOURCE@ 1%+";
|
|
||||||
XF86AudioLowerVolume = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SOURCE@ 1%-";
|
|
||||||
"Shift+XF86AudioRaiseVolume" = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SOURCE@ 10%+";
|
|
||||||
"Shift+XF86AudioLowerVolume" = "exec ${wpctl} set-volume @DEFAULT_AUDIO_SOURCE@ 10%-";
|
|
||||||
|
|
||||||
Return = "mode default";
|
|
||||||
Escape = "mode default";
|
|
||||||
};
|
|
||||||
|
|
||||||
brightness = {
|
|
||||||
j = "exec ${brightnessctl} set 1%-";
|
|
||||||
k = "exec ${brightnessctl} set +1%";
|
|
||||||
|
|
||||||
Return = "mode default";
|
|
||||||
Escape = "mode default";
|
|
||||||
};
|
|
||||||
|
|
||||||
clipboard = {
|
|
||||||
c = "exec ${wl-copy} --clear";
|
|
||||||
|
|
||||||
Return = "mode default";
|
|
||||||
Escape = "mode default";
|
|
||||||
};
|
|
||||||
|
|
||||||
"gaps inner" = {
|
|
||||||
plus = "gaps inner current plus 1";
|
|
||||||
minus = "gaps inner current minus 1";
|
|
||||||
"0" = "gaps inner current set 0";
|
|
||||||
|
|
||||||
"Shift+plus" = "gaps inner all plus 1";
|
|
||||||
"Shift+minus" = "gaps inner all minus 1";
|
|
||||||
"Shift+0" = "gaps inner all set 0";
|
|
||||||
|
|
||||||
Return = "mode default";
|
|
||||||
Escape = "mode default";
|
|
||||||
};
|
|
||||||
|
|
||||||
"gaps outer" = {
|
|
||||||
plus = "gaps outer current plus 1";
|
|
||||||
minus = "gaps outer current minus 1";
|
|
||||||
"0" = "gaps outer current set 0";
|
|
||||||
|
|
||||||
"Shift+plus" = "gaps outer all plus 1";
|
|
||||||
"Shift+minus" = "gaps outer all minus 1";
|
|
||||||
"Shift+0" = "gaps outer all set 0";
|
|
||||||
|
|
||||||
Return = "mode default";
|
|
||||||
Escape = "mode default";
|
|
||||||
};
|
|
||||||
|
|
||||||
gaps = {
|
|
||||||
o = ''mode "gaps outer"'';
|
|
||||||
i = ''mode "gaps inner"'';
|
|
||||||
|
|
||||||
Return = "mode default";
|
|
||||||
Escape = "mode default";
|
|
||||||
};
|
|
||||||
|
|
||||||
"mpc volume" = {
|
|
||||||
j = "exec ${mpc} volume -1";
|
|
||||||
k = "exec ${mpc} volume +1";
|
|
||||||
"Shift+j" = "exec exec ${mpc} volume -10";
|
|
||||||
"Shift+k" = "exec exec ${mpc} volume +10";
|
|
||||||
|
|
||||||
Return = "mode default";
|
|
||||||
Escape = "mode default";
|
|
||||||
};
|
|
||||||
|
|
||||||
mpc = {
|
|
||||||
XF86AudioRaiseVolume = "exec ${mpc} volume +1";
|
|
||||||
XF86AudioLowerVolume = "exec ${mpc} volume -1";
|
|
||||||
"Shift+XF86AudioRaiseVolume" = "exec ${mpc} volume +10";
|
|
||||||
"Shift+XF86AudioLowerVolume" = "exec ${mpc} volume -10";
|
|
||||||
|
|
||||||
j = "exec ${mpc} next";
|
|
||||||
k = "exec ${mpc} prev";
|
|
||||||
|
|
||||||
c = "exec ${mpc} toggle";
|
|
||||||
|
|
||||||
o = "exec ${mpc} consume on";
|
|
||||||
"Shift+o" = "exec ${mpc} consume off";
|
|
||||||
|
|
||||||
"1" = "exec ${mpc} single on";
|
|
||||||
"Shift+1" = "exec ${mpc} single off";
|
|
||||||
|
|
||||||
r = "exec ${mpc} random on";
|
|
||||||
"Shift+r" = "exec ${mpc} random off";
|
|
||||||
|
|
||||||
p = "exec ${mpc} stop";
|
|
||||||
|
|
||||||
s = "exec ${mpc} shuffle";
|
|
||||||
|
|
||||||
h = "exec ${mpc} seek -00:00:01";
|
|
||||||
l = "exec ${mpc} seek +00:00:01";
|
|
||||||
"Shift+h" = "exec ${mpc} seek -00:00:10";
|
|
||||||
"Shift+l" = "exec ${mpc} seek +00:00:10";
|
|
||||||
|
|
||||||
v = ''mode "mpc volume"'';
|
|
||||||
|
|
||||||
Return = "mode default";
|
|
||||||
Escape = "mode default";
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: bind
|
|
||||||
# wall = {
|
|
||||||
# s = pkgs.writeShellScript "setwall" ''
|
|
||||||
# set -euo pipefail
|
|
||||||
# shopt -s nullglob
|
|
||||||
# shopt -s globstar
|
|
||||||
|
|
||||||
# # select the output first...
|
|
||||||
|
|
||||||
# file=$(
|
|
||||||
# for file in *
|
|
||||||
# do
|
|
||||||
# echo "''${file@Q}"
|
|
||||||
# done | ${pkgs.bemenu}/bin/bemenu --lines 10 --prompt askpass
|
|
||||||
# )
|
|
||||||
|
|
||||||
# if [[ $? != 0 ]]; then
|
|
||||||
# exit 1
|
|
||||||
# fi
|
|
||||||
# '';
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
|
|
||||||
seat."*".xcursor_theme = "${config.home.pointerCursor.name} ${builtins.toString config.home.pointerCursor.size}";
|
|
||||||
};
|
|
||||||
|
|
||||||
# FIXME: Should be done by defaultWorkspace
|
|
||||||
extraConfig = ''
|
|
||||||
workspace number 1
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
services.swayidle = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
events = [
|
|
||||||
{
|
|
||||||
event = "lock";
|
|
||||||
command = "${config.programs.swaylock.package}/bin/swaylock --daemonize";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
event = "before-sleep";
|
|
||||||
command = "${pkgs.systemd}/bin/loginctl lock-session";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
timeouts = [
|
|
||||||
{
|
|
||||||
timeout = 600;
|
|
||||||
command = "${pkgs.chayang}/bin/chayang && ${pkgs.systemd}/bin/loginctl lock-session && ${config.wayland.windowManager.sway.package}/bin/swaymsg output \\\\* power off";
|
|
||||||
resumeCommand = "${config.wayland.windowManager.sway.package}/bin/swaymsg output \\\\* power on";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
programs.swaylock = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
ignore-empty-password = true;
|
|
||||||
show-failed-attempts = true;
|
|
||||||
indicator-caps-lock = true;
|
|
||||||
color = "000000";
|
|
||||||
ring-color = "111111";
|
|
||||||
line-color = "00000000";
|
|
||||||
inside-color = "00000088";
|
|
||||||
separator-color = "00000000";
|
|
||||||
key-hl-color = "000033";
|
|
||||||
indicator-radius = 100;
|
|
||||||
indicator-thickness = 12;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
programs.zathura.enable = true;
|
|
||||||
}
|
|
|
@ -14,15 +14,13 @@
|
||||||
./features/fonts.nix
|
./features/fonts.nix
|
||||||
./features/fwupd.nix
|
./features/fwupd.nix
|
||||||
./features/geoclue.nix
|
./features/geoclue.nix
|
||||||
./features/greetd.nix
|
|
||||||
./features/opengl.nix
|
./features/opengl.nix
|
||||||
./features/openssh.nix
|
./features/openssh.nix
|
||||||
./features/pipewire.nix
|
./features/pipewire.nix
|
||||||
|
./features/plasma.nix
|
||||||
./features/sops.nix
|
./features/sops.nix
|
||||||
./features/sudo.nix
|
./features/sudo.nix
|
||||||
./features/swaylock.nix
|
|
||||||
./features/users.nix
|
./features/users.nix
|
||||||
./features/xdpw.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
|
@ -115,10 +113,7 @@
|
||||||
|
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
# TODO
|
xdg.portal.xdgOpenUsePortal = true;
|
||||||
# xdg.portal.xdgOpenUsePortal = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
programs.kdeconnect.enable = true;
|
||||||
bibata-cursors
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
services.greetd = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
default_session = {
|
|
||||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
41
common/nixos/features/plasma.nix
Normal file
41
common/nixos/features/plasma.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
services = {
|
||||||
|
xserver = {
|
||||||
|
enable = true;
|
||||||
|
desktopManager.plasma5.enable = true;
|
||||||
|
displayManager = {
|
||||||
|
defaultSession = "plasmawayland";
|
||||||
|
sddm = {
|
||||||
|
enable = true;
|
||||||
|
autoNumlock = true;
|
||||||
|
settings = {
|
||||||
|
Theme = {
|
||||||
|
CursorTheme = "breeze_cursors";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
excludePackages = with pkgs; [
|
||||||
|
xterm
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
|
xdg.portal.extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
"SUDO_ASKPASS" = pkgs.writeShellScript "kdialogaskpass" ''
|
||||||
|
exec ${pkgs.kdialog} --password Askpass
|
||||||
|
'';
|
||||||
|
"MOZ_USE_XINPUT2" = "1";
|
||||||
|
"GDK_SCALE" = "1";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
discover
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
security.pam.services.swaylock = {};
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
extraPortals = [
|
|
||||||
pkgs.xdg-desktop-portal-wlr
|
|
||||||
pkgs.xdg-desktop-portal-gtk
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,66 +1,6 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
home = {
|
home = {
|
||||||
username = "lukas";
|
username = "lukas";
|
||||||
stateVersion = "23.11";
|
stateVersion = "23.11";
|
||||||
};
|
};
|
||||||
|
|
||||||
wayland.windowManager.sway = {
|
|
||||||
config = {
|
|
||||||
input."type:keyboard".xkb_layout = "de";
|
|
||||||
|
|
||||||
output.eDP-1 = {
|
|
||||||
mode = "1920x1080";
|
|
||||||
position = "0,0";
|
|
||||||
background = ''"$(${pkgs.xdg-user-dirs}/bin/xdg-user-dir PICTURES)/sway/primary" fill'';
|
|
||||||
};
|
|
||||||
|
|
||||||
workspaceOutputAssign = [
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 1";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 2";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 3";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 4";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 5";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 6";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 7";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 8";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 9";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 10";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
gaps = {
|
|
||||||
inner = 4;
|
|
||||||
outer = 6;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,92 +7,4 @@
|
||||||
];
|
];
|
||||||
stateVersion = "23.11";
|
stateVersion = "23.11";
|
||||||
};
|
};
|
||||||
|
|
||||||
wayland.windowManager.sway = let
|
|
||||||
primary = "Acer Technologies XB283K KV 120918F984200";
|
|
||||||
secondary = "LG Electronics LG HDR 4K 0x00008FEE";
|
|
||||||
in {
|
|
||||||
config = {
|
|
||||||
output.${primary} = {
|
|
||||||
mode = "3840x2160@144.004Hz";
|
|
||||||
position = "0,0";
|
|
||||||
background = ''"$(${pkgs.xdg-user-dirs}/bin/xdg-user-dir PICTURES)/sway/primary" fill'';
|
|
||||||
};
|
|
||||||
|
|
||||||
output.${secondary} = {
|
|
||||||
mode = "3840x2160@59.997Hz";
|
|
||||||
position = "3840,-1680";
|
|
||||||
transform = "90";
|
|
||||||
background = ''"$(${pkgs.xdg-user-dirs}/bin/xdg-user-dir PICTURES)/sway/secondary" fill'';
|
|
||||||
};
|
|
||||||
|
|
||||||
workspaceOutputAssign = [
|
|
||||||
{
|
|
||||||
output = primary;
|
|
||||||
workspace = "1";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = primary;
|
|
||||||
workspace = "2";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = primary;
|
|
||||||
workspace = "3";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = primary;
|
|
||||||
workspace = "4";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = primary;
|
|
||||||
workspace = "5";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = primary;
|
|
||||||
workspace = "6";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = primary;
|
|
||||||
workspace = "7";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = primary;
|
|
||||||
workspace = "8";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = primary;
|
|
||||||
workspace = "9";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = primary;
|
|
||||||
workspace = "10";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = secondary;
|
|
||||||
workspace = "11";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = secondary;
|
|
||||||
workspace = "12";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = secondary;
|
|
||||||
workspace = "13";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = secondary;
|
|
||||||
workspace = "14";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
gaps = {
|
|
||||||
inner = 12;
|
|
||||||
outer = 14;
|
|
||||||
};
|
|
||||||
|
|
||||||
input."Razer Razer DeathAdder V3" = {
|
|
||||||
pointer_accel = "0.0";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,66 +1,6 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
home = {
|
home = {
|
||||||
username = "lukas";
|
username = "lukas";
|
||||||
stateVersion = "23.11";
|
stateVersion = "23.11";
|
||||||
};
|
};
|
||||||
|
|
||||||
wayland.windowManager.sway = {
|
|
||||||
config = {
|
|
||||||
input."type:keyboard".xkb_layout = "de";
|
|
||||||
|
|
||||||
output.eDP-1 = {
|
|
||||||
mode = "1920x1080";
|
|
||||||
position = "0,0";
|
|
||||||
background = ''"$(${pkgs.xdg-user-dirs}/bin/xdg-user-dir PICTURES)/sway/primary" fill'';
|
|
||||||
};
|
|
||||||
|
|
||||||
workspaceOutputAssign = [
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 1";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 2";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 3";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 4";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 5";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 6";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 7";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 8";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 9";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
output = "e-DP1";
|
|
||||||
workspace = "number 10";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
gaps = {
|
|
||||||
inner = 4;
|
|
||||||
outer = 6;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,12 +42,4 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
services.mullvad-vpn.enable = true;
|
services.mullvad-vpn.enable = true;
|
||||||
|
|
||||||
services.xserver = {
|
|
||||||
enable = true;
|
|
||||||
layout = "us";
|
|
||||||
libinput.enable = true;
|
|
||||||
windowManager.i3.enable = true;
|
|
||||||
displayManager.startx.enable = true;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue