Compare commits

...

5 Commits

Author SHA1 Message Date
Tom Alexander
a7f3754d25
Add more sway config files. 2024-12-20 23:03:51 -05:00
Tom Alexander
54c8459fa1
Switch to vulkan renderer for sway. 2024-12-20 22:45:09 -05:00
Tom Alexander
e26118af4f
Reformat all nix files. 2024-12-20 22:37:44 -05:00
Tom Alexander
764a8c58ce
Add alias for emacs. 2024-12-20 22:36:32 -05:00
Tom Alexander
8f89f1c6c1
Add alacritty config. 2024-12-20 21:59:20 -05:00
21 changed files with 695 additions and 439 deletions

View File

@ -1,7 +1,12 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
boot.loader.grub.enable = false; boot.loader.grub.enable = false;
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
@ -15,7 +20,6 @@
# efibootmgr -c -d /dev/sda -p 1 -L NixOS-boot -l '\EFI\NixOS-boot\grubx64.efi' # efibootmgr -c -d /dev/sda -p 1 -L NixOS-boot -l '\EFI\NixOS-boot\grubx64.efi'
# Text-only: # Text-only:
# sudo cp "$(nix-build '<nixpkgs>' --no-out-link -A 'refind')/share/refind/refind_x64.efi" /boot/EFI/boot/bootx64.efi # sudo cp "$(nix-build '<nixpkgs>' --no-out-link -A 'refind')/share/refind/refind_x64.efi" /boot/EFI/boot/bootx64.efi

View File

@ -1,11 +1,22 @@
{ config, lib, pkgs, pkgs-unstable, home-manager, ... }: {
config,
lib,
pkgs,
pkgs-unstable,
home-manager,
...
}:
{ {
imports = imports = [
[
./roles/reset ./roles/reset
./hosts/odo ./hosts/odo
"${builtins.fetchTarball {url="https://github.com/nix-community/disko/archive/refs/tags/v1.9.0.tar.gz";sha256="0j76ar4qz320fakdii4659w5lww8wiz6yb7g47npywqvf2lbp388";}}/module.nix" "${
builtins.fetchTarball {
url = "https://github.com/nix-community/disko/archive/refs/tags/v1.9.0.tar.gz";
sha256 = "0j76ar4qz320fakdii4659w5lww8wiz6yb7g47npywqvf2lbp388";
}
}/module.nix"
./boot.nix ./boot.nix
./zfs.nix ./zfs.nix
./network.nix ./network.nix
@ -13,6 +24,7 @@
./roles/graphics ./roles/graphics
./roles/sound ./roles/sound
./roles/sway ./roles/sway
./roles/alacritty
./roles/firefox ./roles/firefox
./roles/emacs ./roles/emacs
./roles/git ./roles/git
@ -20,7 +32,10 @@
./roles/gpg ./roles/gpg
]; ];
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [
"nix-command"
"flakes"
];
nix.settings.trusted-users = [ "@wheel" ]; nix.settings.trusted-users = [ "@wheel" ];
boot.kernelPackages = pkgs.linuxPackages_6_11; boot.kernelPackages = pkgs.linuxPackages_6_11;
@ -45,8 +60,13 @@
]; ];
}; };
users.groups.talexander.gid = 11235; users.groups.talexander.gid = 11235;
home-manager.users.talexander = { pkgs, ... }: { home-manager.users.talexander =
home.packages = [ pkgs.atool pkgs.httpie ]; { pkgs, ... }:
{
home.packages = [
pkgs.atool
pkgs.httpie
];
programs.bash.enable = true; programs.bash.enable = true;
# The state version is required and should stay at the version you # The state version is required and should stay at the version you
@ -66,14 +86,16 @@
security.doas.enable = true; security.doas.enable = true;
security.doas.wheelNeedsPassword = false; security.doas.wheelNeedsPassword = false;
security.sudo.enable = false; security.sudo.enable = false;
security.doas.extraRules = [{ security.doas.extraRules = [
{
# Retain environment (for example NIX_PATH) # Retain environment (for example NIX_PATH)
keepEnv = true; keepEnv = true;
persist = true; # Only ask for a password the first time. persist = true; # Only ask for a password the first time.
}]; }
];
# Do not use default packages (nixos includes some defaults like nano) # Do not use default packages (nixos includes some defaults like nano)
environment.defaultPackages = lib.mkForce []; environment.defaultPackages = lib.mkForce [ ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
wget wget
@ -170,8 +192,6 @@
# }) # })
# ]; # ];
# Copy the NixOS configuration file and link it from the resulting system # Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you # (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix. # accidentally delete configuration.nix.

View File

@ -12,8 +12,18 @@
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-b93b4e9b5, impermanence, home-manager, ... }@inputs: let outputs =
base-system = {}; {
self,
nixpkgs,
nixpkgs-unstable,
nixpkgs-b93b4e9b5,
impermanence,
home-manager,
...
}@inputs:
let
base-system = { };
odoqemu = nixpkgs.lib.nixosSystem rec { odoqemu = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { specialArgs = {
@ -34,7 +44,9 @@
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
} }
./configuration.nix ./configuration.nix
({lib, ...}: { (
{ lib, ... }:
{
imports = [ <nixpkgs/nixos/modules/virtualisation/qemu-vm.nix> ]; imports = [ <nixpkgs/nixos/modules/virtualisation/qemu-vm.nix> ];
virtualisation.qemu.options = [ virtualisation.qemu.options = [
"-device virtio-vga" "-device virtio-vga"
@ -52,7 +64,8 @@
boot.loader.efi.canTouchEfiVariables = lib.mkForce true; boot.loader.efi.canTouchEfiVariables = lib.mkForce true;
# doas nixos-rebuild build-vm --flake .#odoqemu # doas nixos-rebuild build-vm --flake .#odoqemu
#./result/bin/run-nixos-vm #./result/bin/run-nixos-vm
}) }
)
]; ];
}; };
odo = nixpkgs.lib.nixosSystem rec { odo = nixpkgs.lib.nixosSystem rec {
@ -104,11 +117,14 @@
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
} }
./configuration.nix ./configuration.nix
({lib, ...}: { (
{ lib, ... }:
{
networking.dhcpcd.enable = lib.mkForce true; networking.dhcpcd.enable = lib.mkForce true;
networking.useDHCP = lib.mkForce true; networking.useDHCP = lib.mkForce true;
boot.loader.efi.canTouchEfiVariables = lib.mkForce true; boot.loader.efi.canTouchEfiVariables = lib.mkForce true;
}) }
)
]; ];
}; };
}; };

View File

@ -14,7 +14,11 @@
type = "filesystem"; type = "filesystem";
format = "vfat"; format = "vfat";
mountpoint = "/boot"; mountpoint = "/boot";
mountOptions = [ "umask=0077" "noatime" "discard" ]; mountOptions = [
"umask=0077"
"noatime"
"discard"
];
}; };
}; };
zfs = { zfs = {

View File

@ -1,14 +1,24 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" ]; boot.initrd.availableKernelModules = [
"nvme"
"xhci_pci"
"thunderbolt"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];

View File

@ -1,11 +1,19 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
networking.dhcpcd.enable = false; networking.dhcpcd.enable = false;
networking.useDHCP = false; networking.useDHCP = false;
networking.nameservers = [ "194.242.2.2#doh.mullvad.net" "2a07:e340::2#doh.mullvad.net" ]; networking.nameservers = [
"194.242.2.2#doh.mullvad.net"
"2a07:e340::2#doh.mullvad.net"
];
services.resolved = { services.resolved = {
enable = true; enable = true;
dnssec = "true"; dnssec = "true";
@ -14,7 +22,6 @@
dnsovertls = "true"; dnsovertls = "true";
}; };
# Without this, systemd-resolved will send DNS requests for <X>.home.arpa to the per-link DNS server (172.16.0.1) which does not support DNS-over-TLS. This leads to the connection anging and timing out. This causes firefox startup to take an extra 10+ seconds. # Without this, systemd-resolved will send DNS requests for <X>.home.arpa to the per-link DNS server (172.16.0.1) which does not support DNS-over-TLS. This leads to the connection anging and timing out. This causes firefox startup to take an extra 10+ seconds.
# #
# Test with: drill @127.0.0.53 odo.home.arpa # Test with: drill @127.0.0.53 odo.home.arpa

View File

@ -0,0 +1,24 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [ ];
environment.systemPackages = with pkgs; [
alacritty
xdg-utils # for xdg-open
];
home-manager.users.talexander =
{ pkgs, ... }:
{
home.file.".config/alacritty/alacritty.toml" = {
source = ./files/alacritty.toml;
};
};
}

View File

@ -0,0 +1,44 @@
[colors]
draw_bold_text_with_bright_colors = true
indexed_colors = []
[colors.bright]
black = "0x666666"
blue = "0x7aa6da"
cyan = "0x54ced6"
green = "0x9ec400"
magenta = "0xb77ee0"
red = "0xff3334"
white = "0xffffff"
yellow = "0xe7c547"
[colors.normal]
black = "0x000000"
blue = "0x7aa6da"
cyan = "0x70c0ba"
green = "0xb9ca4a"
magenta = "0xc397d8"
red = "0xd54e53"
white = "0xeaeaea"
yellow = "0xe6c547"
[colors.primary]
background = "0x000000"
foreground = "0xeaeaea"
[font]
size = 11.0
[[hints.enabled]]
command = "xdg-open"
post_processing = true
regex = "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)[^\u0000-\u001F\u007F-<>\"\\s{-}\\^⟨⟩`]+"
[hints.enabled.mouse]
enabled = false
mods = "None"
[scrolling]
history = 10000
# Lines moved per scroll.
multiplier = 3

View File

@ -1,7 +1,11 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
} }

View File

@ -1,9 +1,14 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
let let
plainmacs = pkgs.writeShellScriptBin "plainmacs" '' plainmacs = pkgs.writeShellScriptBin "plainmacs" ''
INIT_SCRIPT=$(cat <<EOF INIT_SCRIPT=$(cat <<EOF
(progn (progn
(setq make-backup-files nil auto-save-default nil create-lockfiles nil) (setq make-backup-files nil auto-save-default nil create-lockfiles nil)
(load-theme 'tango-dark t) (load-theme 'tango-dark t)
(set-face-attribute 'default nil :background "black") (set-face-attribute 'default nil :background "black")
@ -26,23 +31,30 @@ INIT_SCRIPT=$(cat <<EOF
(pixel-scroll-precision-mode) (pixel-scroll-precision-mode)
(setq frame-resize-pixelwise t) (setq frame-resize-pixelwise t)
) )
EOF EOF
) )
exec ${pkgs.emacs29-pgtk}/bin/emacs -q --eval "$INIT_SCRIPT" "''${@}" exec ${pkgs.emacs29-pgtk}/bin/emacs -q --eval "$INIT_SCRIPT" "''${@}"
'';
e_shorthand = pkgs.writeShellScriptBin "e" ''
exec ${pkgs.emacs29-pgtk}/bin/emacs "''${@}"
''; '';
in in
{ {
imports = []; imports = [ ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
plainmacs plainmacs
e_shorthand
emacs29-pgtk emacs29-pgtk
clang # To compile tree-sitter grammars clang # To compile tree-sitter grammars
nixd # nix language server nixd # nix language server
nixfmt-rfc-style # auto-formatting nix files through nixd
]; ];
home-manager.users.talexander = { pkgs, ... }: { home-manager.users.talexander =
{ pkgs, ... }:
{
home.file.".config/emacs" = { home.file.".config/emacs" = {
source = ./files/emacs; source = ./files/emacs;
recursive = true; recursive = true;

View File

@ -1,11 +1,16 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
programs.firefox = { programs.firefox = {
enable = true; enable = true;
package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true;}) {}); package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true; }) { });
languagePacks = [ "en-US" ]; languagePacks = [ "en-US" ];
preferences = { preferences = {
# "identity.sync.tokenserver.uri": "https://ffsync.fizz.buzz/token/1.0/sync/1.5"; # "identity.sync.tokenserver.uri": "https://ffsync.fizz.buzz/token/1.0/sync/1.5";
@ -52,7 +57,8 @@
"privacy.fingerprintingProtection" = true; "privacy.fingerprintingProtection" = true;
# Allow sending dark mode preference to websites. # Allow sending dark mode preference to websites.
# Allow sending timezone to websites. # Allow sending timezone to websites.
"privacy.fingerprintingProtection.overrides" = "+AllTargets,-CSSPrefersColorScheme,-JSDateTimeUTC,-CanvasExtractionBeforeUserInputIsBlocked"; "privacy.fingerprintingProtection.overrides" =
"+AllTargets,-CSSPrefersColorScheme,-JSDateTimeUTC,-CanvasExtractionBeforeUserInputIsBlocked";
# Disable weather on new tab page # Disable weather on new tab page
"browser.newtabpage.activity-stream.showWeather" = false; "browser.newtabpage.activity-stream.showWeather" = false;
}; };
@ -82,7 +88,12 @@
hideMounts = true; hideMounts = true;
users.talexander = { users.talexander = {
directories = [ directories = [
{ directory = ".mozilla"; user = "talexander"; group = "talexander"; mode = "0700"; } {
directory = ".mozilla";
user = "talexander";
group = "talexander";
mode = "0700";
}
]; ];
}; };
}; };
@ -90,7 +101,12 @@
hideMounts = true; hideMounts = true;
users.talexander = { users.talexander = {
directories = [ directories = [
{ directory = ".cache/mozilla"; user = "talexander"; group = "talexander"; mode = "0700"; } {
directory = ".cache/mozilla";
user = "talexander";
group = "talexander";
mode = "0700";
}
]; ];
}; };
}; };

View File

@ -1,7 +1,12 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [

View File

@ -1,7 +1,12 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
fonts = { fonts = {
enableDefaultPackages = true; enableDefaultPackages = true;
@ -13,9 +18,9 @@
fontconfig = { fontconfig = {
localConf = '' localConf = ''
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig> <fontconfig>
<!-- reject all bitmap fonts, with the exception of 'terminus' --> <!-- reject all bitmap fonts, with the exception of 'terminus' -->
<selectfont> <selectfont>
<!-- <acceptfont> --> <!-- <acceptfont> -->
@ -111,7 +116,7 @@
<const>lcddefault</const> <const>lcddefault</const>
</edit> </edit>
</match> </match>
</fontconfig> </fontconfig>
''; '';
}; };
}; };

View File

@ -1,13 +1,20 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
git git
]; ];
home-manager.users.talexander = { pkgs, ... }: { home-manager.users.talexander =
{ pkgs, ... }:
{
home.file.".gitconfig" = { home.file.".gitconfig" = {
source = ./files/gitconfig_home; source = ./files/gitconfig_home;
}; };

View File

@ -1,7 +1,12 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
# Fetch public keys: # Fetch public keys:
# gpg --locate-keys tom@fizz.buzz # gpg --locate-keys tom@fizz.buzz
@ -17,7 +22,12 @@
hideMounts = true; hideMounts = true;
users.talexander = { users.talexander = {
directories = [ directories = [
{ directory = ".gnupg"; user = "talexander"; group = "talexander"; mode = "0700"; } # Local keyring {
directory = ".gnupg";
user = "talexander";
group = "talexander";
mode = "0700";
} # Local keyring
]; ];
}; };
}; };

View File

@ -1,7 +1,12 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
hardware.graphics.enable = true; hardware.graphics.enable = true;
} }

View File

@ -1,7 +1,12 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
# Reset some defaults to start from a minimal more-arch-linux-like state. Think of this like a CSS reset sheet. # Reset some defaults to start from a minimal more-arch-linux-like state. Think of this like a CSS reset sheet.

View File

@ -1,7 +1,12 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
pavucontrol pavucontrol

View File

@ -1,53 +1,58 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
let let
sway-config = pkgs.writeTextFile { sway-config = pkgs.writeTextFile {
name = "config"; name = "config";
text = '' text = ''
# Default config for sway # Default config for sway
# #
# Copy this to ~/.config/sway/config and edit it to your liking. # Copy this to ~/.config/sway/config and edit it to your liking.
# #
# Read `man 5 sway` for a complete reference. # Read `man 5 sway` for a complete reference.
### Variables ### Variables
# #
# Logo key. Use Mod1 for Alt. # Logo key. Use Mod1 for Alt.
set $mod Mod4 set $mod Mod4
# set $mod Mod1 # set $mod Mod1
# Home row direction keys, like vim # Home row direction keys, like vim
set $left h set $left h
set $down j set $down j
set $up k set $up k
set $right l set $right l
# Your preferred terminal emulator # Your preferred terminal emulator
set $term ${pkgs.alacritty}/bin/alacritty set $term ${pkgs.alacritty}/bin/alacritty
# Your preferred application launcher # Your preferred application launcher
# Note: it's recommended that you pass the final command to sway # Note: it's recommended that you pass the final command to sway
# set $menu dmenu_path | dmenu | xargs swaymsg exec # set $menu dmenu_path | dmenu | xargs swaymsg exec
set $menu ${pkgs.wofi}/bin/wofi --show drun --gtk-dark set $menu ${pkgs.wofi}/bin/wofi --show drun --gtk-dark
# Do not show a title bar on windows # Do not show a title bar on windows
default_border pixel 2 default_border pixel 2
bindsym $mod+grave exec $term bindsym $mod+grave exec $term
include ${base-hotkeys} include ${base-hotkeys}
include ${display-configs} include ${display-configs}
include ${window-management} include ${window-management}
include ${movement} include ${movement}
include ${disable-focus-follows-mouse} include ${disable-focus-follows-mouse}
include ~/.config/sway/config.d/*.conf include ${background}
include /etc/sway/config.d/* include ${touchpad_input}
''; '';
}; };
base-hotkeys = pkgs.writeTextFile { base-hotkeys = pkgs.writeTextFile {
name = "base-hotkeys.conf"; name = "base-hotkeys.conf";
text = '' text = ''
### Key bindings ### Key bindings
# #
# Basics: # Basics:
# #
# kill focused window # kill focused window
bindsym $mod+Shift+q kill bindsym $mod+Shift+q kill
@ -66,22 +71,22 @@ include /etc/sway/config.d/*
# exit sway (logs you out of your Wayland session) # exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
''; '';
}; };
display-configs = pkgs.writeTextFile { display-configs = pkgs.writeTextFile {
name = "display-configs.conf"; name = "display-configs.conf";
text = '' text = ''
output 'Unknown 0x095F 0x00000000' scale 1.5 output 'Unknown 0x095F 0x00000000' scale 1.5
output 'BOE 0x095F Unknown' scale 1.5 output 'BOE 0x095F Unknown' scale 1.5
output 'BOE 0x0BCA Unknown' scale 1.5 output 'BOE 0x0BCA Unknown' scale 1.5
''; '';
}; };
window-management = pkgs.writeTextFile { window-management = pkgs.writeTextFile {
name = "window-management.conf"; name = "window-management.conf";
text = '' text = ''
# #
# Layout stuff: # Layout stuff:
# #
# You can "split" the current object of your focus with # You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits # $mod+b or $mod+v, for horizontal and vertical splits
# respectively. # respectively.
@ -104,9 +109,9 @@ output 'BOE 0x0BCA Unknown' scale 1.5
# move focus to the parent container # move focus to the parent container
bindsym $mod+a focus parent bindsym $mod+a focus parent
# #
# Scratchpad: # Scratchpad:
# #
# Sway has a "scratchpad", which is a bag of holding for windows. # Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later. # You can send windows there and get them back later.
@ -116,10 +121,10 @@ output 'BOE 0x0BCA Unknown' scale 1.5
# Show the next scratchpad window or hide the focused scratchpad window. # Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them. # If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show bindsym $mod+minus scratchpad show
# #
# Resizing containers: # Resizing containers:
# #
mode "resize" { mode "resize" {
# left will shrink the containers width # left will shrink the containers width
# right will grow the containers width # right will grow the containers width
# up will shrink the containers height # up will shrink the containers height
@ -138,16 +143,16 @@ mode "resize" {
# return to default mode # return to default mode
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
''; '';
}; };
movement = pkgs.writeTextFile { movement = pkgs.writeTextFile {
name = "movement.conf"; name = "movement.conf";
text = '' text = ''
# #
# Moving around: # Moving around:
# #
# Move your focus around # Move your focus around
# bindsym $mod+$left focus left # bindsym $mod+$left focus left
# bindsym $mod+$down focus down # bindsym $mod+$down focus down
@ -169,9 +174,9 @@ bindsym $mod+r mode "resize"
bindsym $mod+Shift+Down move down bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right bindsym $mod+Shift+Right move right
# #
# Workspaces: # Workspaces:
# #
# switch to workspace # switch to workspace
bindsym $mod+1 workspace 1 bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2 bindsym $mod+2 workspace 2
@ -196,26 +201,69 @@ bindsym $mod+r mode "resize"
bindsym $mod+Shift+0 move container to workspace 10 bindsym $mod+Shift+0 move container to workspace 10
# Note: workspaces can have any name you want, not just numbers. # Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default. # We just use 1-10 as the default.
''; '';
}; };
disable-focus-follows-mouse = pkgs.writeTextFile { disable-focus-follows-mouse = pkgs.writeTextFile {
name = "disable-focus-follows-mouse.conf"; name = "disable-focus-follows-mouse.conf";
text = '' text = ''
# Disable focus following mouse # Disable focus following mouse
focus_follows_mouse no focus_follows_mouse no
''; '';
}; };
background = pkgs.writeTextFile {
name = "background.conf";
text = ''
output * bg ${./files/bliss.jpg} fill
'';
};
touchpad_input = pkgs.writeTextFile {
name = "touchpad_input.conf";
text = ''
input * xkb_rules "evdev"
# All touchpads
input type:touchpad {
dwt enabled
click_method clickfinger
tap enabled
}
'';
};
start_screen_share = pkgs.writeShellScriptBin "start_screen_share" ''
# Disable displaying notifications. This is useful for video conference screen sharing.
set -euo pipefail
IFS=$'\n\t'
DIR="$( cd "$( dirname "''${BASH_SOURCE[0]}" )" && pwd )"
makoctl set-mode do-not-disturb
swaymsg output "'Dell Inc. DELL U3014 P1V6N35M329L'" scale 2
'';
stop_screen_share = pkgs.writeShellScriptBin "stop_screen_share" ''
# Allow mako to show notifications again.
set -euo pipefail
IFS=$'\n\t'
DIR="$( cd "$( dirname "''${BASH_SOURCE [ 0 ]}" )" && pwd )"
makoctl set-mode default
swaymsg output "'Dell Inc. DELL U3014 P1V6N35M329L'" scale 1
'';
in in
{ {
imports = []; imports = [ ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
alacritty alacritty
pcmanfm pcmanfm
start_screen_share
stop_screen_share
]; ];
environment.sessionVariables = { environment.sessionVariables = {
WLR_RENDERER_ALLOW_SOFTWARE = "1"; # WLR_RENDERER_ALLOW_SOFTWARE = "1";
WLR_RENDERER = "vulkan";
}; };
programs.sway = { programs.sway = {
@ -225,7 +273,7 @@ in
"--debug" "--debug"
"--config" "--config"
"${sway-config}" "${sway-config}"
"--unsupported-gpu" # "--unsupported-gpu"
]; ];
}; };

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 KiB

View File

@ -1,7 +1,12 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = []; imports = [ ];
boot.zfs.devNodes = "/dev/disk/by-partuuid"; boot.zfs.devNodes = "/dev/disk/by-partuuid";