Compare commits
No commits in common. "8ec79eac11936de71ba46fec418bcfc654bcfaf2" and "28080d31c0b870f4d82b09d99cd4ed4b8ca4c1a3" have entirely different histories.
8ec79eac11
...
28080d31c0
12
flake.lock
12
flake.lock
|
@ -778,11 +778,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722462338,
|
"lastModified": 1719037157,
|
||||||
"narHash": "sha256-ss0G8t8RJVDewA3MyqgAlV951cWRK6EtVhVKEZ7J5LU=",
|
"narHash": "sha256-aOKd8+mhBsLQChCu1mn/W5ww79ta5cXVE59aJFrifM8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "6e090576c4824b16e8759ebca3958c5b09659ee8",
|
"rev": "cd886711998fe5d9ff7979fdd4b4cbd17b1f1511",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1063,11 +1063,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722415718,
|
"lastModified": 1722141560,
|
||||||
"narHash": "sha256-5US0/pgxbMksF92k1+eOa8arJTJiPvsdZj9Dl+vJkM4=",
|
"narHash": "sha256-Ul3rIdesWaiW56PS/Ak3UlJdkwBrD4UcagCmXZR9Z7Y=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c3392ad349a5227f4a3464dce87bcc5046692fce",
|
"rev": "038fb464fcfa79b4f08131b07f2d8c9a6bcc4160",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -57,6 +57,7 @@ in
|
||||||
feh # For images?
|
feh # For images?
|
||||||
deluge # Torrent client
|
deluge # Torrent client
|
||||||
pavucontrol # PulseAudio control panel
|
pavucontrol # PulseAudio control panel
|
||||||
|
cinnamon.nemo # File manager
|
||||||
thunderbird # Email
|
thunderbird # Email
|
||||||
sublime-music # For navidrome
|
sublime-music # For navidrome
|
||||||
cinny-desktop
|
cinny-desktop
|
||||||
|
@ -71,10 +72,8 @@ in
|
||||||
mpv # for anki
|
mpv # for anki
|
||||||
anki-bin
|
anki-bin
|
||||||
|
|
||||||
# Chat stuff
|
|
||||||
tdesktop
|
tdesktop
|
||||||
whatsapp-for-linux
|
whatsapp-for-linux
|
||||||
slack
|
|
||||||
|
|
||||||
librewolf
|
librewolf
|
||||||
|
|
||||||
|
@ -83,7 +82,11 @@ in
|
||||||
# sct # Display color temperature
|
# sct # Display color temperature
|
||||||
xdg-utils # Open stuff
|
xdg-utils # Open stuff
|
||||||
wifi-indicator
|
wifi-indicator
|
||||||
]);
|
] ++ (if pkgs.stdenv.isAarch64 then [ ] else [
|
||||||
|
gnome.cheese # Webcam check, expensive
|
||||||
|
# Chat stuff
|
||||||
|
slack
|
||||||
|
]));
|
||||||
|
|
||||||
nki.programs.discord.enable = pkgs.stdenv.isx86_64;
|
nki.programs.discord.enable = pkgs.stdenv.isx86_64;
|
||||||
nki.programs.discord.package = pkgs.vesktop;
|
nki.programs.discord.package = pkgs.vesktop;
|
||||||
|
|
|
@ -14,7 +14,7 @@ let
|
||||||
systemd.user.services.swaync.Unit.PartOf = lib.mkForce [ "sway-session.target" ];
|
systemd.user.services.swaync.Unit.PartOf = lib.mkForce [ "sway-session.target" ];
|
||||||
|
|
||||||
programs.my-sway.waybar = {
|
programs.my-sway.waybar = {
|
||||||
extraSettings = [{
|
extraSettings = {
|
||||||
modules-right = mkAfter [ "custom/swaync" ];
|
modules-right = mkAfter [ "custom/swaync" ];
|
||||||
modules."custom/swaync" = {
|
modules."custom/swaync" = {
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
|
@ -36,7 +36,7 @@ let
|
||||||
on-click-right = "${swaync}/bin/swaync-client -d -sw";
|
on-click-right = "${swaync}/bin/swaync-client -d -sw";
|
||||||
escape = true;
|
escape = true;
|
||||||
};
|
};
|
||||||
}];
|
};
|
||||||
extraStyle = mkAfter ''
|
extraStyle = mkAfter ''
|
||||||
#custom-swaync {
|
#custom-swaync {
|
||||||
background: #F0FFFF;
|
background: #F0FFFF;
|
||||||
|
|
|
@ -110,12 +110,12 @@ in
|
||||||
default = barWith: [ (barWith { }) ];
|
default = barWith: [ (barWith { }) ];
|
||||||
};
|
};
|
||||||
extraSettings = mkOption {
|
extraSettings = mkOption {
|
||||||
type = types.listOf types.raw;
|
type = types.raw;
|
||||||
description = "Extra settings to be included with every default bar";
|
description = "Extra settings to be included with every default bar";
|
||||||
default = [ ];
|
default = { };
|
||||||
};
|
};
|
||||||
extraStyle = mkOption {
|
extraStyle = mkOption {
|
||||||
type = types.lines;
|
type = types.str;
|
||||||
description = "Additional style for the default waybar";
|
description = "Additional style for the default waybar";
|
||||||
default = "";
|
default = "";
|
||||||
};
|
};
|
||||||
|
@ -409,7 +409,7 @@ in
|
||||||
|
|
||||||
config.programs.waybar =
|
config.programs.waybar =
|
||||||
let
|
let
|
||||||
barWith = { showMedia ? true, showConnectivity ? true, extraSettings ? { }, ... }: mkMerge ([{
|
barWith = { showMedia ? true, showConnectivity ? true, extraSettings ? { }, ... }: (mkMerge [{
|
||||||
position = "top";
|
position = "top";
|
||||||
modules-left = [
|
modules-left = [
|
||||||
"sway/workspaces"
|
"sway/workspaces"
|
||||||
|
@ -420,7 +420,7 @@ in
|
||||||
];
|
];
|
||||||
modules-right =
|
modules-right =
|
||||||
lib.optional showMedia (if cfg.enableMpd then "mpd" else "custom/media")
|
lib.optional showMedia (if cfg.enableMpd then "mpd" else "custom/media")
|
||||||
++ [
|
++ [
|
||||||
"tray"
|
"tray"
|
||||||
"pulseaudio"
|
"pulseaudio"
|
||||||
] ++ lib.optionals showConnectivity [
|
] ++ lib.optionals showConnectivity [
|
||||||
|
@ -431,7 +431,7 @@ in
|
||||||
"memory"
|
"memory"
|
||||||
"temperature"
|
"temperature"
|
||||||
] ++ lib.optionals cfg.enableLaptopBars [ "battery" "battery#bat2" ]
|
] ++ lib.optionals cfg.enableLaptopBars [ "battery" "battery#bat2" ]
|
||||||
++ [
|
++ [
|
||||||
"clock"
|
"clock"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -598,9 +598,9 @@ in
|
||||||
"on-click" = "${playerctl} play-pause";
|
"on-click" = "${playerctl} play-pause";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}] ++
|
}
|
||||||
cfg.waybar.extraSettings
|
cfg.waybar.extraSettings
|
||||||
++ [ extraSettings ]);
|
extraSettings]);
|
||||||
in
|
in
|
||||||
mkIf cfg.enable {
|
mkIf cfg.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -48,21 +48,6 @@
|
||||||
tap = "enabled";
|
tap = "enabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
programs.my-sway.waybar.extraSettings =
|
|
||||||
let
|
|
||||||
change-mode = pkgs.writeScript "change-mode" ''
|
|
||||||
#!/usr/bin/env ${lib.getExe pkgs.fish}
|
|
||||||
set -ax PATH ${lib.getBin pkgs.power-profiles-daemon} ${lib.getBin pkgs.rofi} ${lib.getBin pkgs.ripgrep}
|
|
||||||
|
|
||||||
set profiles (powerprofilesctl list | rg "^[ *] (\S+):" -r '$1')
|
|
||||||
set selected_index (math (contains -i (powerprofilesctl get) $profiles) - 1)
|
|
||||||
set new_profile (printf "%s\n" $profiles | rofi -dmenu -p "Switch to power profile" -a $selected_index)
|
|
||||||
powerprofilesctl set $new_profile
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
[{
|
|
||||||
modules."battery"."on-click" = change-mode;
|
|
||||||
}];
|
|
||||||
|
|
||||||
# input-remapping
|
# input-remapping
|
||||||
xdg.configFile."autostart/input-remapper-autoload.desktop".source =
|
xdg.configFile."autostart/input-remapper-autoload.desktop".source =
|
||||||
|
@ -76,32 +61,16 @@
|
||||||
# Multiple screen setup
|
# Multiple screen setup
|
||||||
services.kanshi = with config.common.monitors; {
|
services.kanshi = with config.common.monitors; {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = [
|
profiles.undocked.outputs = [{
|
||||||
{
|
criteria = "eDP-1";
|
||||||
profile.name = "undocked";
|
}];
|
||||||
profile.outputs = [{ criteria = "eDP-1"; }];
|
profiles.work-both.outputs = [
|
||||||
}
|
{ criteria = "eDP-1"; position = "0,${toString (builtins.floor ((2160 / work.scale - 1200) + 1200 / 3))}"; status = "enable"; }
|
||||||
{
|
{ criteria = work.name; position = "1920,0"; }
|
||||||
profile.name = "work-both";
|
];
|
||||||
profile.outputs = [
|
profiles.work-one.outputs = [
|
||||||
{
|
{ criteria = "eDP-1"; status = "disable"; }
|
||||||
criteria = "eDP-1";
|
{ criteria = config.common.monitors.work.name; }
|
||||||
position = "0,${toString (builtins.floor ((2160 / work.scale - 1200) + 1200 / 3))}";
|
|
||||||
status = "enable";
|
|
||||||
}
|
|
||||||
{ criteria = work.name; position = "1920,0"; }
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
profile.name = "work-one";
|
|
||||||
profile.outputs = [
|
|
||||||
{
|
|
||||||
criteria = "eDP-1";
|
|
||||||
status = "disable";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{ output.criteria = config.common.monitors.work.name; }
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
services.printing.drivers = with pkgs; [ epfl-cups-drivers ];
|
services.printing.drivers = with pkgs; [ epfl-cups-drivers ];
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
services.libinput.enable = true;
|
services.xserver.libinput.enable = true;
|
||||||
# Keyboard
|
# Keyboard
|
||||||
services.input-remapper.enable = true;
|
services.input-remapper.enable = true;
|
||||||
services.input-remapper.serviceWantedBy = [ "multi-user.target" ];
|
services.input-remapper.serviceWantedBy = [ "multi-user.target" ];
|
||||||
|
|
|
@ -27,17 +27,6 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
graphics = { config, ... }: {
|
|
||||||
hardware =
|
|
||||||
if config.system.nixos.release == "24.05" then {
|
|
||||||
opengl.enable = true;
|
|
||||||
opengl.driSupport32Bit = true;
|
|
||||||
} else {
|
|
||||||
graphics.enable = true;
|
|
||||||
graphics.enable32Bit = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
accounts = { pkgs, ... }: mkIf (config.common.linux.enable && !pkgs.stdenv.isAarch64) {
|
accounts = { pkgs, ... }: mkIf (config.common.linux.enable && !pkgs.stdenv.isAarch64) {
|
||||||
environment.systemPackages = with pkgs.gnome; [ pkgs.glib gnome-control-center ];
|
environment.systemPackages = with pkgs.gnome; [ pkgs.glib gnome-control-center ];
|
||||||
services.accounts-daemon.enable = true;
|
services.accounts-daemon.enable = true;
|
||||||
|
@ -115,7 +104,7 @@ let
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = with modules; [ adb ios graphics wlr logitech kwallet virtualisation accounts rt-audio ];
|
imports = with modules; [ adb ios wlr logitech kwallet virtualisation accounts rt-audio ];
|
||||||
|
|
||||||
options.common.linux = {
|
options.common.linux = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
|
@ -267,18 +256,14 @@ in
|
||||||
i18n.defaultLocale = "ja_JP.UTF-8";
|
i18n.defaultLocale = "ja_JP.UTF-8";
|
||||||
# Input methods (only fcitx5 works reliably on Wayland)
|
# Input methods (only fcitx5 works reliably on Wayland)
|
||||||
i18n.inputMethod = {
|
i18n.inputMethod = {
|
||||||
|
enabled = "fcitx5";
|
||||||
fcitx5.waylandFrontend = true;
|
fcitx5.waylandFrontend = true;
|
||||||
fcitx5.addons = with pkgs; [
|
fcitx5.addons = with pkgs; [
|
||||||
fcitx5-mozc
|
fcitx5-mozc
|
||||||
fcitx5-unikey
|
fcitx5-unikey
|
||||||
fcitx5-gtk
|
fcitx5-gtk
|
||||||
];
|
];
|
||||||
} // (if config.system.nixos.release == "24.05" then {
|
};
|
||||||
enabled = "fcitx5";
|
|
||||||
} else {
|
|
||||||
enable = true;
|
|
||||||
type = "fcitx5";
|
|
||||||
});
|
|
||||||
|
|
||||||
# Default packages
|
# Default packages
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
@ -308,6 +293,8 @@ in
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
# Gaming! (not for ARM64)
|
# Gaming! (not for ARM64)
|
||||||
programs.steam.enable = !pkgs.stdenv.isAarch64;
|
programs.steam.enable = !pkgs.stdenv.isAarch64;
|
||||||
|
hardware.opengl.enable = true;
|
||||||
|
hardware.opengl.driSupport32Bit = !pkgs.stdenv.isAarch64; # For 32 bit applications
|
||||||
|
|
||||||
## Services
|
## Services
|
||||||
# OpenSSH so you can SSH to me
|
# OpenSSH so you can SSH to me
|
||||||
|
|
|
@ -12,7 +12,7 @@ lib.mkIf pkgs.stdenv.isLinux {
|
||||||
name = "system-icons";
|
name = "system-icons";
|
||||||
paths = with pkgs; [
|
paths = with pkgs; [
|
||||||
#libsForQt5.breeze-qt5 # for plasma
|
#libsForQt5.breeze-qt5 # for plasma
|
||||||
(pkgs.gnome-themes-extra or gnome.gnome-themes-extra) # Until 24.11
|
gnome.gnome-themes-extra
|
||||||
];
|
];
|
||||||
pathsToLink = [ "/share/icons" ];
|
pathsToLink = [ "/share/icons" ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
# services.xserver.enable = true;
|
# services.xserver.enable = true;
|
||||||
# services.xserver.displayManager.sddm.enable = true;
|
# services.xserver.displayManager.sddm.enable = true;
|
||||||
# services.xserver.displayManager.sddm.wayland.enable = true;
|
# services.xserver.displayManager.sddm.wayland.enable = true;
|
||||||
services.desktopManager.plasma6.enable = true;
|
services.xserver.desktopManager.plasma6.enable = true;
|
||||||
|
|
||||||
# Power Management
|
# Power Management
|
||||||
services.upower = {
|
services.upower = {
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
services.printing.drivers = with pkgs; [ epfl-cups-drivers ];
|
services.printing.drivers = with pkgs; [ epfl-cups-drivers ];
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
services.libinput.enable = true;
|
services.xserver.libinput.enable = true;
|
||||||
# Keyboard
|
# Keyboard
|
||||||
services.input-remapper.enable = true;
|
services.input-remapper.enable = true;
|
||||||
services.input-remapper.serviceWantedBy = [ "multi-user.target" ];
|
services.input-remapper.serviceWantedBy = [ "multi-user.target" ];
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
ed25519PrivateKey = config.sops.secrets."tinc-private-key".path;
|
ed25519PrivateKey = config.sops.secrets."tinc-private-key".path;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.desktopManager.plasma6.enable = true;
|
services.xserver.desktopManager.plasma6.enable = true;
|
||||||
|
|
||||||
# Power Management
|
# Power Management
|
||||||
services.upower = {
|
services.upower = {
|
||||||
|
|
Loading…
Reference in a new issue