move desktop shit again
This commit is contained in:
parent
df0ffea214
commit
500c18b76a
41 changed files with 69 additions and 69 deletions
20
modules/desktop/audio.nix
Normal file
20
modules/desktop/audio.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{pkgs, ...}: {
|
||||
programs = {
|
||||
noisetorch.enable = true;
|
||||
};
|
||||
services = {
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
pavucontrol
|
||||
volumeicon
|
||||
playerctl
|
||||
|
||||
helvum
|
||||
];
|
||||
}
|
|
@ -1,57 +1,15 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; {
|
||||
{...}: {
|
||||
imports = [
|
||||
./gaming.nix
|
||||
./syncthing.nix
|
||||
./kdeconnect.nix
|
||||
./social.nix
|
||||
./audio.nix
|
||||
./home
|
||||
./dm.nix
|
||||
./tlp.nix
|
||||
./locale.nix
|
||||
./printing.nix
|
||||
./themeing.nix
|
||||
];
|
||||
|
||||
programs.seahorse.enable = true;
|
||||
security.pam.services.jade.enableGnomeKeyring = true;
|
||||
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
programs.xss-lock = {
|
||||
enable = true;
|
||||
lockerCommand = "${pkgs.i3lock}/bin/i3lock -c 1d2021";
|
||||
};
|
||||
|
||||
services.flatpak.enable = true;
|
||||
security.polkit.enable = true;
|
||||
services.illum.enable = true;
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
services.smartd = {
|
||||
enable = true;
|
||||
notifications.test = true;
|
||||
};
|
||||
|
||||
home-manager.users.jade = {pkgs, ...}: {
|
||||
programs.ssh = {
|
||||
controlMaster = "yes";
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
just
|
||||
bacon
|
||||
|
||||
magic-wormhole-rs
|
||||
|
||||
# filemanager
|
||||
xfce.thunar
|
||||
xfce.tumbler
|
||||
xfce.thunar-archive-plugin
|
||||
file-roller
|
||||
|
||||
# from environment.systemPackages cleanup
|
||||
virt-manager
|
||||
ddccontrol-db
|
||||
];
|
||||
};
|
||||
services.upower.enable = true;
|
||||
}
|
||||
|
|
33
modules/desktop/dm.nix
Normal file
33
modules/desktop/dm.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.jade.desktop.dm;
|
||||
in
|
||||
with lib; {
|
||||
options.jade.desktop.dm.autoLogin = {
|
||||
enable = mkEnableOption "Enable Autologin";
|
||||
delay = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
};
|
||||
};
|
||||
config.services = {
|
||||
displayManager = {
|
||||
autoLogin = {
|
||||
enable = cfg.autoLogin.enable;
|
||||
user = "jade";
|
||||
};
|
||||
defaultSession = "niri";
|
||||
};
|
||||
xserver.displayManager.gdm = {
|
||||
enable = true;
|
||||
banner = "Meow :3";
|
||||
autoLogin = {
|
||||
delay = cfg.autoLogin.delay;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.jade.desktop.gaming;
|
||||
in
|
||||
with lib; {
|
||||
options.jade.desktop.gaming = {
|
||||
enable = mkEnableOption "Enable gaming stuff";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
programs.steam.enable = true;
|
||||
home-manager.users.jade = {pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
lutris
|
||||
prismlauncher
|
||||
wineWowPackages.stable
|
||||
dxvk_2
|
||||
vkd3d-proton
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
355
modules/desktop/home/browser.nix
Normal file
355
modules/desktop/home/browser.nix
Normal file
|
@ -0,0 +1,355 @@
|
|||
{pkgs, ...}: {
|
||||
home.file = {
|
||||
".tridactylrc" = {
|
||||
text = ''
|
||||
set editorcmd kitty hx %f +%l
|
||||
set newtab about:blank
|
||||
'';
|
||||
};
|
||||
};
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
package = pkgs.firefox.override {
|
||||
nativeMessagingHosts = [
|
||||
pkgs.tridactyl-native
|
||||
];
|
||||
};
|
||||
policies = {
|
||||
DefaultDownloadDirectory = "\${home}/Downloads";
|
||||
Extensions.Install = builtins.map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") [
|
||||
"ublock-origin"
|
||||
"tridactyl-vim"
|
||||
"privacy-badger17"
|
||||
"gruvbox-dark-theme"
|
||||
"torproject-snowflake"
|
||||
"bitwarden-password-manager"
|
||||
"terms-of-service-didnt-read"
|
||||
"shinigami-eyes"
|
||||
"darkreader"
|
||||
"sponsorblock"
|
||||
"youtube-mrbeastify"
|
||||
"return-youtube-dislikes"
|
||||
"multi-account-containers"
|
||||
"tabby-cat-friend"
|
||||
"indie-wiki-buddy"
|
||||
];
|
||||
Extensions.Uninstall = [
|
||||
"google@search.mozilla.org"
|
||||
"bing@search.mozilla.org"
|
||||
"amazondotcom@search.mozilla.org"
|
||||
"ebay@search.mozilla.org"
|
||||
"twitter@search.mozilla.org"
|
||||
];
|
||||
"DisableFirefoxStudies" = true;
|
||||
"DisableTelemetry" = true;
|
||||
"DisableFeedbackCommands" = true;
|
||||
"DisablePocket" = true;
|
||||
};
|
||||
profiles.jade = {
|
||||
search = {
|
||||
force = true;
|
||||
default = "DuckDuckGo";
|
||||
engines = {
|
||||
"Nix Packages" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["pkgs"];
|
||||
};
|
||||
"Nix Options" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/options";
|
||||
params = [
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["opts"];
|
||||
};
|
||||
"Home manager Options" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://home-manager-options.extranix.com/";
|
||||
params = [
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
{
|
||||
name = "release";
|
||||
value = "master";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["hm"];
|
||||
};
|
||||
"NixOS Wiki" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://nixos.wiki/index.php";
|
||||
params = [
|
||||
{
|
||||
name = "search";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["nxwk"];
|
||||
};
|
||||
"Noogle" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://noogle.dev/q";
|
||||
params = [
|
||||
{
|
||||
name = "term";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
definedAliases = ["ngl"];
|
||||
};
|
||||
"lib.rs" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://lib.rs/search";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
icon = "https://lib.rs/favicon.png";
|
||||
definedAliases = ["libs"];
|
||||
};
|
||||
"rust docs" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://docs.rs/releases/search";
|
||||
params = [
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
icon = "https://docs.rs/-/static/favicon.ico";
|
||||
definedAliases = ["docs"];
|
||||
};
|
||||
"rust docs direct open" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://docs.rs/{searchTerms}";
|
||||
}
|
||||
];
|
||||
definedAliases = ["doc" "docd"];
|
||||
};
|
||||
"rust std docs" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://docs.rust-lang.org/std/index.html";
|
||||
params = [
|
||||
{
|
||||
name = "search";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
icon = "https://doc.rust-lang.org/favicon.ico";
|
||||
definedAliases = ["std"];
|
||||
};
|
||||
"MDN" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://developer.mozilla.org/search";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"Bing".metaData.hidden = true;
|
||||
"Google".metaData.hidden = true;
|
||||
"Amazon.de".metaData.hidden = true;
|
||||
};
|
||||
};
|
||||
settings = {
|
||||
"devtools.editor.keymap" = "vim";
|
||||
"devtools.toolbox.host" = "right";
|
||||
"devtools.theme" = "dark";
|
||||
"webgl.disabled" = false;
|
||||
"browser.urlbar.decodeURLsOnCopy" = true;
|
||||
"browser.urlbar.unitConversion.enabled" = true;
|
||||
"browser.urlbar.suggest.calculator" = true;
|
||||
"browser.compactmode.show" = true;
|
||||
"browser.uidensity" = 1;
|
||||
"screenshots.browser.component.enabled" = true;
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"browser.aboutwelcome.showModal" = false;
|
||||
"browser.aboutwelcome.enabled" = false;
|
||||
"browser.preferences.moreFromMozilla" = false;
|
||||
"browser.menu.showViewImageInfo" = true;
|
||||
"browser.shopping.experience2023.active" = false;
|
||||
"browser.shopping.experience2023.survey.enabled" = false;
|
||||
|
||||
"identity.fxaccounts.enabled" = true;
|
||||
"browser.tabs.firefox-view" = true;
|
||||
"browser.tabs.firefox-view-next" = true;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false;
|
||||
"privacy.trackingprotection.emailtracking.enabled" = true;
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
"privacy.trackingprotection.socialtracking.enabled" = true;
|
||||
|
||||
"browser.ml.chat.enabled" = false;
|
||||
"browser.ml.chat.hideLocalhost" = false;
|
||||
"browser.ml.chat.prompt.prefix" = "";
|
||||
"browser.ml.chat.prompts.0" = "";
|
||||
"browser.ml.chat.prompts.1" = "";
|
||||
"browser.ml.chat.prompts.2" = "";
|
||||
"browser.ml.chat.prompts.3" = "";
|
||||
"browser.ml.chat.provider" = "";
|
||||
"browser.ml.chat.shortcuts" = false;
|
||||
"browser.ml.chat.shortcuts.custom" = false;
|
||||
"browser.ml.chat.shortcuts.longPress" = "";
|
||||
"browser.ml.chat.sidebar" = false;
|
||||
|
||||
"geo.provider.network.logging.enabled" = true;
|
||||
"extensions.getAddons.showPane" = false;
|
||||
"extensions.htmlaboutaddons.recommendations.enabled" = false;
|
||||
"browser.discovery.enabled" = false;
|
||||
"browser.shopping.experience2023.enabled" = false;
|
||||
"datareporting.policy.dataSubmissionEnabled" = false;
|
||||
"datareporting.healthreport.uploadEnabled" = false;
|
||||
"toolkit.telemetry.unified" = false;
|
||||
"toolkit.telemetry.enabled" = false;
|
||||
"toolkit.telemetry.server" = "data:,";
|
||||
"toolkit.telemetry.archive.enabled" = false;
|
||||
"toolkit.telemetry.newProfilePing.enabled" = false;
|
||||
"toolkit.telemetry.shutdownPingSender.enabled" = false;
|
||||
"toolkit.telemetry.updatePing.enabled" = false;
|
||||
"toolkit.telemetry.bhrPing.enabled" = false;
|
||||
"toolkit.telemetry.firstShutdownPing.enabled" = false;
|
||||
"toolkit.telemetry.coverage.opt-out" = true;
|
||||
"toolkit.coverage.opt-out" = true;
|
||||
"toolkit.coverage.endpoint.base" = "";
|
||||
"browser.ping-centre.telemetry" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
|
||||
"browser.newtabpage.activity-stream.telemetry" = false;
|
||||
"app.shield.optoutstudies.enabled" = false;
|
||||
"app.normandy.enabled" = false;
|
||||
"app.normandy.api_url" = "";
|
||||
"dom.private-attribution.submission.enabled" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.showWeather" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.weatherfeed" = false;
|
||||
|
||||
"browser.safebrowsing.malware.enabled" = false;
|
||||
"browser.safebrowsing.phishing.enabled" = false;
|
||||
"browser.safebrowsing.downloads.enabled" = false;
|
||||
"browser.safebrowsing.downloads.remote.enabled" = false;
|
||||
"browser.safebrowsing.downloads.remote.url" = "";
|
||||
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
|
||||
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
|
||||
"browser.safebrowsing.allowOverride" = false;
|
||||
|
||||
"network.prefetch-next" = false;
|
||||
"network.dns.disablePrefetch" = true;
|
||||
"network.dns.disablePrefetchFromHTTPS" = true;
|
||||
"network.predictor.enabled" = false;
|
||||
"network.predictor.enable-prefetch" = false;
|
||||
"network.http.speculative-parallel-limit" = 0;
|
||||
"browser.places.speculativeConnect.enabled" = false;
|
||||
"browser.send_pings" = false;
|
||||
|
||||
"browser.urlbar.pocket.featureGate" = false;
|
||||
"browser.urlbar.weather.featureGate" = false;
|
||||
"browser.urlbar.speculativeConnect.enabled" = false;
|
||||
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
|
||||
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
|
||||
"browser.search.suggest.enabled" = false;
|
||||
"browser.urlbar.suggest.searches" = false;
|
||||
"browser.urlbar.trending.featureGate" = false;
|
||||
|
||||
"security.ssl.require_safe_negotiation" = true;
|
||||
"security.remote_settings.crlite_filters.enabled" = true;
|
||||
"security.pki.crlite_mode" = 2;
|
||||
|
||||
"dom.security.https_only_mode" = true;
|
||||
"dom.security.https_only_mode_pbm" = true;
|
||||
"security.ssl.treat_unsafe_negotiation_as_broken" = true;
|
||||
"browser.xul.error_pages.expert_bad_cert" = true;
|
||||
"network.http.referer.XOriginTrimmingPolicy" = 2;
|
||||
|
||||
"privacy.userContext.enabled" = true;
|
||||
"privacy.userContext.ui.enabled" = true;
|
||||
"privacy.userContext.newTabContainerOnLeftClick.enabled" = true;
|
||||
|
||||
"dom.disable_window_move_resize" = true;
|
||||
|
||||
"browser.uitour.enabled" = false;
|
||||
|
||||
"browser.uitour.url" = "";
|
||||
"permissions.manager.defaultsUrl" = "";
|
||||
"webchannel.allowObject.urlWhitelist" = "";
|
||||
|
||||
"network.IDN_show_punycode" = true;
|
||||
"pdfjs.disabled" = false;
|
||||
"pdfjs.enableScripting" = false;
|
||||
"browser.tabs.searchclipboardfor.middleclick" = false;
|
||||
"browser.download.useDownloadDir" = false;
|
||||
"browser.download.alwaysOpenPanel" = false;
|
||||
|
||||
"browser.download.manager.addToRecentDocs" = false;
|
||||
|
||||
"browser.download.always_ask_before_handling_new_types" = true;
|
||||
"privacy.resistFingerprinting" = true;
|
||||
"privacy.resistFingerprinting.pbmode" = true;
|
||||
"privacy.window.maxInnerWidth" = 1600;
|
||||
"privacy.window.maxInnerHeight" = 900;
|
||||
"privacy.resistFingerprinting.block_mozAddonManager" = true;
|
||||
"privacy.resistFingerprinting.letterboxing" = false;
|
||||
"widget.non-native-theme.enabled" = true;
|
||||
"browser.link.open_newwindow" = 3;
|
||||
"browser.link.open_newwindow.restriction" = 0;
|
||||
"signon.rememberSignons" = false;
|
||||
"dom.popup_allowed_events" = "click dblclick mousedown pointerdown";
|
||||
"browser.pagethumbnails.capturing_disabled" = true;
|
||||
|
||||
"geo.enabled" = false;
|
||||
"full-screen-api.enabled" = false;
|
||||
"permissions.default.geo" = 0;
|
||||
"permissions.default.camera" = 0;
|
||||
"permissions.default.microphone" = 0;
|
||||
"permissions.default.desktop-notification" = 0;
|
||||
"permissions.default.xr" = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
30
modules/desktop/home/default.nix
Normal file
30
modules/desktop/home/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
|||
{...}: {
|
||||
programs.niri.enable = true;
|
||||
home-manager.users.jade = {pkgs, ...}: {
|
||||
imports = [
|
||||
./notifications.nix
|
||||
./terminal.nix
|
||||
./layaway.nix
|
||||
./swayidle.nix
|
||||
./browser.nix
|
||||
./eww
|
||||
./niri
|
||||
];
|
||||
|
||||
# temporary(tm)
|
||||
programs.wofi.enable = true;
|
||||
programs.swaylock.enable = true;
|
||||
services.network-manager-applet.enable = true;
|
||||
xsession.enable = true;
|
||||
|
||||
home.packages = [
|
||||
pkgs.fluent-reader
|
||||
];
|
||||
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
enableSshSupport = true;
|
||||
};
|
||||
};
|
||||
}
|
77
modules/desktop/home/eww/configDir/bottomBar/bottomBar.yuck
Normal file
77
modules/desktop/home/eww/configDir/bottomBar/bottomBar.yuck
Normal file
|
@ -0,0 +1,77 @@
|
|||
(include "bottomBar/workspaces.yuck")
|
||||
(include "bottomBar/traveldings.yuck")
|
||||
|
||||
(defwindow bottomBar
|
||||
:monitor 0
|
||||
:stacking "fg"
|
||||
:wm-ignore true
|
||||
:exclusive true
|
||||
:geometry (geometry
|
||||
:width "100%"
|
||||
:height "33px"
|
||||
:anchor "bottom center")
|
||||
(bottomBar))
|
||||
|
||||
(defwidget bottomBar []
|
||||
(overlay
|
||||
:class "bottomBar"
|
||||
(transform
|
||||
:translate-y "1.5px"
|
||||
(centerbox
|
||||
(box
|
||||
:halign "start"
|
||||
(workspaceWidget)
|
||||
)
|
||||
(box
|
||||
:halign "center"
|
||||
(traveldings)
|
||||
)
|
||||
(box
|
||||
:halign "end"
|
||||
; (label :text "${iceData.speed}km/h")
|
||||
(mullvadThing)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:class "lesbianFlag"
|
||||
:height 1
|
||||
( flagEl :flipped true :color "#D52D00")
|
||||
( flagEl :flipped true :color "#EF7627")
|
||||
( flagEl :flipped true :color "#FF9A56")
|
||||
( flagEl :flipped true :color "#FFFFFF")
|
||||
( flagEl :flipped true :color "#D162A4")
|
||||
( flagEl :flipped true :color "#B55690")
|
||||
( flagEl :flipped true :color "#A30262")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(deflisten mullvad
|
||||
:initial "{\"state\":\"init\"}"
|
||||
`mullvad status -j listen`
|
||||
)
|
||||
|
||||
(defwidget mullvadThing []
|
||||
(box
|
||||
:class "container"
|
||||
(button
|
||||
:height 16
|
||||
:width 16
|
||||
:class "mullvad-state-${mullvad.state}"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget iceTacho []
|
||||
(box
|
||||
:class "iceTacho"
|
||||
:tooltip "Tz${iceTachoData.tzn} (BR ${iceTachoData.br})"
|
||||
(label :text "${iceTachoData.speed} km/h")
|
||||
)
|
||||
)
|
||||
|
||||
(deflisten iceTachoData
|
||||
:initial "null"
|
||||
{ "~/.config/eww/scripts/iceTacho.nu" }
|
||||
)
|
|
@ -0,0 +1,37 @@
|
|||
(defwidget traveldings []
|
||||
(revealer
|
||||
:class "traveldings"
|
||||
:transition "crossfade"
|
||||
:reveal { traveldings_data != "null" }
|
||||
(traveldingsBarWidget)
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget traveldingsBarWidget []
|
||||
(overlay
|
||||
(box
|
||||
:width 640
|
||||
(label
|
||||
:halign "start"
|
||||
:text "${traveldings_data.line} -> ${strlength(traveldings_data.arrival_station) > 24 ? "${substring(traveldings_data.arrival_station, 0, 24)}…" : traveldings_data.arrival_station}${traveldings_data.arrival_platform_data_available ? " (Gl. ${traveldings_data.arrival_platform_real})" : ""}"
|
||||
)
|
||||
(label
|
||||
:halign "end"
|
||||
:text { traveldings_data.time_left >= 3600 ? formattime(traveldings_data.time_left, "noch %-Hh %-Mmin", "Etc/UTC") : formattime(traveldings_data.time_left, "noch %-Mmin", "Etc/UTC") }
|
||||
)
|
||||
)
|
||||
(box
|
||||
(progress
|
||||
:class { traveldings_data.live ? "traveldings_live" : "traveldings_disconnected" }
|
||||
:value {traveldings_data.progress * 100}
|
||||
:orientation "horizontal"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deflisten traveldings_data
|
||||
:initial "null"
|
||||
"traveldings current"
|
||||
)
|
18
modules/desktop/home/eww/configDir/bottomBar/workspaces.yuck
Normal file
18
modules/desktop/home/eww/configDir/bottomBar/workspaces.yuck
Normal file
|
@ -0,0 +1,18 @@
|
|||
(defwidget workspaceWidget []
|
||||
(box
|
||||
:class "workspaces"
|
||||
(for workspace in workspaces
|
||||
(button
|
||||
:style "border-bottom: 4px solid ${workspace.color}${workspace.active ? "; background-color: #3c3836" : ""}"
|
||||
:class "${workspace.focused ? "focused" : ""}"
|
||||
:onclick "swaymsg workspace ${workspace.name}"
|
||||
(label :text "${workspace.idx}")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(deflisten workspaces
|
||||
:initial "[]"
|
||||
"bar-ws-monitor"
|
||||
)
|
58
modules/desktop/home/eww/configDir/eww.css
Normal file
58
modules/desktop/home/eww/configDir/eww.css
Normal file
|
@ -0,0 +1,58 @@
|
|||
label {
|
||||
font: 14pt "Departure Mono Nerd Font";
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 0px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.background {
|
||||
background-color: #1d2021;
|
||||
}
|
||||
|
||||
.workspaces button {
|
||||
border: 0px;
|
||||
padding: 0 3px;
|
||||
}
|
||||
|
||||
.workspaces button.focused {
|
||||
background-color: #504935;
|
||||
}
|
||||
|
||||
.traveldings progressbar trough {
|
||||
border: none;
|
||||
background-color: #3c3836;
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
.traveldings progressbar.traveldings_live progress {
|
||||
background-color: #79740e;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
.traveldings progressbar.traveldings_disconnected progress {
|
||||
background-color: #cc241d;
|
||||
}
|
||||
|
||||
|
||||
.traveldingsWindow {
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.mullvad-state-connected {
|
||||
background-color: #98971a
|
||||
}
|
||||
|
||||
.mullvad-state-connecting {
|
||||
background-color: #d79921
|
||||
}
|
||||
|
||||
.mullvad-state-disconnected {
|
||||
background-color: #cc241d
|
||||
}
|
||||
|
||||
.mullvad-state-init {
|
||||
background-color: #458588
|
||||
}
|
2
modules/desktop/home/eww/configDir/eww.yuck
Normal file
2
modules/desktop/home/eww/configDir/eww.yuck
Normal file
|
@ -0,0 +1,2 @@
|
|||
(include "topBar/topBar.yuck")
|
||||
(include "bottomBar/bottomBar.yuck")
|
78
modules/desktop/home/eww/configDir/scripts/bat.nu
Executable file
78
modules/desktop/home/eww/configDir/scripts/bat.nu
Executable file
|
@ -0,0 +1,78 @@
|
|||
#!/usr/bin/env nu
|
||||
|
||||
const ICONS = [
|
||||
[ normal charging];
|
||||
[ ]
|
||||
[ ]
|
||||
[ ]
|
||||
[ ]
|
||||
[ ]
|
||||
[ ]
|
||||
[ ]
|
||||
[ ]
|
||||
[ ]
|
||||
[ ]
|
||||
[ ]
|
||||
];
|
||||
|
||||
const DELAY = 2sec;
|
||||
|
||||
def "main auto" [] {
|
||||
loop {
|
||||
let paths = ls "/sys/class/power_supply"
|
||||
| each {|it| $it.name | path basename}
|
||||
| filter {|it| $it starts-with "BAT"};
|
||||
|
||||
if ($paths | is-not-empty) {
|
||||
let result = $paths
|
||||
| each {|it| get_and_format $it}
|
||||
| str join " | "
|
||||
| prepend "| "
|
||||
| str join;
|
||||
|
||||
print $result
|
||||
} else {
|
||||
print ""
|
||||
}
|
||||
sleep $DELAY;
|
||||
}
|
||||
}
|
||||
|
||||
def main [ path: string ] {
|
||||
loop {
|
||||
print (get_and_format $path)
|
||||
sleep $DELAY;
|
||||
}
|
||||
}
|
||||
|
||||
def get_and_format [ path: string ] {
|
||||
let fract = get_bat_charge_fraction $path;
|
||||
let is_charging = get_bat_charging_status $path;
|
||||
let percent = ($fract * 100) | math round;
|
||||
|
||||
return $"<span foreground=\"#d65d0e\">(get_bat_icon $fract $is_charging)</span> ($percent)<span foreground=\"#7c6f64\">%</span>";
|
||||
}
|
||||
|
||||
def get_bat_charge_fraction [
|
||||
path: string
|
||||
] {
|
||||
let energy_full = open $"/sys/class/power_supply/($path)/energy_full" | into float;
|
||||
let energy_now = open $"/sys/class/power_supply/($path)/energy_now" | into float;
|
||||
|
||||
$energy_now / $energy_full
|
||||
}
|
||||
|
||||
def get_bat_charging_status [
|
||||
path: string
|
||||
] {
|
||||
let status = open $"/sys/class/power_supply/($path)/status";
|
||||
|
||||
$status like Charging
|
||||
}
|
||||
|
||||
def get_bat_icon [
|
||||
frac: float
|
||||
is_charging = false
|
||||
] {
|
||||
$ICONS | get (($frac * 10) | math round) | get (if ($is_charging) { "charging" } else { "normal" })
|
||||
}
|
38
modules/desktop/home/eww/configDir/scripts/iceTacho.nu
Executable file
38
modules/desktop/home/eww/configDir/scripts/iceTacho.nu
Executable file
|
@ -0,0 +1,38 @@
|
|||
#!/usr/bin/env nu
|
||||
|
||||
const TABLE = {
|
||||
401: 280
|
||||
402: 280
|
||||
403: 330
|
||||
406: 330
|
||||
407: 320
|
||||
408: 320
|
||||
411: 230
|
||||
415: 230
|
||||
412: 265
|
||||
605: 200
|
||||
};
|
||||
|
||||
def main [ ] {
|
||||
loop {
|
||||
if ((iw dev wlp4s0 link | lines | filter {|it| $it =~ "WIFIonICE" } | length) == 1) {
|
||||
let iceData = http get https://iceportal.de/api1/rs/status;
|
||||
let tzn = $iceData.tzn;
|
||||
let br = $iceData.series;
|
||||
let speed = $iceData.speed;
|
||||
let speedfrac = $speed / ($TABLE | get $br);
|
||||
|
||||
print ({
|
||||
tzn: $tzn,
|
||||
br: $br,
|
||||
speed: $speed,
|
||||
frac: $speedfrac
|
||||
} | to json -r);
|
||||
|
||||
sleep 2sec;
|
||||
} else {
|
||||
print "null";
|
||||
sleep 5sec;
|
||||
}
|
||||
}
|
||||
}
|
23
modules/desktop/home/eww/configDir/topBar/sysinfo.yuck
Normal file
23
modules/desktop/home/eww/configDir/topBar/sysinfo.yuck
Normal file
|
@ -0,0 +1,23 @@
|
|||
(deflisten bat
|
||||
:initial "<span foreground=\"#cc241d\">BAT0 ERR</span>"
|
||||
{ "~/.config/eww/scripts/bat.nu auto"}
|
||||
)
|
||||
|
||||
(defwidget cpu []
|
||||
(box
|
||||
:class "cpuIndicator"
|
||||
(label
|
||||
:markup "<span foreground=\"#d65d0e\"></span> ${strlength(round(EWW_CPU.avg, 0)) == 1 ? " ${round(EWW_CPU.avg, 0)}" : round(EWW_CPU.avg, 0)}<span foreground=\"#7c6f64\">%</span>"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget mem []
|
||||
(box
|
||||
:class "memIndicator"
|
||||
(label
|
||||
:markup "<span foreground=\"#d65d0e\"> </span> ${round(EWW_RAM.used_mem_perc, 0)}<span foreground=\"#7c6f64\">%</span>"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
10
modules/desktop/home/eww/configDir/topBar/time.yuck
Normal file
10
modules/desktop/home/eww/configDir/topBar/time.yuck
Normal file
|
@ -0,0 +1,10 @@
|
|||
(defwidget time []
|
||||
(label
|
||||
:markup {
|
||||
formattime(
|
||||
EWW_TIME,
|
||||
"<span foreground=\"#d65d0e\"></span> %Y<span foreground=\"#7c6f64\">-</span>%m<span foreground=\"#7c6f64\">-</span>%d <span foreground=\"#d65d0e\"></span> %H<span foreground=\"#7c6f64\">:</span>%M<span foreground=\"#7c6f64\">:</span>%S "
|
||||
)
|
||||
}
|
||||
)
|
||||
)
|
55
modules/desktop/home/eww/configDir/topBar/topBar.yuck
Normal file
55
modules/desktop/home/eww/configDir/topBar/topBar.yuck
Normal file
|
@ -0,0 +1,55 @@
|
|||
(include "topBar/time.yuck")
|
||||
(include "topBar/sysinfo.yuck")
|
||||
(include "util.yuck")
|
||||
|
||||
(defwindow topBar
|
||||
:monitor 0
|
||||
:stacking "fg"
|
||||
:wm-ignore true
|
||||
:exclusive true
|
||||
:geometry (geometry
|
||||
:width "100%"
|
||||
:height "33px"
|
||||
:anchor "top center")
|
||||
(topBar))
|
||||
|
||||
(defwidget topBar []
|
||||
(overlay
|
||||
:class "topBar"
|
||||
(transform
|
||||
:translate-y "-1.5px"
|
||||
(centerbox
|
||||
(box
|
||||
:halign "start"
|
||||
:spacing 12
|
||||
:space-evenly false
|
||||
(label :text " ")
|
||||
(cpu)
|
||||
(sep)
|
||||
(mem)
|
||||
(label :markup bat)
|
||||
)
|
||||
(box
|
||||
:halign "center"
|
||||
(systray
|
||||
:icon-size 18
|
||||
:spacing 3
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "end"
|
||||
(time)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:class "transFlag"
|
||||
:height 1
|
||||
( flagEl :flipped false :color "#5BCEFA")
|
||||
( flagEl :flipped false :color "#F5A9B8")
|
||||
( flagEl :flipped false :color "#FFFFFF")
|
||||
( flagEl :flipped false :color "#F5A9B8")
|
||||
( flagEl :flipped false :color "#5BCEFA")
|
||||
)
|
||||
)
|
||||
)
|
11
modules/desktop/home/eww/configDir/util.yuck
Normal file
11
modules/desktop/home/eww/configDir/util.yuck
Normal file
|
@ -0,0 +1,11 @@
|
|||
(defwidget flagEl [color ?flipped]
|
||||
(box
|
||||
:style "border-${flipped ? "top" : "bottom"}: 3px solid ${color}"
|
||||
:halign "fill"
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget sep []
|
||||
(label :text "|")
|
||||
)
|
||||
|
6
modules/desktop/home/eww/default.nix
Normal file
6
modules/desktop/home/eww/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
{ ... }: {
|
||||
programs.eww = {
|
||||
enable = true;
|
||||
configDir = ./configDir;
|
||||
};
|
||||
}
|
29
modules/desktop/home/layaway.nix
Normal file
29
modules/desktop/home/layaway.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
# stolen: https://github.com/MultisampledNight/core/blob/678f176cb24f5dc4b5dc629cfd3e643487be01bb/system/packages/layaway/default.nix#L7-L25
|
||||
layaway = pkgs.rustPlatform.buildRustPackage rec {
|
||||
pname = "layaway";
|
||||
version = "0.2.0";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "MultisampledNight";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-SzAuVFEy56svasO3+1p6ysBRrIQd0UZX++/P4ZuwWm0=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-QVxlkE+sq4U048LnshI/tq6HInKiSgjQLAdR+27/wEI=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Layout creation for Sway via a relative and human-readable DSL.";
|
||||
homepage = "https://github.com/MultisampledNight/layaway";
|
||||
maintainers = [maintainers.multisn8];
|
||||
};
|
||||
};
|
||||
in {
|
||||
home.packages = [layaway];
|
||||
}
|
90
modules/desktop/home/niri/binds.nix
Normal file
90
modules/desktop/home/niri/binds.nix
Normal file
|
@ -0,0 +1,90 @@
|
|||
{pkgs, ...}: {
|
||||
programs.niri.settings.binds = {
|
||||
# spawn terminal
|
||||
"Mod+Return".action.spawn = "kitty";
|
||||
"Mod+Return".repeat = false;
|
||||
"Mod+D".action.spawn = ["wofi" "-S" "drun" "--allow-images"];
|
||||
"Mod+D".repeat = false;
|
||||
"Mod+I".action.spawn = ["${pkgs.rofimoji}/bin/rofimoji" "--selector" "wofi" "-f" "alchemical_symbols" "anatolian_hieroglyphs" "emojis" "braille_patterns" "box_drawing" "chess_symbols" "emoticons" "geometric_shapes" "gothic" "greek_extended" "math" "mathematical_alphanumeric_symbols" "mathematical_operators" "miscellaneous_symbols" "miscellaneous_mathematical_symbols-a" "miscellaneous_mathematical_symbols-b" "miscellaneous_symbols_and_arrows" "miscellaneous_symbols_and_pictographs" "miscellaneous_technical" "modi" "modifier_tone_letters" "musical_symbols" "nerd_font" "number_forms" "shorthand_format_controls" "specials" "variation_selectors" "vertical_forms" "-a" "copy"];
|
||||
|
||||
"Mod+Shift+E".action.quit = [];
|
||||
"Mod+Shift+Q".action.close-window = [];
|
||||
"Mod+Shift+P".action.power-off-monitors = [];
|
||||
|
||||
"Mod+Shift+Ctrl+Slash".action.toggle-keyboard-shortcuts-inhibit = [];
|
||||
"Mod+Shift+Ctrl+Slash".allow-inhibiting = false;
|
||||
|
||||
"Mod+Shift+Slash".action.show-hotkey-overlay = [];
|
||||
|
||||
# window/columns controls
|
||||
"Mod+H".action.focus-column-left = [];
|
||||
"Mod+J".action.focus-window-down = [];
|
||||
"Mod+K".action.focus-window-up = [];
|
||||
"Mod+L".action.focus-column-right = [];
|
||||
"Mod+Ctrl+H".action.move-column-left = [];
|
||||
"Mod+Ctrl+J".action.move-window-down = [];
|
||||
"Mod+Ctrl+K".action.move-window-up = [];
|
||||
"Mod+Ctrl+L".action.move-column-right = [];
|
||||
"Mod+R".action.switch-preset-column-width = [];
|
||||
|
||||
"Mod+V".action.toggle-window-floating = [];
|
||||
"Mod+Shift+V".action.switch-focus-between-floating-and-tiling = [];
|
||||
|
||||
# monitor controls
|
||||
"Mod+Shift+H".action.focus-monitor-left = [];
|
||||
"Mod+Shift+J".action.focus-monitor-down = [];
|
||||
"Mod+Shift+K".action.focus-monitor-up = [];
|
||||
"Mod+Shift+L".action.focus-monitor-right = [];
|
||||
"Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = [];
|
||||
"Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = [];
|
||||
"Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = [];
|
||||
"Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = [];
|
||||
|
||||
# workspace controls
|
||||
"Mod+P".action.focus-workspace-up = [];
|
||||
"Mod+N".action.focus-workspace-down = [];
|
||||
"Mod+Ctrl+P".action.move-column-to-workspace-up = [];
|
||||
"Mod+Ctrl+N".action.move-column-to-workspace-down = [];
|
||||
"Mod+1".action.focus-workspace = 1;
|
||||
"Mod+2".action.focus-workspace = 2;
|
||||
"Mod+3".action.focus-workspace = 3;
|
||||
"Mod+4".action.focus-workspace = 4;
|
||||
"Mod+5".action.focus-workspace = 5;
|
||||
"Mod+6".action.focus-workspace = 6;
|
||||
"Mod+7".action.focus-workspace = 7;
|
||||
"Mod+8".action.focus-workspace = 8;
|
||||
"Mod+9".action.focus-workspace = 9;
|
||||
"Mod+Ctrl+1".action.move-column-to-workspace = 1;
|
||||
"Mod+Ctrl+2".action.move-column-to-workspace = 2;
|
||||
"Mod+Ctrl+3".action.move-column-to-workspace = 3;
|
||||
"Mod+Ctrl+4".action.move-column-to-workspace = 4;
|
||||
"Mod+Ctrl+5".action.move-column-to-workspace = 5;
|
||||
"Mod+Ctrl+6".action.move-column-to-workspace = 6;
|
||||
"Mod+Ctrl+7".action.move-column-to-workspace = 7;
|
||||
"Mod+Ctrl+8".action.move-column-to-workspace = 8;
|
||||
"Mod+Ctrl+9".action.move-column-to-workspace = 9;
|
||||
|
||||
# column editing stuffs
|
||||
"Mod+BracketLeft".action.consume-or-expel-window-left = [];
|
||||
"Mod+BracketRight".action.consume-or-expel-window-right = [];
|
||||
"Mod+F".action.maximize-column = [];
|
||||
"Mod+Shift+F".action.expand-column-to-available-width = [];
|
||||
"Mod+Ctrl+F".action.fullscreen-window = [];
|
||||
"Mod+C".action.center-column = [];
|
||||
"Mod+Minus".action.set-column-width = "-5%";
|
||||
"Mod+Equal".action.set-column-width = "+5%";
|
||||
"Mod+Shift+Minus".action.set-window-height = "-10%";
|
||||
"Mod+Shift+Equal".action.set-window-height = "+10%";
|
||||
"Mod+W".action.toggle-column-tabbed-display = [];
|
||||
|
||||
# media keys
|
||||
"XF86AudioRaiseVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"];
|
||||
"XF86AudioLowerVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"];
|
||||
"XF86AudioMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"];
|
||||
"XF86AudioMicMute" .action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"];
|
||||
"XF86AudioRaiseVolume".allow-when-locked = true;
|
||||
"XF86AudioLowerVolume".allow-when-locked = true;
|
||||
"XF86AudioMute".allow-when-locked = true;
|
||||
"XF86AudioMicMute" .allow-when-locked = true;
|
||||
};
|
||||
}
|
29
modules/desktop/home/niri/default.nix
Normal file
29
modules/desktop/home/niri/default.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./xwayland-sat.nix
|
||||
./screenshot.nix
|
||||
./input.nix
|
||||
./binds.nix
|
||||
./style.nix
|
||||
./privacy.nix
|
||||
./quirks.nix
|
||||
];
|
||||
programs.niri.settings = {
|
||||
outputs."eDP-1" = {
|
||||
scale = 1.0;
|
||||
};
|
||||
|
||||
spawn-at-startup = [
|
||||
{command = ["eww" "open-many" "topBar" "bottomBar"];}
|
||||
{
|
||||
command = [
|
||||
"${pkgs.swaybg}/bin/swaybg"
|
||||
"-i"
|
||||
"${./wallpaper.jpg}"
|
||||
"-m"
|
||||
"fill"
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
16
modules/desktop/home/niri/input.nix
Normal file
16
modules/desktop/home/niri/input.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{...}: {
|
||||
programs.niri.settings.input = {
|
||||
keyboard = {
|
||||
xkb = {
|
||||
layout = "us";
|
||||
variant = "altgr-intl";
|
||||
};
|
||||
};
|
||||
touchpad = {
|
||||
tap = false;
|
||||
natural-scroll = true;
|
||||
dwt = true;
|
||||
dwtp = true;
|
||||
};
|
||||
};
|
||||
}
|
21
modules/desktop/home/niri/privacy.nix
Normal file
21
modules/desktop/home/niri/privacy.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{...}: {
|
||||
programs.niri.settings = {
|
||||
layer-rules = [
|
||||
{
|
||||
matches = [
|
||||
{namespace = "notifications";}
|
||||
];
|
||||
block-out-from = "screen-capture";
|
||||
}
|
||||
];
|
||||
window-rules = [
|
||||
{
|
||||
matches = [
|
||||
{app-id = "^signal|Element|org\.gnome\.Evolution$";}
|
||||
{title = "^.*(Discord|Beispiel Screenshare block Bug).*$";}
|
||||
];
|
||||
block-out-from = "screen-capture";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
18
modules/desktop/home/niri/quirks.nix
Normal file
18
modules/desktop/home/niri/quirks.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{...}: {
|
||||
programs.niri.settings = {
|
||||
window-rules = [
|
||||
# handle steam grabbing focus 1000 times on startup
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
app-id = "steam";
|
||||
}
|
||||
];
|
||||
open-focused = false;
|
||||
}
|
||||
];
|
||||
|
||||
# fix electron apps not doing wayland
|
||||
environment.ELECTRON_OZONE_PLATFORM_HINT = "auto";
|
||||
};
|
||||
}
|
13
modules/desktop/home/niri/screenshot.nix
Normal file
13
modules/desktop/home/niri/screenshot.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{pkgs, ...}: {
|
||||
programs.niri.settings = {
|
||||
screenshot-path = "~/Pictures/screenshots/%Y-%m-%dT%H:%M:%S.png";
|
||||
binds = {
|
||||
"Print".action.screenshot = [];
|
||||
"Ctrl+Print".action.screenshot-screen = [];
|
||||
"Shift+Print".action.screenshot-window = [];
|
||||
"Mod+S".action.screenshot = [];
|
||||
"Mod+Ctrl+S".action.screenshot-screen = [];
|
||||
"Mod+Shift+S".action.screenshot-window = [];
|
||||
};
|
||||
};
|
||||
}
|
71
modules/desktop/home/niri/style.nix
Normal file
71
modules/desktop/home/niri/style.nix
Normal file
|
@ -0,0 +1,71 @@
|
|||
{...}: {
|
||||
programs.niri.settings = {
|
||||
prefer-no-csd = true;
|
||||
|
||||
cursor = {
|
||||
theme = "phinger-cursors-dark";
|
||||
size = 16;
|
||||
hide-when-typing = true;
|
||||
hide-after-inactive-ms = 10000;
|
||||
};
|
||||
|
||||
layout = {
|
||||
gaps = 15;
|
||||
focus-ring.enable = false;
|
||||
border = {
|
||||
enable = true;
|
||||
width = 3;
|
||||
inactive.gradient = {
|
||||
from = "#f69ecf";
|
||||
to = "#ff9a56";
|
||||
in' = "oklch shorter hue";
|
||||
relative-to = "window";
|
||||
angle = 135;
|
||||
};
|
||||
active.gradient = {
|
||||
from = "#f69ecf";
|
||||
to = "#5bcefa";
|
||||
in' = "oklch shorter hue";
|
||||
relative-to = "window";
|
||||
angle = 135;
|
||||
};
|
||||
};
|
||||
center-focused-column = "never";
|
||||
empty-workspace-above-first = false;
|
||||
tab-indicator = {
|
||||
hide-when-single-tab = true;
|
||||
active.color = "#5bcefa";
|
||||
inactive.color = "#3c3836";
|
||||
gap = 2;
|
||||
width = 5;
|
||||
corner-radius= 3;
|
||||
position = "left";
|
||||
gaps-between-tabs = 0;
|
||||
};
|
||||
};
|
||||
|
||||
window-rules = [
|
||||
{
|
||||
matches = [{
|
||||
is-floating = true;
|
||||
}];
|
||||
shadow = {
|
||||
offset.y = 0;
|
||||
offset.x = 0;
|
||||
softness = 40;
|
||||
color = "#bab9e5af";
|
||||
inactive-color = "#fa9d99af";
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
geometry-corner-radius = let val = 1.; in {
|
||||
bottom-left = val;
|
||||
bottom-right = val;
|
||||
top-left = val;
|
||||
top-right = val;
|
||||
};
|
||||
clip-to-geometry = true;
|
||||
}];
|
||||
};
|
||||
}
|
BIN
modules/desktop/home/niri/wallpaper.jpg
Normal file
BIN
modules/desktop/home/niri/wallpaper.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.4 MiB |
8
modules/desktop/home/niri/xwayland-sat.nix
Normal file
8
modules/desktop/home/niri/xwayland-sat.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{pkgs, ...}: {
|
||||
programs.niri.settings = {
|
||||
spawn-at-startup = [
|
||||
{command = ["${pkgs.xwayland-satellite}/bin/xwayland-satellite"];}
|
||||
];
|
||||
environment.DISPLAY = ":0";
|
||||
};
|
||||
}
|
21
modules/desktop/home/notifications.nix
Normal file
21
modules/desktop/home/notifications.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [
|
||||
pkgs.libnotify
|
||||
];
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
settings = {
|
||||
global = {
|
||||
dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst";
|
||||
browser = "${pkgs.firefox}/bin/firefox";
|
||||
mouse_left_click = "context";
|
||||
mouse_middle_click = "close_current";
|
||||
background = "#282828";
|
||||
foreground = "#ebdbb2";
|
||||
frame_color = "#504945";
|
||||
frame_width = 2;
|
||||
font = "Atkinson Hyperlegible";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
17
modules/desktop/home/swayidle.nix
Normal file
17
modules/desktop/home/swayidle.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{pkgs, ...}: {
|
||||
# unsure whether i still need swayidle, will keep it in and might remove after further testing
|
||||
|
||||
services.swayidle = {
|
||||
enable = true;
|
||||
events = [
|
||||
{
|
||||
event = "before-sleep";
|
||||
command = "${pkgs.swaylock}/bin/swaylock -fF -c 442244";
|
||||
}
|
||||
{
|
||||
event = "lock";
|
||||
command = "swaylock -c 441144";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
37
modules/desktop/home/terminal.nix
Normal file
37
modules/desktop/home/terminal.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
{...}: {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
font.size = 12;
|
||||
font.name = "Departure Mono Nerd Font";
|
||||
shellIntegration.enableFishIntegration = false;
|
||||
keybindings = {
|
||||
"ctrl+shift+n" = "new_os_window_with_cwd";
|
||||
};
|
||||
settings = rec {
|
||||
adjust_column_width = "95%";
|
||||
color0 = "#282828";
|
||||
color8 = "#928374";
|
||||
color1 = "#cc241d";
|
||||
color9 = "#fb4934";
|
||||
color2 = "#98971a";
|
||||
color10 = "#b8bb26";
|
||||
color3 = "#d79921";
|
||||
color11 = "#fabd2f";
|
||||
color4 = "#458588";
|
||||
color12 = "#83a598";
|
||||
color5 = "#b16286";
|
||||
color13 = "#d3869b";
|
||||
color6 = "#689d6a";
|
||||
color14 = "#8ec07c";
|
||||
color7 = "#a89984";
|
||||
color15 = "#ebdbb2";
|
||||
foreground = color15;
|
||||
background = "#1d2021";
|
||||
confirm_os_window_close = 0;
|
||||
hide_window_decorations = true;
|
||||
};
|
||||
};
|
||||
home.sessionVariables = {
|
||||
TERMINAL = "kitty";
|
||||
};
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.jade.desktop.kdeconnect;
|
||||
in
|
||||
with lib; {
|
||||
options.jade.desktop.kdeconnect = {
|
||||
enable = mkEnableOption "Enable KDE connect";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
programs.kdeconnect.enable = true;
|
||||
home-manager.users.jade = {pkgs, ...}: {
|
||||
services.kdeconnect = {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
13
modules/desktop/locale.nix
Normal file
13
modules/desktop/locale.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{...}: {
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "de_DE.UTF-8";
|
||||
LC_IDENTIFICATION = "de_DE.UTF-8";
|
||||
LC_MEASUREMENT = "de_DE.UTF-8";
|
||||
LC_MONETARY = "de_DE.UTF-8";
|
||||
LC_NAME = "de_DE.UTF-8";
|
||||
LC_NUMERIC = "de_DE.UTF-8";
|
||||
LC_PAPER = "de_DE.UTF-8";
|
||||
LC_TELEPHONE = "de_DE.UTF-8";
|
||||
LC_TIME = "de_DE.UTF-8";
|
||||
};
|
||||
}
|
19
modules/desktop/printing.nix
Normal file
19
modules/desktop/printing.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{pkgs, ...}: {
|
||||
services.printing = {
|
||||
enable = true;
|
||||
drivers = with pkgs; [
|
||||
gutenprint
|
||||
gutenprintBin
|
||||
hplip
|
||||
brlaser
|
||||
brgenml1lpr
|
||||
brgenml1cupswrapper
|
||||
ptouch-driver
|
||||
epsonscan2
|
||||
epson-escpr
|
||||
epson-escpr2
|
||||
epson_201207w
|
||||
epson-alc1100
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.jade.desktop.social;
|
||||
in
|
||||
with lib; {
|
||||
options.jade.desktop.social = {
|
||||
enable = mkEnableOption "Enable social apps";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.jade = {
|
||||
pkgs,
|
||||
pkgs-stable,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
signal-desktop
|
||||
mumble
|
||||
element-desktop
|
||||
pkgs.evolution-data-server-gtk4
|
||||
iamb
|
||||
];
|
||||
};
|
||||
programs.evolution = {
|
||||
enable = true;
|
||||
plugins = [pkgs.evolution-ews];
|
||||
};
|
||||
services.gnome.evolution-data-server.enable = true;
|
||||
services.gnome.evolution-data-server.plugins = [];
|
||||
};
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.jade.desktop.syncthing;
|
||||
in
|
||||
with lib; {
|
||||
options.jade.desktop.syncthing = {
|
||||
enable = mkEnableOption "Enable syncing via syncthing";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
services.syncthing = rec {
|
||||
enable = true;
|
||||
user = "jade";
|
||||
dataDir = "/home/${user}/Documents";
|
||||
configDir = "/home/${user}/Documents/.config/syncthing";
|
||||
};
|
||||
};
|
||||
}
|
54
modules/desktop/themeing.nix
Normal file
54
modules/desktop/themeing.nix
Normal file
|
@ -0,0 +1,54 @@
|
|||
{pkgs, ...}: {
|
||||
stylix = {
|
||||
enable = true;
|
||||
polarity = "dark";
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
|
||||
fonts = {
|
||||
serif = {
|
||||
package = pkgs.libertine;
|
||||
name = "Linux Libertine O";
|
||||
};
|
||||
|
||||
sansSerif = {
|
||||
package = pkgs.atkinson-hyperlegible;
|
||||
name = "Atkinson Hyperlegible";
|
||||
};
|
||||
|
||||
monospace = {
|
||||
package = pkgs.nerd-fonts.departure-mono;
|
||||
name = "Departure Mono Nerd Font";
|
||||
};
|
||||
|
||||
emoji = {
|
||||
package = pkgs.noto-fonts-emoji;
|
||||
name = "Noto Color Emoji";
|
||||
};
|
||||
};
|
||||
};
|
||||
home-manager.users.jade = {pkgs, ...}: {
|
||||
stylix.targets = {
|
||||
firefox = {
|
||||
profileNames = ["jade"];
|
||||
};
|
||||
helix.enable = false;
|
||||
btop.enable = false;
|
||||
nushell.enable = false;
|
||||
starship.enable = false;
|
||||
kitty.enable = false;
|
||||
dunst.enable = false;
|
||||
wofi.enable = false;
|
||||
};
|
||||
gtk = {
|
||||
enable = true;
|
||||
cursorTheme = {
|
||||
package = pkgs.phinger-cursors;
|
||||
name = "phinger-cursors";
|
||||
size = 30;
|
||||
};
|
||||
iconTheme = {
|
||||
package = pkgs.gruvbox-dark-icons-gtk;
|
||||
name = "gruvbox-dark-icons";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
9
modules/desktop/tlp.nix
Normal file
9
modules/desktop/tlp.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{...}: {
|
||||
services.tlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
START_CHARGE_THRESH_BAT0 = "70";
|
||||
STOP_CHARGE_TRESH_BAT0 = "85";
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue