rework desktop and programs aspects
This commit is contained in:
parent
5d1b54c8bf
commit
4e78805bda
14 changed files with 307 additions and 527 deletions
|
|
@ -3,13 +3,18 @@
|
|||
{
|
||||
flake.modules = {
|
||||
nixos.cli =
|
||||
{ ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = with inputs.self.modules.nixos; [
|
||||
btop
|
||||
helix
|
||||
tmux
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
p7zip
|
||||
rclone
|
||||
];
|
||||
};
|
||||
homeManager.cli =
|
||||
{ ... }:
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
{ ... }:
|
||||
{
|
||||
flake.modules.nixos.desktop-boot =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
boot = {
|
||||
plymouth.enable = true;
|
||||
initrd.systemd.enable = true;
|
||||
loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
||||
extraModprobeConfig = ''
|
||||
options bluetooth disable_ertm=1
|
||||
'';
|
||||
kernel.sysctl = {
|
||||
"net.ipv4.tcp_mtu_probing" = 1;
|
||||
};
|
||||
kernelParams = [
|
||||
"quiet"
|
||||
"splash"
|
||||
"i2c-dev"
|
||||
"i2c-piix4"
|
||||
"loglevel=3"
|
||||
"udev.log_priority=3"
|
||||
"rd.udev.log_level=3"
|
||||
"rd.systemd.show_status=false"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
}:
|
||||
{
|
||||
flake.modules = {
|
||||
nixos.desktop-desktop =
|
||||
nixos.desktop =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
|
|
@ -13,37 +13,53 @@
|
|||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.niri-flake.nixosModules.niri
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
];
|
||||
]
|
||||
++ (with inputs.self.modules.nixos; [
|
||||
graphics
|
||||
media
|
||||
office
|
||||
web
|
||||
]);
|
||||
|
||||
boot = {
|
||||
plymouth.enable = true;
|
||||
initrd.systemd.enable = true;
|
||||
loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
||||
extraModprobeConfig = ''
|
||||
options bluetooth disable_ertm=1
|
||||
'';
|
||||
kernel.sysctl = {
|
||||
"net.ipv4.tcp_mtu_probing" = 1;
|
||||
};
|
||||
kernelParams = [
|
||||
"quiet"
|
||||
"splash"
|
||||
"i2c-dev"
|
||||
"i2c-piix4"
|
||||
"loglevel=3"
|
||||
"udev.log_priority=3"
|
||||
"rd.udev.log_level=3"
|
||||
"rd.systemd.show_status=false"
|
||||
];
|
||||
};
|
||||
|
||||
nix = {
|
||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||
nixPath = [
|
||||
"nixpkgs=${inputs.nixpkgs}"
|
||||
"/nix/var/nix/profiles/per-user/root/channels"
|
||||
];
|
||||
};
|
||||
|
||||
environment = {
|
||||
etc."channels/nixpkgs".source = inputs.nixpkgs.outPath;
|
||||
sessionVariables = {
|
||||
KDEHOME = "$XDG_CONFIG_HOME/kde4"; # Stops kde from placing a .kde4 folder in the home dir
|
||||
NIXOS_OZONE_WL = "1"; # Forces chromium and most electron apps to run in wayland
|
||||
};
|
||||
systemPackages = with pkgs; [
|
||||
### Web ###
|
||||
bitwarden-desktop
|
||||
fragments
|
||||
nextcloud-client
|
||||
tor-browser
|
||||
vesktop
|
||||
inputs.zen-browser.packages."${system}".default
|
||||
### Office & Productivity ###
|
||||
aspell
|
||||
aspellDicts.de
|
||||
aspellDicts.en
|
||||
aspellDicts.en-computers
|
||||
aspellDicts.pt_BR
|
||||
papers
|
||||
presenterm
|
||||
rnote
|
||||
### Graphics & Design ###
|
||||
gimp
|
||||
inkscape
|
||||
plasticity
|
||||
### System Utilities ###
|
||||
adwaita-icon-theme
|
||||
ghostty
|
||||
gnome-disk-utility
|
||||
|
|
@ -51,19 +67,21 @@
|
|||
libfido2
|
||||
mission-center
|
||||
nautilus
|
||||
p7zip
|
||||
rclone
|
||||
toggleaudiosink
|
||||
unrar
|
||||
### Media ###
|
||||
decibels
|
||||
loupe
|
||||
obs-studio
|
||||
showtime
|
||||
];
|
||||
};
|
||||
|
||||
services = {
|
||||
printing.enable = true;
|
||||
udev.packages = with pkgs; [ yubikey-personalization ];
|
||||
keyd = {
|
||||
enable = true;
|
||||
keyboards.all = {
|
||||
ids = [ "*" ];
|
||||
settings.main.capslock = "overload(meta, esc)";
|
||||
};
|
||||
};
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
|
|
@ -74,35 +92,11 @@
|
|||
};
|
||||
greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${lib.getExe pkgs.tuigreet} --user-menu --time --remember --asterisks --cmd ${config.programs.niri.package}/bin/niri-session";
|
||||
user = "greeter";
|
||||
};
|
||||
}
|
||||
// lib.optionalAttrs (config.networking.hostName == "io") {
|
||||
initial_session = {
|
||||
command = "${config.programs.niri.package}/bin/niri-session";
|
||||
user = "user";
|
||||
};
|
||||
};
|
||||
settings.default_session.user = "greeter";
|
||||
};
|
||||
flatpak = {
|
||||
enable = true;
|
||||
packages = [
|
||||
### Office & Productivity ###
|
||||
"com.collabora.Office"
|
||||
### Graphics & Design ###
|
||||
"com.boxy_svg.BoxySVG"
|
||||
rec {
|
||||
appId = "io.github.softfever.OrcaSlicer";
|
||||
sha256 = "0hdx5sg6fknj1pfnfxvlfwb5h6y1vjr6fyajbsnjph5gkp97c6p1";
|
||||
bundle = "${pkgs.fetchurl {
|
||||
url = "https://github.com/SoftFever/OrcaSlicer/releases/download/v2.3.0/OrcaSlicer-Linux-flatpak_V2.3.0_x86_64.flatpak";
|
||||
inherit sha256;
|
||||
}}";
|
||||
}
|
||||
### System Utilities ###
|
||||
"com.github.tchx84.Flatseal"
|
||||
"com.rustdesk.RustDesk"
|
||||
];
|
||||
|
|
@ -123,10 +117,6 @@
|
|||
};
|
||||
|
||||
programs = {
|
||||
niri = {
|
||||
enable = true;
|
||||
package = inputs.niri.packages.${pkgs.system}.niri;
|
||||
};
|
||||
kdeconnect = {
|
||||
enable = true;
|
||||
package = pkgs.valent;
|
||||
|
|
@ -138,8 +128,6 @@
|
|||
};
|
||||
};
|
||||
|
||||
niri-flake.cache.enable = false;
|
||||
|
||||
fonts = {
|
||||
fontDir.enable = true;
|
||||
packages = with pkgs; [
|
||||
|
|
@ -157,17 +145,11 @@
|
|||
xdg-desktop-portal-gnome
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
config = {
|
||||
common.default = "*";
|
||||
niri.default = [
|
||||
"gtk"
|
||||
"gnome"
|
||||
];
|
||||
};
|
||||
config.common.default = "*";
|
||||
};
|
||||
};
|
||||
|
||||
homeManager.desktop-desktop =
|
||||
homeManager.desktop =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
|
|
@ -180,7 +162,10 @@
|
|||
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
home.packages = with pkgs; [ xwayland-satellite ];
|
||||
home = {
|
||||
packages = with pkgs; [ xwayland-satellite ];
|
||||
sessionVariables.TERMINAL = "ghostty";
|
||||
};
|
||||
|
||||
services.vicinae = {
|
||||
enable = true;
|
||||
|
|
@ -216,91 +201,6 @@
|
|||
xdg = {
|
||||
enable = true;
|
||||
userDirs.enable = true;
|
||||
mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"text/html" = [
|
||||
"re.sonny.Junction.desktop"
|
||||
"zen-browser.desktop"
|
||||
"torbrowser.desktop"
|
||||
];
|
||||
"x-scheme-handler/http" = [
|
||||
"re.sonny.Junction.desktop"
|
||||
"zen-browser.desktop"
|
||||
"torbrowser.desktop"
|
||||
];
|
||||
"x-scheme-handler/https" = [
|
||||
"re.sonny.Junction.desktop"
|
||||
"zen-browser.desktop"
|
||||
"torbrowser.desktop"
|
||||
];
|
||||
"x-scheme-handler/about" = [
|
||||
"re.sonny.Junction.desktop"
|
||||
"zen-browser.desktop"
|
||||
"torbrowser.desktop"
|
||||
];
|
||||
"x-scheme-handler/unknown" = [
|
||||
"re.sonny.Junction.desktop"
|
||||
"zen-browser.desktop"
|
||||
"torbrowser.desktop"
|
||||
];
|
||||
"image/jpeg" = "org.gnome.Loupe.desktop";
|
||||
"image/png" = "org.gnome.Loupe.desktop";
|
||||
"image/gif" = "org.gnome.Loupe.desktop";
|
||||
"image/webp" = "org.gnome.Loupe.desktop";
|
||||
"image/bmp" = "org.gnome.Loupe.desktop";
|
||||
"image/svg+xml" = "org.gnome.Loupe.desktop";
|
||||
"image/tiff" = "org.gnome.Loupe.desktop";
|
||||
"video/mp4" = "io.bassi.Showtime.desktop";
|
||||
"video/x-matroska" = "io.bassi.Showtime.desktop";
|
||||
"video/webm" = "io.bassi.Showtime.desktop";
|
||||
"video/mpeg" = "io.bassi.Showtime.desktop";
|
||||
"video/x-msvideo" = "io.bassi.Showtime.desktop";
|
||||
"video/quicktime" = "io.bassi.Showtime.desktop";
|
||||
"video/x-flv" = "io.bassi.Showtime.desktop";
|
||||
"audio/mpeg" = "io.bassi.Showtime.desktop";
|
||||
"audio/flac" = "io.bassi.Showtime.desktop";
|
||||
"audio/ogg" = "io.bassi.Showtime.desktop";
|
||||
"audio/wav" = "io.bassi.Showtime.desktop";
|
||||
"audio/mp4" = "io.bassi.Showtime.desktop";
|
||||
"audio/x-opus+ogg" = "io.bassi.Showtime.desktop";
|
||||
"application/pdf" = [
|
||||
"org.gnome.Papers.desktop"
|
||||
"zen-browser.desktop"
|
||||
];
|
||||
"text/plain" = "Helix.desktop";
|
||||
"text/markdown" = "Helix.desktop";
|
||||
"text/x-log" = "Helix.desktop";
|
||||
"application/x-shellscript" = "Helix.desktop";
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" =
|
||||
"com.collabora.Office.desktop"; # DOCX
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" =
|
||||
"com.collabora.Office.desktop"; # XLSX
|
||||
"application/vnd.openxmlformats-officedocument.presentationml.presentation" =
|
||||
"com.collabora.Office.desktop"; # PPTX
|
||||
"application/vnd.oasis.opendocument.text" = "com.collabora.Office.desktop"; # ODT
|
||||
"application/vnd.oasis.opendocument.spreadsheet" = "com.collabora.Office.desktop"; # ODS
|
||||
"application/vnd.oasis.opendocument.presentation" = "com.collabora.Office.desktop"; # ODP
|
||||
"application/msword" = "com.collabora.Office.desktop"; # DOC
|
||||
"application/vnd.ms-excel" = "com.collabora.Office.desktop"; # XLS
|
||||
"application/vnd.ms-powerpoint" = "com.collabora.Office.desktop"; # PPT
|
||||
"application/zip" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-tar" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-compressed-tar" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-bzip-compressed-tar" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-xz-compressed-tar" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-7z-compressed" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-rar" = "org.gnome.FileRoller.desktop";
|
||||
"application/gzip" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-bzip" = "org.gnome.FileRoller.desktop";
|
||||
"inode/directory" = "org.gnome.Nautilus.desktop";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Set Ghostty as default terminal
|
||||
home.sessionVariables = {
|
||||
TERMINAL = "ghostty";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,228 +1,251 @@
|
|||
{ ... }:
|
||||
{ inputs, ... }:
|
||||
{
|
||||
flake.modules.homeManager.desktop-niri =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
hostname ? null,
|
||||
...
|
||||
}:
|
||||
let
|
||||
isRotterdam = hostname == "rotterdam";
|
||||
in
|
||||
{
|
||||
imports = [ inputs.noctalia.homeModules.default ];
|
||||
flake.modules = {
|
||||
nixos.niri =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ inputs.niri-flake.nixosModules.niri ];
|
||||
|
||||
services.kanshi = {
|
||||
enable = true;
|
||||
settings = [
|
||||
{
|
||||
profile.name = "default";
|
||||
profile.outputs = [
|
||||
{
|
||||
criteria = "*";
|
||||
scale = 1.0;
|
||||
services.greetd.settings = {
|
||||
default_session.command = "${lib.getExe pkgs.tuigreet} --user-menu --time --remember --asterisks --cmd ${config.programs.niri.package}/bin/niri-session";
|
||||
};
|
||||
|
||||
programs.niri.enable = true;
|
||||
|
||||
xdg.portal.config.niri.default = [
|
||||
"gtk"
|
||||
"gnome"
|
||||
];
|
||||
};
|
||||
homeManager.niri =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
hostname ? null,
|
||||
...
|
||||
}:
|
||||
let
|
||||
isRotterdam = hostname == "rotterdam";
|
||||
in
|
||||
{
|
||||
imports = [ inputs.noctalia.homeModules.default ];
|
||||
|
||||
services.kanshi = {
|
||||
enable = true;
|
||||
settings = [
|
||||
{
|
||||
profile.name = "default";
|
||||
profile.outputs = [
|
||||
{
|
||||
criteria = "*";
|
||||
scale = 1.0;
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
xwayland-satellite
|
||||
inputs.noctalia.packages.${pkgs.system}.default
|
||||
];
|
||||
sessionVariables.QT_QPA_PLATFORMTHEME = "gtk3";
|
||||
};
|
||||
|
||||
xdg.configFile."niri/config.kdl".text = ''
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
layout "us"
|
||||
variant "altgr-intl"
|
||||
}
|
||||
];
|
||||
}
|
||||
touchpad {
|
||||
tap
|
||||
dwt
|
||||
drag true
|
||||
drag-lock
|
||||
natural-scroll
|
||||
accel-speed 0.2
|
||||
accel-profile "flat"
|
||||
scroll-method "two-finger"
|
||||
middle-emulation
|
||||
}
|
||||
mouse {
|
||||
natural-scroll
|
||||
accel-speed 0.2
|
||||
accel-profile "flat"
|
||||
}
|
||||
warp-mouse-to-focus mode="center-xy"
|
||||
focus-follows-mouse
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
xwayland-satellite
|
||||
inputs.noctalia.packages.${pkgs.system}.default
|
||||
];
|
||||
sessionVariables.QT_QPA_PLATFORMTHEME = "gtk3";
|
||||
};
|
||||
|
||||
xdg.configFile."niri/config.kdl".text = ''
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
layout "us"
|
||||
variant "altgr-intl"
|
||||
layout {
|
||||
gaps 8
|
||||
center-focused-column "never"
|
||||
auto-center-when-space-available
|
||||
preset-column-widths {
|
||||
${
|
||||
if isRotterdam then
|
||||
''
|
||||
proportion 0.33333
|
||||
proportion 0.5
|
||||
proportion 0.66667
|
||||
''
|
||||
else
|
||||
''
|
||||
proportion 0.5
|
||||
proportion 1.0
|
||||
''
|
||||
}
|
||||
}
|
||||
default-column-width { proportion ${if isRotterdam then "0.33333" else "0.5"}; }
|
||||
focus-ring {
|
||||
off
|
||||
}
|
||||
border {
|
||||
width 4
|
||||
active-color "#ffc87f"
|
||||
inactive-color "#505050"
|
||||
urgent-color "#9b0000"
|
||||
}
|
||||
tab-indicator {
|
||||
width 4
|
||||
gap 4
|
||||
place-within-column
|
||||
}
|
||||
}
|
||||
touchpad {
|
||||
tap
|
||||
dwt
|
||||
drag true
|
||||
drag-lock
|
||||
natural-scroll
|
||||
accel-speed 0.2
|
||||
accel-profile "flat"
|
||||
scroll-method "two-finger"
|
||||
middle-emulation
|
||||
|
||||
overview {
|
||||
zoom 0.65
|
||||
}
|
||||
mouse {
|
||||
natural-scroll
|
||||
accel-speed 0.2
|
||||
accel-profile "flat"
|
||||
|
||||
spawn-at-startup "noctalia-shell" "-d"
|
||||
layer-rule {
|
||||
match namespace="^noctalia-overview*"
|
||||
place-within-backdrop true
|
||||
}
|
||||
warp-mouse-to-focus mode="center-xy"
|
||||
focus-follows-mouse
|
||||
}
|
||||
|
||||
layout {
|
||||
gaps 8
|
||||
center-focused-column "never"
|
||||
auto-center-when-space-available
|
||||
preset-column-widths {
|
||||
${
|
||||
if isRotterdam then
|
||||
''
|
||||
proportion 0.33333
|
||||
proportion 0.5
|
||||
proportion 0.66667
|
||||
''
|
||||
else
|
||||
''
|
||||
proportion 0.5
|
||||
proportion 1.0
|
||||
''
|
||||
}
|
||||
hotkey-overlay {
|
||||
skip-at-startup
|
||||
}
|
||||
default-column-width { proportion ${if isRotterdam then "0.33333" else "0.5"}; }
|
||||
focus-ring {
|
||||
off
|
||||
|
||||
prefer-no-csd
|
||||
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||
|
||||
animations {
|
||||
slowdown 0.3
|
||||
}
|
||||
border {
|
||||
width 4
|
||||
active-color "#ffc87f"
|
||||
inactive-color "#505050"
|
||||
urgent-color "#9b0000"
|
||||
|
||||
window-rule {
|
||||
match app-id="zen"
|
||||
default-column-width { proportion ${if isRotterdam then "0.5" else "1.0"}; }
|
||||
}
|
||||
tab-indicator {
|
||||
width 4
|
||||
gap 4
|
||||
place-within-column
|
||||
|
||||
window-rule {
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
}
|
||||
}
|
||||
|
||||
overview {
|
||||
zoom 0.65
|
||||
}
|
||||
config-notification {
|
||||
disable-failed
|
||||
}
|
||||
|
||||
spawn-at-startup "noctalia-shell" "-d"
|
||||
layer-rule {
|
||||
match namespace="^noctalia-overview*"
|
||||
place-within-backdrop true
|
||||
}
|
||||
|
||||
hotkey-overlay {
|
||||
skip-at-startup
|
||||
}
|
||||
|
||||
prefer-no-csd
|
||||
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||
|
||||
animations {
|
||||
slowdown 0.3
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id="zen"
|
||||
default-column-width { proportion ${if isRotterdam then "0.5" else "1.0"}; }
|
||||
}
|
||||
|
||||
window-rule {
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
}
|
||||
|
||||
config-notification {
|
||||
disable-failed
|
||||
}
|
||||
|
||||
binds {
|
||||
Alt+Space repeat=false { spawn "vicinae" "toggle"; }
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "increase"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "decrease"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "muteOutput"; }
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "brightness" "increase"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "brightness" "decrease"; }
|
||||
XF86AudioPlay allow-when-locked=true { spawn "${lib.getExe pkgs.playerctl}" "play-pause"; }
|
||||
XF86AudioStop allow-when-locked=true { spawn "${lib.getExe pkgs.playerctl}" "stop"; }
|
||||
XF86AudioPrev allow-when-locked=true { spawn "${lib.getExe pkgs.playerctl}" "previous"; }
|
||||
XF86AudioNext allow-when-locked=true { spawn "${lib.getExe pkgs.playerctl}" "next"; }
|
||||
Mod+V repeat=false { spawn "vicinae" "vicinae://extensions/vicinae/clipboard/history"; }
|
||||
Mod+Shift+L repeat=false { spawn "noctalia-shell" "ipc" "call" "lockScreen" "lock"; }
|
||||
Mod+Return { spawn "ghostty"; }
|
||||
Ctrl+Alt+Shift+A allow-when-locked=true { spawn "toggleaudiosink"; }
|
||||
Mod+W repeat=false { toggle-overview; }
|
||||
Mod+Q { close-window; }
|
||||
Alt+Shift+Q { close-window;}
|
||||
Mod+Shift+Q { close-window; }
|
||||
Alt+F4 { close-window; }
|
||||
Mod+Left { focus-column-left; }
|
||||
Mod+Down { focus-window-or-workspace-down; }
|
||||
Mod+Up { focus-window-or-workspace-up; }
|
||||
Mod+Right { focus-column-right; }
|
||||
Mod+H { focus-column-left; }
|
||||
Mod+L { focus-column-right; }
|
||||
Mod+J { focus-window-or-workspace-down; }
|
||||
Mod+K { focus-window-or-workspace-up; }
|
||||
Mod+Ctrl+Left { move-column-left; }
|
||||
Mod+Ctrl+Down { move-window-down-or-to-workspace-down; }
|
||||
Mod+Ctrl+Up { move-window-up-or-to-workspace-up; }
|
||||
Mod+Ctrl+Right { move-column-right; }
|
||||
Mod+Ctrl+H { move-column-left; }
|
||||
Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
||||
Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||
Mod+Ctrl+L { move-column-right; }
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
Mod+Alt+Left { focus-monitor-left; }
|
||||
Mod+Alt+Down { focus-monitor-down; }
|
||||
Mod+Alt+Up { focus-monitor-up; }
|
||||
Mod+Alt+Right { focus-monitor-right; }
|
||||
Mod+Alt+H { focus-monitor-left; }
|
||||
Mod+Alt+J { focus-monitor-down; }
|
||||
Mod+Alt+K { focus-monitor-up; }
|
||||
Mod+Alt+L { focus-monitor-right; }
|
||||
Mod+Alt+Ctrl+Left { move-column-to-monitor-left; }
|
||||
Mod+Alt+Ctrl+Down { move-column-to-monitor-down; }
|
||||
Mod+Alt+Ctrl+Up { move-column-to-monitor-up; }
|
||||
Mod+Alt+Ctrl+Right { move-column-to-monitor-right; }
|
||||
Mod+Alt+Ctrl+H { move-column-to-monitor-left; }
|
||||
Mod+Alt+Ctrl+J { move-column-to-monitor-down; }
|
||||
Mod+Alt+Ctrl+K { move-column-to-monitor-up; }
|
||||
Mod+Alt+Ctrl+L { move-column-to-monitor-right; }
|
||||
Mod+Ctrl+U { move-workspace-down; }
|
||||
Mod+Ctrl+I { move-workspace-up; }
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||
Mod+BracketRight { consume-or-expel-window-right; }
|
||||
Mod+Comma { consume-window-into-column; }
|
||||
Mod+Period { expel-window-from-column; }
|
||||
Mod+R { switch-preset-column-width; }
|
||||
Mod+F { maximize-column; }
|
||||
Mod+Ctrl+F { fullscreen-window; }
|
||||
Mod+C { center-visible-columns; }
|
||||
Mod+Ctrl+C { center-column; }
|
||||
Mod+Space { toggle-window-floating; }
|
||||
Mod+Ctrl+Space { switch-focus-between-floating-and-tiling; }
|
||||
Mod+T { toggle-column-tabbed-display; }
|
||||
Print { screenshot-screen; }
|
||||
Mod+Print { screenshot; }
|
||||
Ctrl+Print { screenshot-window; }
|
||||
Mod+Backspace allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||
Mod+Alt+E { spawn "noctalia-shell" "ipc" "call" "sessionMenu" "toggle"; }
|
||||
Ctrl+Alt+Delete { spawn "noctalia-shell" "ipc" "call" "sessionMenu" "toggle"; }
|
||||
Mod+Ctrl+P { power-off-monitors; }
|
||||
}
|
||||
'';
|
||||
};
|
||||
binds {
|
||||
Alt+Space repeat=false { spawn "vicinae" "toggle"; }
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "increase"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "decrease"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "muteOutput"; }
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "brightness" "increase"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "brightness" "decrease"; }
|
||||
XF86AudioPlay allow-when-locked=true { spawn "${lib.getExe pkgs.playerctl}" "play-pause"; }
|
||||
XF86AudioStop allow-when-locked=true { spawn "${lib.getExe pkgs.playerctl}" "stop"; }
|
||||
XF86AudioPrev allow-when-locked=true { spawn "${lib.getExe pkgs.playerctl}" "previous"; }
|
||||
XF86AudioNext allow-when-locked=true { spawn "${lib.getExe pkgs.playerctl}" "next"; }
|
||||
Mod+V repeat=false { spawn "vicinae" "vicinae://extensions/vicinae/clipboard/history"; }
|
||||
Mod+Shift+L repeat=false { spawn "noctalia-shell" "ipc" "call" "lockScreen" "lock"; }
|
||||
Mod+Return { spawn "ghostty"; }
|
||||
Ctrl+Alt+Shift+A allow-when-locked=true { spawn "toggleaudiosink"; }
|
||||
Mod+W repeat=false { toggle-overview; }
|
||||
Mod+Q { close-window; }
|
||||
Alt+Shift+Q { close-window;}
|
||||
Mod+Shift+Q { close-window; }
|
||||
Alt+F4 { close-window; }
|
||||
Mod+Left { focus-column-left; }
|
||||
Mod+Down { focus-window-or-workspace-down; }
|
||||
Mod+Up { focus-window-or-workspace-up; }
|
||||
Mod+Right { focus-column-right; }
|
||||
Mod+H { focus-column-left; }
|
||||
Mod+L { focus-column-right; }
|
||||
Mod+J { focus-window-or-workspace-down; }
|
||||
Mod+K { focus-window-or-workspace-up; }
|
||||
Mod+Ctrl+Left { move-column-left; }
|
||||
Mod+Ctrl+Down { move-window-down-or-to-workspace-down; }
|
||||
Mod+Ctrl+Up { move-window-up-or-to-workspace-up; }
|
||||
Mod+Ctrl+Right { move-column-right; }
|
||||
Mod+Ctrl+H { move-column-left; }
|
||||
Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
||||
Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||
Mod+Ctrl+L { move-column-right; }
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
Mod+Alt+Left { focus-monitor-left; }
|
||||
Mod+Alt+Down { focus-monitor-down; }
|
||||
Mod+Alt+Up { focus-monitor-up; }
|
||||
Mod+Alt+Right { focus-monitor-right; }
|
||||
Mod+Alt+H { focus-monitor-left; }
|
||||
Mod+Alt+J { focus-monitor-down; }
|
||||
Mod+Alt+K { focus-monitor-up; }
|
||||
Mod+Alt+L { focus-monitor-right; }
|
||||
Mod+Alt+Ctrl+Left { move-column-to-monitor-left; }
|
||||
Mod+Alt+Ctrl+Down { move-column-to-monitor-down; }
|
||||
Mod+Alt+Ctrl+Up { move-column-to-monitor-up; }
|
||||
Mod+Alt+Ctrl+Right { move-column-to-monitor-right; }
|
||||
Mod+Alt+Ctrl+H { move-column-to-monitor-left; }
|
||||
Mod+Alt+Ctrl+J { move-column-to-monitor-down; }
|
||||
Mod+Alt+Ctrl+K { move-column-to-monitor-up; }
|
||||
Mod+Alt+Ctrl+L { move-column-to-monitor-right; }
|
||||
Mod+Ctrl+U { move-workspace-down; }
|
||||
Mod+Ctrl+I { move-workspace-up; }
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||
Mod+BracketRight { consume-or-expel-window-right; }
|
||||
Mod+Comma { consume-window-into-column; }
|
||||
Mod+Period { expel-window-from-column; }
|
||||
Mod+R { switch-preset-column-width; }
|
||||
Mod+F { maximize-column; }
|
||||
Mod+Ctrl+F { fullscreen-window; }
|
||||
Mod+C { center-visible-columns; }
|
||||
Mod+Ctrl+C { center-column; }
|
||||
Mod+Space { toggle-window-floating; }
|
||||
Mod+Ctrl+Space { switch-focus-between-floating-and-tiling; }
|
||||
Mod+T { toggle-column-tabbed-display; }
|
||||
Print { screenshot-screen; }
|
||||
Mod+Print { screenshot; }
|
||||
Ctrl+Print { screenshot-window; }
|
||||
Mod+Backspace allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||
Mod+Alt+E { spawn "noctalia-shell" "ipc" "call" "sessionMenu" "toggle"; }
|
||||
Ctrl+Alt+Delete { spawn "noctalia-shell" "ipc" "call" "sessionMenu" "toggle"; }
|
||||
Mod+Ctrl+P { power-off-monitors; }
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
{ inputs, ... }:
|
||||
{
|
||||
flake.modules.nixos.desktop-nix =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.etc."channels/nixpkgs".source = inputs.nixpkgs.outPath;
|
||||
|
||||
nix = {
|
||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||
nixPath = [
|
||||
"nixpkgs=${inputs.nixpkgs}"
|
||||
"/nix/var/nix/profiles/per-user/root/channels"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
{ ... }:
|
||||
{
|
||||
flake.modules.nixos.desktop-services =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services = {
|
||||
printing.enable = true;
|
||||
udev.packages = with pkgs; [ yubikey-personalization ];
|
||||
keyd = {
|
||||
enable = true;
|
||||
keyboards.all = {
|
||||
ids = [ "*" ];
|
||||
settings.main.capslock = "overload(meta, esc)";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -22,23 +22,19 @@
|
|||
# system aspects
|
||||
base
|
||||
cli
|
||||
desktop
|
||||
|
||||
# user aspects
|
||||
user
|
||||
root
|
||||
|
||||
# Desktop aspects
|
||||
desktop-boot
|
||||
desktop-desktop
|
||||
desktop-nix
|
||||
desktop-services
|
||||
|
||||
# Other aspects
|
||||
ai
|
||||
bluetooth
|
||||
dev
|
||||
libvirtd
|
||||
networkmanager
|
||||
niri
|
||||
podman
|
||||
]);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -22,28 +22,24 @@
|
|||
# system aspects
|
||||
base
|
||||
cli
|
||||
desktop
|
||||
|
||||
# user aspects
|
||||
user
|
||||
root
|
||||
|
||||
# Desktop aspects
|
||||
desktop-boot
|
||||
desktop-desktop
|
||||
desktop-nix
|
||||
desktop-services
|
||||
|
||||
# Other aspects based on tags
|
||||
ai
|
||||
bluetooth
|
||||
dev
|
||||
fwupd
|
||||
gaming-steam
|
||||
gaming-hardware
|
||||
gaming-flatpak
|
||||
gaming-hardware
|
||||
gaming-launchers
|
||||
gaming-steam
|
||||
libvirtd
|
||||
networkmanager
|
||||
niri
|
||||
podman
|
||||
]);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
flake.modules.nixos.programs-graphics =
|
||||
flake.modules.nixos.graphics =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
{
|
||||
flake.modules = {
|
||||
nixos.programs-media =
|
||||
nixos.media =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
flake.modules.nixos.programs-office =
|
||||
flake.modules.nixos.office =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
|
|
|||
|
|
@ -1,62 +0,0 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
flake.modules = {
|
||||
nixos.programs-utilities =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
ghostty
|
||||
gnome-disk-utility
|
||||
mission-center
|
||||
nautilus
|
||||
p7zip
|
||||
rclone
|
||||
unrar
|
||||
# Desktop Integration
|
||||
adwaita-icon-theme
|
||||
junction
|
||||
libfido2
|
||||
toggleaudiosink
|
||||
# Xwayland Support
|
||||
xwayland-satellite
|
||||
];
|
||||
|
||||
services.flatpak.packages = [
|
||||
"com.github.tchx84.Flatseal"
|
||||
"com.rustdesk.RustDesk"
|
||||
];
|
||||
};
|
||||
|
||||
homeManager.programs-utilities =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs = {
|
||||
ghostty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cursor-style = "block";
|
||||
shell-integration-features = "no-cursor";
|
||||
cursor-style-blink = false;
|
||||
custom-shader = "${builtins.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/hackr-sh/ghostty-shaders/cb6eb4b0d1a3101c869c62e458b25a826f9dcde3/cursor_blaze.glsl";
|
||||
sha256 = "sha256:0g2lgqjdrn3c51glry7x2z30y7ml0y61arl5ykmf4yj0p85s5f41";
|
||||
}}";
|
||||
bell-features = "";
|
||||
gtk-titlebar-style = "tabs";
|
||||
keybind = [ "shift+enter=text:\\x1b\\r" ];
|
||||
};
|
||||
};
|
||||
|
||||
password-store = {
|
||||
enable = true;
|
||||
package = pkgs.pass-wayland;
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
TERMINAL = "ghostty";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
flake.modules.nixos.programs-web =
|
||||
flake.modules.nixos.web =
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
programs = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue