add nb config
This commit is contained in:
214
hosts/nb-01.cloonar.com/configuration.nix
Normal file
214
hosts/nb-01.cloonar.com/configuration.nix
Normal file
@@ -0,0 +1,214 @@
|
||||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
# ./modules/clevis.nix
|
||||
|
||||
./modules/sops.nix
|
||||
./modules/nur.nix
|
||||
./modules/sway/sway.nix
|
||||
# ./modules/gnome.nix
|
||||
./modules/nvim/default.nix
|
||||
# ./modules/tuxedo.nix
|
||||
./utils/modules/autoupgrade.nix
|
||||
|
||||
# ./pkgs/howdy/howdy-module.nix
|
||||
# ./pkgs/howdy/ir-toggle-module.nix
|
||||
|
||||
# ./modules/howdy
|
||||
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
nixpkgs.overlays = [ (import ./overlays/packages.nix) ];
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"openssl-1.1.1v"
|
||||
];
|
||||
|
||||
# security.sudo.wheelNeedsPassword = false;
|
||||
# services.clevis.uuid = "7435d48f-f942-485b-9817-328ad3fc0b93";
|
||||
|
||||
# nixos cross building qemu
|
||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
boot.supportedFilesystems = [ "ntfs" ];
|
||||
boot.plymouth.enable = true;
|
||||
boot.plymouth.theme = "breeze";
|
||||
boot.kernelParams = ["quiet"];
|
||||
# boot.loader.systemd-boot.netbootxyz.enable = true;
|
||||
# boot.plymouth.themePackages = [ pkgs.nixos-bgrt-plymouth ];
|
||||
# boot.plymouth.theme = "nixos-bgrt";
|
||||
# allow hibernation
|
||||
security.protectKernelImage = false;
|
||||
|
||||
sops.defaultSopsFile = ./secrets.yaml;
|
||||
sops.age.keyFile = "/var/lib/sops-nix/key.txt";
|
||||
sops.age.generateKey = true;
|
||||
|
||||
sops.secrets.epicenter_vpn_ca = {};
|
||||
sops.secrets.epicenter_vpn_cert = {};
|
||||
sops.secrets.epicenter_vpn_key = {};
|
||||
sops.secrets.wg_private_key = {};
|
||||
sops.secrets.wg_preshared_key = {};
|
||||
sops.secrets.wg-cloonar-key = {};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
virtualisation.virtualbox.host = {
|
||||
enable = true;
|
||||
enableExtensionPack = true;
|
||||
};
|
||||
|
||||
networking.hostName = "cl-nb-01"; # Define your hostname.
|
||||
networking.resolvconf.enable = true;
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
networking.extraHosts = ''
|
||||
10.25.0.25 archive.zeichnemit.at
|
||||
# 10.25.0.25 epicenter.works en.epicenter.works
|
||||
10.25.0.100 download.intra.epicenter.works
|
||||
127.0.0.1 wohnservice.local mieterhilfe.local wohnpartner.local wohnberatung.local wienbautvor.local wienwohntbesser.local
|
||||
127.0.0.1 wohnservice-wien.local mieterhilfe.local wohnpartner-wien.local wohnberatung-wien.local wienbautvor.local wienwohntbesser.local
|
||||
127.0.0.1 diabetes.local
|
||||
127.0.0.1 test.cloonar.com
|
||||
'';
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Vienna";
|
||||
console.keyMap = "de";
|
||||
|
||||
users.users.dominik = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "disk" "video" "audio" "mysql" "docker" "vboxusers" "networkmanager" "onepassword" "onepassword-cli" "dialout" ]; # Enable ‘sudo’ for the user.
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
bento
|
||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
wget
|
||||
docker-compose
|
||||
drone-cli
|
||||
wireguard-tools
|
||||
libftdi1
|
||||
];
|
||||
|
||||
environment.variables = {
|
||||
TERMINAL_COMMAND = "alacritty";
|
||||
};
|
||||
|
||||
services.blueman.enable = true;
|
||||
|
||||
services.printing.enable = true;
|
||||
services.printing.drivers = [ pkgs.brlaser ];
|
||||
|
||||
services.mysql = {
|
||||
enable = true;
|
||||
package = pkgs.mariadb;
|
||||
ensureUsers = [
|
||||
{
|
||||
name = "dominik";
|
||||
ensurePermissions = {
|
||||
"*.*" = "ALL PRIVILEGES";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureUsers = [
|
||||
{
|
||||
name = "dominik";
|
||||
ensurePermissions = {
|
||||
"DATABASE \"zammad\"" = "ALL PRIVILEGES";
|
||||
};
|
||||
}
|
||||
];
|
||||
ensureDatabases = [ "zammad" ];
|
||||
};
|
||||
|
||||
system.stateVersion = "22.11"; # Did you read the comment?
|
||||
|
||||
security.polkit.enable = true;
|
||||
systemd = {
|
||||
user.services.polkit-gnome-authentication-agent-1 = {
|
||||
description = "polkit-gnome-authentication-agent-1";
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
wants = [ "graphical-session.target" ];
|
||||
after = [ "graphical-session.target" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 1;
|
||||
TimeoutStopSec = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
networking.firewall = {
|
||||
allowedUDPPorts = [ 51820 ]; # Clients and peers can use the same port, see listenport
|
||||
# if packets are still dropped, they will show up in dmesg
|
||||
logReversePathDrops = true;
|
||||
# wireguard trips rpfilter up
|
||||
extraCommands = ''
|
||||
ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --sport 51820 -j RETURN
|
||||
ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --dport 51820 -j RETURN
|
||||
'';
|
||||
extraStopCommands = ''
|
||||
ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --sport 51820 -j RETURN || true
|
||||
ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --dport 51820 -j RETURN || true
|
||||
'';
|
||||
};
|
||||
# networking.wireguard.interfaces = {
|
||||
# wg0 = {
|
||||
# # Determines the IP address and subnet of the client's end of the tunnel interface.
|
||||
# ips = [ "10.42.98.201/32" ];
|
||||
# listenPort = 51820; # to match firewall allowedUDPPorts (without this wg uses random port numbers)
|
||||
#
|
||||
# # Path to the private key file.
|
||||
# #
|
||||
# # Note: The private key can also be included inline via the privateKey option,
|
||||
# # but this makes the private key world-readable; thus, using privateKeyFile is
|
||||
# # recommended.
|
||||
# privateKeyFile = config.sops.secrets.wg-cloonar-key.path;
|
||||
#
|
||||
# peers = [
|
||||
# {
|
||||
# publicKey = "TKQVDmBnf9av46kQxLQSBDhAeaK8r1zh8zpU64zuc1Q=";
|
||||
# allowedIPs = [ "0.0.0.0/0" ];
|
||||
# endpoint = "vpn.cloonar.com:51820"; # ToDo: route to endpoint not automatically configured https://wiki.archlinux.org/index.php/WireGuard#Loop_routing https://discourse.nixos.org/t/solved-minimal-firewall-setup-for-wireguard-client/7577
|
||||
# persistentKeepalive = 25;
|
||||
# }
|
||||
# ];
|
||||
# };
|
||||
# };
|
||||
|
||||
# Facial recognition "Windows hello"
|
||||
# services.ir-toggle.enable = true;
|
||||
# services.howdy = {
|
||||
# enable = true;
|
||||
# device = "/dev/video2";
|
||||
# };
|
||||
nix = {
|
||||
settings.auto-optimise-store = true;
|
||||
# autoOptimiseStore = true;
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
# Free up to 1GiB whenever there is less than 100MiB left.
|
||||
extraOptions = ''
|
||||
min-free = ${toString (100 * 1024 * 1024)}
|
||||
max-free = ${toString (1024 * 1024 * 1024)}
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
58
hosts/nb-01.cloonar.com/hardware-configuration.nix
Normal file
58
hosts/nb-01.cloonar.com/hardware-configuration.nix
Normal file
@@ -0,0 +1,58 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.kernelParams = [ "resume=/swap/swapfile" "resume_offset=533760" ];
|
||||
boot.resumeDevice = "/dev/disk/by-uuid/92284909-c5dd-4e0f-ab22-64157c8175cb";
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/92284909-c5dd-4e0f-ab22-64157c8175cb";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=root" ];
|
||||
};
|
||||
|
||||
# boot.initrd.luks.devices."nixos-enc".device = "/dev/disk/by-uuid/7435d48f-f942-485b-9817-328ad3fc0b93";
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/92284909-c5dd-4e0f-ab22-64157c8175cb";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=home" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/C281-E509";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
fileSystems."/swap" =
|
||||
{ device = "/dev/disk/by-uuid/92284909-c5dd-4e0f-ab22-64157c8175cb";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=swap" ];
|
||||
};
|
||||
|
||||
swapDevices = [{
|
||||
device = "/swap/swapfile";
|
||||
size = (1024 * 16);
|
||||
}];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp52s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
nodePackages.typescript-language-server
|
||||
lua-language-server
|
||||
sumneko-lua-language-server
|
||||
nodePackages.intelephense
|
||||
nodePackages.vscode-css-languageserver-bin
|
||||
nodePackages.yaml-language-server
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.apache-directory-studio
|
||||
];
|
||||
}
|
||||
@@ -11,7 +11,6 @@ let
|
||||
in {
|
||||
environment.systemPackages = [
|
||||
pkgs.signal-desktop
|
||||
pkgs.signal-cli
|
||||
signalWorkDesktopItem
|
||||
];
|
||||
}
|
||||
353
hosts/nb-01.cloonar.com/modules/sway/sway.conf
Normal file
353
hosts/nb-01.cloonar.com/modules/sway/sway.conf
Normal file
@@ -0,0 +1,353 @@
|
||||
# Oxide theme
|
||||
#
|
||||
# Author: Diki Ananta <diki1aap@gmail.com> Repository: https://github.com/dikiaap/dotfiles
|
||||
# License: MIT
|
||||
# i3 config file (v4)
|
||||
|
||||
# font for window titles and bar
|
||||
font pango:Source Sans Pro 10
|
||||
|
||||
# use win key
|
||||
set $mod Mod4
|
||||
|
||||
# use these keys for focus, movement, and resize directions
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
|
||||
# define names for workspaces
|
||||
set $ws1 "1: "
|
||||
set $ws2 "2: "
|
||||
set $ws3 "3: "
|
||||
set $ws4 "4: "
|
||||
set $ws5 "5: "
|
||||
set $ws6 "6: "
|
||||
set $ws7 "7: "
|
||||
set $ws8 "8: "
|
||||
set $ws9 "9: "
|
||||
set $ws10 "10: "
|
||||
|
||||
# assign workspaces to primary monitor
|
||||
workspace $ws1 output primary
|
||||
workspace $ws2 output primary
|
||||
workspace $ws3 output primary
|
||||
workspace $ws4 output primary
|
||||
workspace $ws5 output primary
|
||||
workspace $ws6 output primary
|
||||
workspace $ws7 output primary
|
||||
workspace $ws8 output primary
|
||||
workspace $ws9 output primary
|
||||
|
||||
# use $mod+Mouse to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# control focused window when follows the mouse movements
|
||||
focus_follows_mouse no
|
||||
|
||||
# window border settings
|
||||
default_border none
|
||||
default_floating_border none
|
||||
|
||||
# hiding borders adjacent to the screen edges
|
||||
hide_edge_borders none
|
||||
|
||||
# set popups during fullscreen mode
|
||||
popup_during_fullscreen smart
|
||||
|
||||
# start a terminal
|
||||
#bindsym $mod+Return workspace $ws1; exec --no-startup-id alacritty
|
||||
# bindsym $mod+Return workspace $ws1; exec alacritty -t alacritty-sway
|
||||
bindsym $mod+Return workspace $ws1; exec foot -T terminal-sway
|
||||
|
||||
# start a program launcher
|
||||
# bindsym $mod+d exec --no-startup-id wofi -s /etc/wofi/style.css --show drun --lines 5 --columns 1 -t alacritty
|
||||
# bindsym $mod+d exec alacritty --class=launcher -e env TERMINAL_COMMAND="alacritty -e" sway-launcher-desktop
|
||||
bindsym $mod+d exec foot -a launcher -e env TERMINAL_COMMAND="foot -e" sway-launcher-desktop
|
||||
#bindsym $mod+d exec --no-startup-id bemenu
|
||||
#bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu="dmenu -i -fn 'Source Sans Pro-10' -nb '#212121' -sb '#2b83a6' -sf '#ffffff'
|
||||
#bindsym $mod+d exec --no-startup-id bemenu --dmenu="dmenu -i -fn 'Source Sans Pro-10' -nb '#212121' -sb '#2b83a6' -sf '#ffffff'
|
||||
|
||||
# start an explorer
|
||||
bindsym $mod+e exec --no-startup-id pcmanfm
|
||||
|
||||
# switching window with win+tab
|
||||
bindsym $mod+Tab exec --no-startup-id wofi -show window
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# change keyboard layout
|
||||
bindsym $mod+i swaymsg input "*" us
|
||||
bindsym $mod+Shift+i swaymsg input "*" de
|
||||
|
||||
# change focus
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+c split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+p layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
# bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
# bindsym $mod+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# focus the child container
|
||||
bindsym $mod+Shift+a focus child
|
||||
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# show the next scratchpad window or hide the focused scratchpad window
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
# move focused floating window to the current position of the cursor
|
||||
bindsym $mod+Shift+m move position mouse
|
||||
|
||||
# set a window to stick to the glass
|
||||
bindsym $mod+Shift+s sticky toggle
|
||||
|
||||
# sticky preview for media
|
||||
bindsym $mod+Shift+p fullscreen disable; floating enable; resize set 350 px 197 px; sticky enable; move window to position 1006 px 537 px
|
||||
|
||||
# shortcut to change window border
|
||||
bindsym $mod+t border normal 0
|
||||
bindsym $mod+y border pixel 1
|
||||
bindsym $mod+u border none
|
||||
|
||||
# switch to workspace
|
||||
|
||||
bindcode $mod+10 workspace $ws1
|
||||
bindcode $mod+11 workspace $ws2
|
||||
bindcode $mod+12 workspace $ws3
|
||||
bindcode $mod+13 workspace $ws4
|
||||
bindcode $mod+14 workspace $ws5
|
||||
bindcode $mod+15 workspace $ws6
|
||||
bindcode $mod+16 workspace $ws7
|
||||
bindcode $mod+17 workspace $ws8
|
||||
bindcode $mod+18 workspace $ws9
|
||||
bindcode $mod+19 workspace $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindcode $mod+Shift+10 move container to workspace $ws1
|
||||
bindcode $mod+Shift+11 move container to workspace $ws2
|
||||
bindcode $mod+Shift+12 move container to workspace $ws3
|
||||
bindcode $mod+Shift+13 move container to workspace $ws4
|
||||
bindcode $mod+Shift+14 move container to workspace $ws5
|
||||
bindcode $mod+Shift+15 move container to workspace $ws6
|
||||
bindcode $mod+Shift+16 move container to workspace $ws7
|
||||
bindcode $mod+Shift+17 move container to workspace $ws8
|
||||
bindcode $mod+Shift+18 move container to workspace $ws9
|
||||
bindcode $mod+Shift+19 move container to workspace $ws10
|
||||
|
||||
# shortcut applications
|
||||
bindsym $mod+F1 exec gkamus
|
||||
bindsym $mod+F2 workspace $ws2; exec subl
|
||||
bindsym $mod+F3 workspace $ws3; exec chromium-browser
|
||||
bindsym $mod+F4 workspace $ws4; exec pcmanfm
|
||||
bindsym $mod+F5 workspace $ws5; exec evince
|
||||
bindsym $mod+F6 workspace $ws6; exec audacious
|
||||
bindsym $mod+F7 workspace $ws7; exec gcolor2
|
||||
bindsym $mod+F8 workspace $ws8; exec telegram
|
||||
bindsym $mod+F9 workspace $ws9; exec go-for-it
|
||||
bindsym Print exec --no-startup-id gnome-screenshot
|
||||
bindcode $mod+9 exec swaylock --image ~/.wallpaper.jpg
|
||||
bindsym Ctrl+Shift+Space exec 1password --quick-access
|
||||
bindsym $mod+Space exec rofi-rbw --menu-keybindings ctrl+p:copy:password
|
||||
|
||||
# volume
|
||||
bindsym XF86AudioLowerVolume exec amixer -q sset Master 5%- unmute
|
||||
bindsym XF86AudioRaiseVolume exec amixer -q sset Master 5%+ unmute
|
||||
bindsym XF86AudioMute exec amixer -q sset Master toggle
|
||||
|
||||
# touchpad
|
||||
# bindsym XF86NotificationCenter exec swaymsg input type:touchpad events toggle enabled disabled
|
||||
|
||||
# set brightness logarithmically by factor 1.4
|
||||
# .72 is just slightly bigger than 1 / 1.4
|
||||
bindsym --locked XF86MonBrightnessUp exec light -S "$(light -G | awk '{ print int(($1 + .72) * 1.4) }')"
|
||||
bindsym --locked XF86MonBrightnessDown exec light -S "$(light -G | awk '{ print int($1 / 1.4) }')"
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# restart i3 inplace
|
||||
bindsym $mod+Shift+r restart
|
||||
|
||||
# manage i3 session
|
||||
bindsym $mod+Shift+e exec swaynag --background f1fa8c --border ffb86c --border-bottom-size 0 --button-background ffb86c --button-text 282a36 -t warning -f "pango:Hack 9" -m "Do you really want to exit?" -B " Exit " "swaymsg exit" -B " Lock " "pkill swaynag && swaylock --image ~/.wallpaper.jpg" -B " Reboot " "pkill swaynag && reboot" -B " Shutdown " "pkill swaynag && shutdown -h now" -B " Suspend " "pkill swaynag && systemctl suspend"
|
||||
|
||||
# resize window
|
||||
bindsym $mod+r mode " "
|
||||
mode " " {
|
||||
# pressing left and up will shrink the window's width and height
|
||||
# pressing right and down will grow the window's width and height
|
||||
bindsym $left resize shrink width 10 px or 10 ppt
|
||||
bindsym $down resize grow height 10 px or 10 ppt
|
||||
bindsym $up resize shrink height 10 px or 10 ppt
|
||||
bindsym $right resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or win+r
|
||||
bindsym Return mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
|
||||
# set specific windows to floating mode
|
||||
for_window [window_role="app"] floating enable
|
||||
#for_window [window_role="pop-up"] floating enable
|
||||
for_window [window_role="task_dialog"] floating enable
|
||||
for_window [title="Preferences$"] floating enable
|
||||
for_window [class="Gkamus"] floating enable
|
||||
for_window [class="Go-for-it"] floating enable
|
||||
for_window [class="Lightdm-gtk-greeter-settings"] floating enable
|
||||
for_window [class="Lxappearance"] floating enable
|
||||
for_window [class="Menu"] floating enable
|
||||
for_window [class="Nm-connection-editor"] floating enable
|
||||
for_window [class="Software-properties-gtk"] floating enable
|
||||
for_window [app_id="launcher"] floating enable
|
||||
|
||||
# set specific windows to tabbed mode
|
||||
#for_window [class="Rambox"]tabbed
|
||||
#for_window [class="Signal"]tabbed
|
||||
|
||||
# assign program to workspace
|
||||
assign [title="terminal-sway"] → $ws1
|
||||
# assign [app_id="Alacritty" title="^(?!alacritty-sway)$"] → $ws2
|
||||
assign [app_id="foot" title="^(?!terminal-sway)$"] → $ws2
|
||||
assign [app_id="chromium"] → $ws3
|
||||
assign [app_id="firefox"] → $ws3
|
||||
assign [app_id="pcmanfm"] → $ws4
|
||||
assign [app_id="libreoffice-calc"] → $ws5
|
||||
assign [app_id="libreoffice-writer"] → $ws5
|
||||
assign [class="vlc"] → $ws6
|
||||
assign [class="Gimp"] → $ws7
|
||||
assign [class="Signal"] → $ws8
|
||||
assign [app_id="social"] → $ws8
|
||||
assign [app_id="thunderbird"] → $ws8
|
||||
assign [class="Lightdm-gtk-greeter-settings"] → $ws10
|
||||
assign [class="Software-properties-gtk"] → $ws10
|
||||
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused #2b83a6 #2b83a6 #ffffff #dddddd #2b83a6
|
||||
client.focused_inactive #212121 #212121 #86888c #292d2e #5a5a5a
|
||||
client.unfocused #212121 #212121 #86888c #292d2e #5a5a5a
|
||||
client.urgent #d64e4e #d64e4e #ffffff #d64e4e #d64e4e
|
||||
client.placeholder #212121 #0c0c0c #ffffff #212121 #262626
|
||||
client.background #212121
|
||||
|
||||
bar {
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
# gaps
|
||||
smart_gaps on
|
||||
gaps inner 12
|
||||
gaps outer 0
|
||||
|
||||
# startup applications
|
||||
exec /run/wrappers/bin/gnome-keyring-daemon --start --daemonize
|
||||
exec dbus-sway-environment
|
||||
exec configure-gtk
|
||||
exec nm-applet --indicator
|
||||
exec alacritty -t alacritty-sway
|
||||
exec signal-desktop
|
||||
exec firefox --name=social -P social
|
||||
exec thunderbird
|
||||
exec firefox
|
||||
exec nextcloud
|
||||
exec owncloud
|
||||
exec swayidle \
|
||||
before-sleep 'loginctl lock-session $XDG_SESSION_ID' \
|
||||
lock 'swaylock --image ~/.wallpaper.jpg' \
|
||||
timeout 180 'swaylock --screenshots --effect-blur 7x5' \
|
||||
timeout 1800 'systemctl suspend'
|
||||
exec dunst
|
||||
#exec --no-startup-id swaybg -c "#000000" -m fill -i ~/.config/wallpaper/wot.jpg
|
||||
# exec --no-startup-id gnome-keyring-daemon --start --components=pkcs11,secrets,ssh
|
||||
exec 'sleep 2; swaymsg workspace $ws8; swaymsg layout tabbed'
|
||||
|
||||
# wallpaper
|
||||
output eDP-1 bg ~/.wallpaper.jpg fill
|
||||
output DP-4 bg ~/.wallpaper.jpg fill
|
||||
output DP-5 bg ~/.wallpaper.jpg fill
|
||||
|
||||
input * xkb_layout "de"
|
||||
input * xkb_variant "colemak,,typewriter"
|
||||
input * xkb_options "grp:win_space_toggle"
|
||||
input "MANUFACTURER1 Keyboard" xkb_model "pc101"
|
||||
|
||||
# notebook
|
||||
set $laptop eDP-1
|
||||
# bindswitch --reload --locked lid:on output $laptop disable
|
||||
# bindswitch --reload lid:off output $laptop enable
|
||||
|
||||
# A lock command used in several places
|
||||
set $lock_script swaylock
|
||||
|
||||
# A sleep command used in several places.
|
||||
# We leave a bit of time for locking to happen before putting the system to sleep
|
||||
set $sleep $lock_script && sleep 3 && systemctl suspend
|
||||
|
||||
# Triggers a short notification
|
||||
set $notify dunstify --timeout 1500
|
||||
|
||||
# Set your laptop screen name
|
||||
set $laptop_screen 'eDP-1'
|
||||
|
||||
# Clamshell mode or lock & sleep
|
||||
# This is a if/else statement: [ outputs_count == 1 ] && true || false
|
||||
bindswitch --locked lid:on exec '[ $(swaymsg -t get_outputs | grep name | wc -l) == 1 ] && ($sleep) || swaymsg output $laptop_screen disable'
|
||||
#bindswitch --locked lid:on exec 'swaymsg output $laptop_screen disable'
|
||||
bindswitch --locked lid:off output $laptop_screen enable
|
||||
|
||||
# disable xwayland
|
||||
#xwayland disable
|
||||
|
||||
# Touchpad
|
||||
input type:touchpad {
|
||||
tap enabled
|
||||
natural_scroll enabled
|
||||
}
|
||||
|
||||
@@ -15,14 +15,9 @@ let
|
||||
|
||||
in {
|
||||
imports = [
|
||||
./config.nix
|
||||
./wofi-styles.nix
|
||||
./xdg-waybar-config.nix
|
||||
./foot.nix
|
||||
|
||||
./social.nix
|
||||
./signal-work.nix
|
||||
# ./thunderbird.nix
|
||||
./thunderbird.nix
|
||||
./parsec.nix
|
||||
];
|
||||
|
||||
@@ -51,7 +46,7 @@ in {
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
alsaUtils
|
||||
enlightenment.terminology
|
||||
alacritty
|
||||
bitwarden
|
||||
chromium
|
||||
cryptomator
|
||||
@@ -83,7 +78,6 @@ in {
|
||||
swayidle
|
||||
swaylock
|
||||
# thunderbird
|
||||
thunderbirdPackages.thunderbird-115
|
||||
tor-browser-bundle-bin
|
||||
unzip
|
||||
vlc
|
||||
@@ -102,10 +96,10 @@ in {
|
||||
# ];
|
||||
# nixpkgs.config.allowBroken = true;
|
||||
|
||||
programs._1password-gui = {
|
||||
enable = true;
|
||||
polkitPolicyOwners = [ "dominik" ];
|
||||
};
|
||||
# programs._1password-gui = {
|
||||
# enable = true;
|
||||
# polkitPolicyOwners = [ "dominik" ];
|
||||
# };
|
||||
|
||||
programs.light.enable = true;
|
||||
|
||||
@@ -129,4 +123,11 @@ in {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
};
|
||||
|
||||
environment.etc = {
|
||||
"sway/config".source = "/etc/nixos/modules/sway/sway.conf";
|
||||
"wofi/style.css".source = "/etc/nixos/modules/sway/wofi.css";
|
||||
"xdg/waybar/config".source = "/etc/nixos/modules/sway/waybar.conf";
|
||||
"xdg/waybar/style.css".source = "/etc/nixos/modules/sway/waybar.css";
|
||||
};
|
||||
}
|
||||
40
hosts/nb-01.cloonar.com/modules/sway/thunderbird.nix
Normal file
40
hosts/nb-01.cloonar.com/modules/sway/thunderbird.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
thunderbirdWorkDesktopItem = pkgs.makeDesktopItem {
|
||||
name = "thunderbird-work";
|
||||
desktopName = "Thunderbird Work";
|
||||
icon = "thunderbird";
|
||||
exec = "thunderbird -P Work";
|
||||
};
|
||||
thunderbirdCloonarDesktopItem = pkgs.makeDesktopItem {
|
||||
name = "thunderbird-cloonar";
|
||||
desktopName = "Thunderbird Cloonar";
|
||||
icon = "thunderbird";
|
||||
exec = "thunderbird -P Cloonar";
|
||||
};
|
||||
in
|
||||
{
|
||||
|
||||
# nixpkgs.overlays = [
|
||||
# (self: super:
|
||||
# {
|
||||
# thunderbird-bin-unwrapped = super.thunderbird-bin-unwrapped.overrideAttrs ( old: rec {
|
||||
# version = "112.0b7";
|
||||
# name = "thunderbird-bin";
|
||||
# src = super.fetchurl {
|
||||
# url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/linux-x86_64/en-US/thunderbird-${version}.tar.bz2";
|
||||
# sha256 = "30d23df34834096a79261439d5ea6d78d44921f0218893f100596ee6296cd806";
|
||||
# };
|
||||
# });
|
||||
# }
|
||||
# )
|
||||
# ];
|
||||
environment.systemPackages = [
|
||||
# (import ../../pkgs/thunderbird.nix)
|
||||
pkgs.thunderbird
|
||||
# pkgs.thunderbird-bin-unwrapped
|
||||
thunderbirdWorkDesktopItem
|
||||
thunderbirdCloonarDesktopItem
|
||||
];
|
||||
}
|
||||
132
hosts/nb-01.cloonar.com/modules/sway/waybar.conf
Normal file
132
hosts/nb-01.cloonar.com/modules/sway/waybar.conf
Normal file
@@ -0,0 +1,132 @@
|
||||
// -*- mode: json -*-
|
||||
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
|
||||
"modules-left": [
|
||||
"sway/workspaces",
|
||||
"custom/right-arrow-dark"
|
||||
],
|
||||
"modules-center": [
|
||||
"custom/left-arrow-dark",
|
||||
"clock#1",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"clock#2",
|
||||
"custom/right-arrow-dark",
|
||||
"custom/right-arrow-light",
|
||||
"clock#3",
|
||||
"custom/right-arrow-dark"
|
||||
],
|
||||
"modules-right": [
|
||||
"custom/left-arrow-dark",
|
||||
"network",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"pulseaudio",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"memory",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"cpu",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"battery",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"disk",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"tray"
|
||||
],
|
||||
|
||||
"custom/left-arrow-dark": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left-arrow-light": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right-arrow-dark": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right-arrow-light": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"sway/workspaces": {
|
||||
"disable-scroll": true,
|
||||
"format": "{name}"
|
||||
},
|
||||
|
||||
"clock#1": {
|
||||
"format": "{:%a}",
|
||||
"tooltip": false
|
||||
},
|
||||
"clock#2": {
|
||||
"format": "{:%H:%M}",
|
||||
"tooltip": false
|
||||
},
|
||||
"clock#3": {
|
||||
"format": "{:%d.%m}",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon}{volume}%",
|
||||
"format-muted": "ﱝ",
|
||||
"format-icons": {
|
||||
"phone": ["奄", "奔", "墳"],
|
||||
"default": ["奄", "奔", "墳"]
|
||||
},
|
||||
"scroll-step": 5,
|
||||
"on-click": "pavucontrol",
|
||||
"tooltip": false
|
||||
},
|
||||
"network": {
|
||||
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format-disconnected": "Disconnected ",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||
},
|
||||
"memory": {
|
||||
"interval": 5,
|
||||
"format": "{}%"
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 5,
|
||||
"format": "{usage:2}%"
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"disk": {
|
||||
"interval": 5,
|
||||
"format": "{percentage_used:2}%",
|
||||
"path": "/home/"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 20
|
||||
}
|
||||
}
|
||||
|
||||
79
hosts/nb-01.cloonar.com/modules/sway/waybar.css
Normal file
79
hosts/nb-01.cloonar.com/modules/sway/waybar.css
Normal file
@@ -0,0 +1,79 @@
|
||||
* {
|
||||
font-size: 20px;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: #282a36;
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
#custom-right-arrow-dark,
|
||||
#custom-left-arrow-dark {
|
||||
color: #252525;
|
||||
}
|
||||
#custom-right-arrow-light,
|
||||
#custom-left-arrow-light {
|
||||
color: #282a36;
|
||||
background: #252525;
|
||||
}
|
||||
|
||||
#workspaces,
|
||||
#clock.1,
|
||||
#clock.2,
|
||||
#clock.3,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#memory,
|
||||
#cpu,
|
||||
#battery,
|
||||
#disk,
|
||||
#tray {
|
||||
background: #252525;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 2px;
|
||||
color: #f8f8f2;
|
||||
}
|
||||
#workspaces button.focused {
|
||||
color: #50fa7b;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
box-shadow: inherit;
|
||||
text-shadow: inherit;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
background: #252525;
|
||||
border: #252525;
|
||||
padding: 0 3px;
|
||||
}
|
||||
|
||||
#network {
|
||||
color: #8be9fd;
|
||||
}
|
||||
#pulseaudio {
|
||||
color: #6272a4;
|
||||
}
|
||||
#memory {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
#cpu {
|
||||
color: #bd93f9;
|
||||
}
|
||||
#battery {
|
||||
color: #f1fa8c;
|
||||
}
|
||||
#disk {
|
||||
color: #ffb86c;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#memory,
|
||||
#cpu,
|
||||
#battery,
|
||||
#disk {
|
||||
padding: 0 10px;
|
||||
}
|
||||
40
hosts/nb-01.cloonar.com/modules/sway/wofi.css
Normal file
40
hosts/nb-01.cloonar.com/modules/sway/wofi.css
Normal file
@@ -0,0 +1,40 @@
|
||||
window {
|
||||
margin: 0px;
|
||||
border: 1px solid #bd93f9;
|
||||
background-color: #282a36;
|
||||
}
|
||||
|
||||
#input {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: #f8f8f2;
|
||||
background-color: #44475a;
|
||||
}
|
||||
|
||||
#inner-box {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
background-color: #282a36;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
background-color: #282a36;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#text {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: #44475a;
|
||||
}
|
||||
|
||||
1
hosts/nb-01.cloonar.com/utils
Symbolic link
1
hosts/nb-01.cloonar.com/utils
Symbolic link
@@ -0,0 +1 @@
|
||||
../../utils
|
||||
@@ -1,342 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
environment.etc = {
|
||||
"sway/config".text = ''
|
||||
# Oxide theme
|
||||
#
|
||||
# Author: Diki Ananta <diki1aap@gmail.com> Repository: https://github.com/dikiaap/dotfiles
|
||||
# License: MIT
|
||||
# i3 config file (v4)
|
||||
|
||||
# font for window titles and bar
|
||||
font pango:Source Sans Pro 10
|
||||
|
||||
# use win key
|
||||
set $mod Mod4
|
||||
|
||||
# use these keys for focus, movement, and resize directions
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
|
||||
# define names for workspaces
|
||||
set $ws1 "1: "
|
||||
set $ws2 "2: "
|
||||
set $ws3 "3: "
|
||||
set $ws4 "4: "
|
||||
set $ws5 "5: "
|
||||
set $ws6 "6: "
|
||||
set $ws7 "7: "
|
||||
set $ws8 "8: "
|
||||
set $ws9 "9: "
|
||||
set $ws10 "10: "
|
||||
|
||||
# assign workspaces to primary monitor
|
||||
workspace $ws1 output primary
|
||||
workspace $ws2 output primary
|
||||
workspace $ws3 output primary
|
||||
workspace $ws4 output primary
|
||||
workspace $ws5 output primary
|
||||
workspace $ws6 output primary
|
||||
workspace $ws7 output primary
|
||||
workspace $ws8 output primary
|
||||
workspace $ws9 output primary
|
||||
|
||||
# use $mod+Mouse to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# control focused window when follows the mouse movements
|
||||
focus_follows_mouse no
|
||||
|
||||
# window border settings
|
||||
default_border none
|
||||
default_floating_border none
|
||||
|
||||
# hiding borders adjacent to the screen edges
|
||||
hide_edge_borders none
|
||||
|
||||
# set popups during fullscreen mode
|
||||
popup_during_fullscreen smart
|
||||
|
||||
# start a terminal
|
||||
#bindsym $mod+Return workspace $ws1; exec --no-startup-id alacritty
|
||||
bindsym $mod+Return workspace $ws1; exec foot -c /etc/xdg/foot/foot.ini -T terminal-sway
|
||||
|
||||
# start a program launcher
|
||||
# bindsym $mod+d exec --no-startup-id wofi -s /etc/wofi/style.css --show drun --lines 5 --columns 1 -t alacritty
|
||||
bindsym $mod+d exec foot -c /etc/xdg/foot/foot.ini -a launcher -e env TERMINAL_COMMAND="foot -e" sway-launcher-desktop
|
||||
#bindsym $mod+d exec --no-startup-id bemenu
|
||||
#bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu="dmenu -i -fn 'Source Sans Pro-10' -nb '#212121' -sb '#2b83a6' -sf '#ffffff'
|
||||
#bindsym $mod+d exec --no-startup-id bemenu --dmenu="dmenu -i -fn 'Source Sans Pro-10' -nb '#212121' -sb '#2b83a6' -sf '#ffffff'
|
||||
|
||||
# start an explorer
|
||||
bindsym $mod+e exec --no-startup-id pcmanfm
|
||||
|
||||
# switching window with win+tab
|
||||
bindsym $mod+Tab exec --no-startup-id wofi -show window
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# change keyboard layout
|
||||
bindsym $mod+i swaymsg input "*" us
|
||||
bindsym $mod+Shift+i swaymsg input "*" de
|
||||
|
||||
# change focus
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+c split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+p layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
# bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
# bindsym $mod+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# focus the child container
|
||||
bindsym $mod+Shift+a focus child
|
||||
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# show the next scratchpad window or hide the focused scratchpad window
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
# move focused floating window to the current position of the cursor
|
||||
bindsym $mod+Shift+m move position mouse
|
||||
|
||||
# set a window to stick to the glass
|
||||
bindsym $mod+Shift+s sticky toggle
|
||||
|
||||
# sticky preview for media
|
||||
bindsym $mod+Shift+p fullscreen disable; floating enable; resize set 350 px 197 px; sticky enable; move window to position 1006 px 537 px
|
||||
|
||||
# shortcut to change window border
|
||||
bindsym $mod+t border normal 0
|
||||
bindsym $mod+y border pixel 1
|
||||
bindsym $mod+u border none
|
||||
|
||||
# switch to workspace
|
||||
|
||||
bindcode $mod+10 workspace $ws1
|
||||
bindcode $mod+11 workspace $ws2
|
||||
bindcode $mod+12 workspace $ws3
|
||||
bindcode $mod+13 workspace $ws4
|
||||
bindcode $mod+14 workspace $ws5
|
||||
bindcode $mod+15 workspace $ws6
|
||||
bindcode $mod+16 workspace $ws7
|
||||
bindcode $mod+17 workspace $ws8
|
||||
bindcode $mod+18 workspace $ws9
|
||||
bindcode $mod+19 workspace $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindcode $mod+Shift+10 move container to workspace $ws1
|
||||
bindcode $mod+Shift+11 move container to workspace $ws2
|
||||
bindcode $mod+Shift+12 move container to workspace $ws3
|
||||
bindcode $mod+Shift+13 move container to workspace $ws4
|
||||
bindcode $mod+Shift+14 move container to workspace $ws5
|
||||
bindcode $mod+Shift+15 move container to workspace $ws6
|
||||
bindcode $mod+Shift+16 move container to workspace $ws7
|
||||
bindcode $mod+Shift+17 move container to workspace $ws8
|
||||
bindcode $mod+Shift+18 move container to workspace $ws9
|
||||
bindcode $mod+Shift+19 move container to workspace $ws10
|
||||
|
||||
# shortcut applications
|
||||
bindsym Print exec --no-startup-id gnome-screenshot
|
||||
bindcode $mod+9 exec swaylock --image ~/.wallpaper.jpg
|
||||
bindsym Ctrl+Shift+Space exec 1password --quick-access
|
||||
bindsym $mod+Space exec rofi-rbw --menu-keybindings ctrl+p:copy:password
|
||||
|
||||
# volume
|
||||
bindsym XF86AudioLowerVolume exec amixer -q sset Master 5%- unmute
|
||||
bindsym XF86AudioRaiseVolume exec amixer -q sset Master 5%+ unmute
|
||||
bindsym XF86AudioMute exec amixer -q sset Master toggle
|
||||
|
||||
# touchpad
|
||||
# bindsym XF86NotificationCenter exec swaymsg input type:touchpad events toggle enabled disabled
|
||||
|
||||
# set brightness logarithmically by factor 1.4
|
||||
# .72 is just slightly bigger than 1 / 1.4
|
||||
bindsym --locked XF86MonBrightnessUp exec light -S "$(light -G | awk '{ print int(($1 + .72) * 1.4) }')"
|
||||
bindsym --locked XF86MonBrightnessDown exec light -S "$(light -G | awk '{ print int($1 / 1.4) }')"
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# restart i3 inplace
|
||||
bindsym $mod+Shift+r restart
|
||||
|
||||
# manage i3 session
|
||||
bindsym $mod+Shift+e exec swaynag --background f1fa8c --border ffb86c --border-bottom-size 0 --button-background ffb86c --button-text 282a36 -t warning -f "pango:Hack 9" -m "Do you really want to exit?" -B " Exit " "swaymsg exit" -B " Lock " "pkill swaynag && swaylock --image ~/.wallpaper.jpg" -B " Reboot " "pkill swaynag && reboot" -B " Shutdown " "pkill swaynag && shutdown -h now" -B " Suspend " "pkill swaynag && systemctl suspend"
|
||||
|
||||
# resize window
|
||||
bindsym $mod+r mode " "
|
||||
mode " " {
|
||||
# pressing left and up will shrink the window's width and height
|
||||
# pressing right and down will grow the window's width and height
|
||||
bindsym $left resize shrink width 10 px or 10 ppt
|
||||
bindsym $down resize grow height 10 px or 10 ppt
|
||||
bindsym $up resize shrink height 10 px or 10 ppt
|
||||
bindsym $right resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or win+r
|
||||
bindsym Return mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
|
||||
# set specific windows to floating mode
|
||||
for_window [window_role="app"] floating enable
|
||||
#for_window [window_role="pop-up"] floating enable
|
||||
for_window [window_role="task_dialog"] floating enable
|
||||
for_window [title="Preferences$"] floating enable
|
||||
for_window [class="Lightdm-gtk-greeter-settings"] floating enable
|
||||
for_window [class="Lxappearance"] floating enable
|
||||
for_window [class="Menu"] floating enable
|
||||
for_window [class="Nm-connection-editor"] floating enable
|
||||
for_window [class="Software-properties-gtk"] floating enable
|
||||
for_window [app_id="launcher"] floating enable
|
||||
|
||||
# set specific windows to tabbed mode
|
||||
#for_window [class="Signal"]tabbed
|
||||
|
||||
# assign program to workspace
|
||||
assign [title="terminal-sway"] → $ws1
|
||||
assign [app_id="foot" title="^(?!terminal-sway)$"] → $ws2
|
||||
assign [app_id="chromium"] → $ws3
|
||||
assign [app_id="firefox"] → $ws3
|
||||
assign [app_id="pcmanfm"] → $ws4
|
||||
assign [app_id="libreoffice-calc"] → $ws5
|
||||
assign [app_id="libreoffice-writer"] → $ws5
|
||||
assign [class="vlc"] → $ws6
|
||||
assign [class="Gimp"] → $ws7
|
||||
assign [class="Signal"] → $ws8
|
||||
assign [app_id="social"] → $ws8
|
||||
assign [app_id="thunderbird"] → $ws8
|
||||
assign [class="Lightdm-gtk-greeter-settings"] → $ws10
|
||||
assign [class="Software-properties-gtk"] → $ws10
|
||||
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused #2b83a6 #2b83a6 #ffffff #dddddd #2b83a6
|
||||
client.focused_inactive #212121 #212121 #86888c #292d2e #5a5a5a
|
||||
client.unfocused #212121 #212121 #86888c #292d2e #5a5a5a
|
||||
client.urgent #d64e4e #d64e4e #ffffff #d64e4e #d64e4e
|
||||
client.placeholder #212121 #0c0c0c #ffffff #212121 #262626
|
||||
client.background #212121
|
||||
|
||||
bar {
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
# gaps
|
||||
smart_gaps on
|
||||
gaps inner 12
|
||||
gaps outer 0
|
||||
|
||||
# startup applications
|
||||
exec /run/wrappers/bin/gnome-keyring-daemon --start --daemonize
|
||||
exec dbus-sway-environment
|
||||
exec configure-gtk
|
||||
exec nm-applet --indicator
|
||||
exec foot -c /etc/xdg/foot/foot.ini -T terminal-sway
|
||||
exec signal-desktop
|
||||
exec firefox --name=social -P social
|
||||
exec thunderbird
|
||||
exec firefox
|
||||
exec nextcloud
|
||||
exec swayidle \
|
||||
before-sleep 'loginctl lock-session $XDG_SESSION_ID' \
|
||||
lock 'swaylock --image ~/.wallpaper.jpg' \
|
||||
timeout 180 'swaylock --screenshots --effect-blur 7x5' \
|
||||
timeout 1800 'systemctl suspend'
|
||||
exec dunst
|
||||
#exec --no-startup-id swaybg -c "#000000" -m fill -i ~/.config/wallpaper/wot.jpg
|
||||
# exec --no-startup-id gnome-keyring-daemon --start --components=pkcs11,secrets,ssh
|
||||
exec 'sleep 2; swaymsg workspace $ws8; swaymsg layout tabbed'
|
||||
|
||||
# wallpaper
|
||||
output eDP-1 bg ~/.wallpaper.jpg fill
|
||||
output DP-4 bg ~/.wallpaper.jpg fill
|
||||
output DP-5 bg ~/.wallpaper.jpg fill
|
||||
|
||||
input * xkb_layout "de"
|
||||
input * xkb_variant "colemak,,typewriter"
|
||||
input * xkb_options "grp:win_space_toggle"
|
||||
input "MANUFACTURER1 Keyboard" xkb_model "pc101"
|
||||
|
||||
# notebook
|
||||
set $laptop eDP-1
|
||||
# bindswitch lid:on output $laptop disable
|
||||
# bindswitch lid:off output $laptop enable
|
||||
|
||||
# A lock command used in several places
|
||||
set $lock_script swaylock --image ~/.wallpaper.jpg
|
||||
|
||||
# A sleep command used in several places.
|
||||
# We leave a bit of time for locking to happen before putting the system to sleep
|
||||
set $sleep $lock_script && sleep 3 && systemctl suspend
|
||||
|
||||
# Triggers a short notification
|
||||
set $notify dunstify --timeout 1500
|
||||
|
||||
# Set your laptop screen name
|
||||
set $laptop_screen 'eDP-1'
|
||||
|
||||
# Clamshell mode or lock & sleep
|
||||
# This is a if/else statement: [ outputs_count == 1 ] && true || false
|
||||
bindswitch --reload --locked lid:on exec '[ $(swaymsg -t get_outputs | grep name | wc -l) == 1 ] && ($sleep) || ($notify "Clamshell mode" "Laptop screen off" && swaymsg output $laptop_screen disable)'
|
||||
bindswitch --reload --locked lid:off output $laptop_screen enable
|
||||
|
||||
# disable xwayland
|
||||
#xwayland disable
|
||||
|
||||
# Touchpad
|
||||
input type:touchpad {
|
||||
tap enabled
|
||||
natural_scroll enabled
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
foot
|
||||
];
|
||||
|
||||
environment.etc = {
|
||||
"xdg/foot/foot.ini".text = ''
|
||||
[environment]
|
||||
|
||||
[bell]
|
||||
|
||||
[scrollback]
|
||||
|
||||
[url]
|
||||
|
||||
[cursor]
|
||||
|
||||
[mouse]
|
||||
|
||||
[colors]
|
||||
# alpha=1.0
|
||||
background=282a36
|
||||
foreground=f8f8f2
|
||||
|
||||
## Normal/regular colors (color palette 0-7)
|
||||
regular0=21222c # black
|
||||
regular1=ff5555 # red
|
||||
regular2=50fa7b # green
|
||||
regular3=f1fa8c # yellow
|
||||
regular4=bd93f9 # blue
|
||||
regular5=ff79c6 # magenta
|
||||
regular6=8be9fd # cyan
|
||||
regular7=f8f8f2 # white
|
||||
|
||||
## Bright colors (color palette 8-15)
|
||||
bright0=6272a4 # bright black
|
||||
bright1=ff6e6e # bright red
|
||||
bright2=69ff94 # bright green
|
||||
bright3=ffffa5 # bright yellow
|
||||
bright4=d6acff # bright blue
|
||||
bright5=ff92df # bright magenta
|
||||
bright6=a4ffff # bright cyan
|
||||
bright7=ffffff # bright white
|
||||
|
||||
selection-foreground=ffffff
|
||||
selection-background=44475a
|
||||
urls=8be9fd
|
||||
|
||||
[csd]
|
||||
|
||||
[key-bindings]
|
||||
|
||||
[search-bindings]
|
||||
|
||||
[url-bindings]
|
||||
|
||||
[text-bindings]
|
||||
|
||||
[mouse-bindings]
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
thunderbirdWorkDesktopItem = pkgs.makeDesktopItem {
|
||||
name = "thunderbird-work";
|
||||
desktopName = "Thunderbird Work";
|
||||
icon = "thunderbird";
|
||||
exec = "thunderbird -P Work";
|
||||
};
|
||||
thunderbirdCloonarDesktopItem = pkgs.makeDesktopItem {
|
||||
name = "thunderbird-cloonar";
|
||||
desktopName = "Thunderbird Cloonar";
|
||||
icon = "thunderbird";
|
||||
exec = "thunderbird -P Cloonar";
|
||||
};
|
||||
in
|
||||
{
|
||||
|
||||
nixpkgs.overlays = [
|
||||
(self: super:
|
||||
{
|
||||
thunderbird-bin-unwrapped = super.thunderbird-bin-unwrapped.overrideAttrs ( old: rec {
|
||||
version = "112.0b7";
|
||||
name = "thunderbird-bin";
|
||||
src = super.fetchurl {
|
||||
url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/linux-x86_64/en-US/thunderbird-${version}.tar.bz2";
|
||||
sha256 = "30d23df34834096a79261439d5ea6d78d44921f0218893f100596ee6296cd806";
|
||||
};
|
||||
});
|
||||
}
|
||||
)
|
||||
];
|
||||
environment.systemPackages = [
|
||||
# (import ../../pkgs/thunderbird.nix)
|
||||
pkgs.thunderbird-bin-unwrapped
|
||||
thunderbirdWorkDesktopItem
|
||||
thunderbirdCloonarDesktopItem
|
||||
];
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
environment.etc = {
|
||||
"wofi/style.css".text = ''
|
||||
window {
|
||||
margin: 0px;
|
||||
border: 1px solid #bd93f9;
|
||||
background-color: #282a36;
|
||||
}
|
||||
|
||||
#input {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: #f8f8f2;
|
||||
background-color: #44475a;
|
||||
}
|
||||
|
||||
#inner-box {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
background-color: #282a36;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
background-color: #282a36;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#text {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: #44475a;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,220 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
environment.etc = {
|
||||
"xdg/waybar/config".text = ''
|
||||
// -*- mode: json -*-
|
||||
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
|
||||
"modules-left": [
|
||||
"sway/workspaces",
|
||||
"custom/right-arrow-dark"
|
||||
],
|
||||
"modules-center": [
|
||||
"custom/left-arrow-dark",
|
||||
"clock#1",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"clock#2",
|
||||
"custom/right-arrow-dark",
|
||||
"custom/right-arrow-light",
|
||||
"clock#3",
|
||||
"custom/right-arrow-dark"
|
||||
],
|
||||
"modules-right": [
|
||||
"custom/left-arrow-dark",
|
||||
"network",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"pulseaudio",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"memory",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"cpu",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"battery",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"disk",
|
||||
"custom/left-arrow-light",
|
||||
"custom/left-arrow-dark",
|
||||
"tray"
|
||||
],
|
||||
|
||||
"custom/left-arrow-dark": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/left-arrow-light": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right-arrow-dark": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/right-arrow-light": {
|
||||
"format": "",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"sway/workspaces": {
|
||||
"disable-scroll": true,
|
||||
"format": "{name}"
|
||||
},
|
||||
|
||||
"clock#1": {
|
||||
"format": "{:%a}",
|
||||
"tooltip": false
|
||||
},
|
||||
"clock#2": {
|
||||
"format": "{:%H:%M}",
|
||||
"tooltip": false
|
||||
},
|
||||
"clock#3": {
|
||||
"format": "{:%d.%m}",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon}{volume}%",
|
||||
"format-muted": "ﱝ",
|
||||
"format-icons": {
|
||||
"phone": ["奄", "奔", "墳"],
|
||||
"default": ["奄", "奔", "墳"]
|
||||
},
|
||||
"scroll-step": 5,
|
||||
"on-click": "pavucontrol",
|
||||
"tooltip": false
|
||||
},
|
||||
"network": {
|
||||
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format-disconnected": "Disconnected ",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||
},
|
||||
"memory": {
|
||||
"interval": 5,
|
||||
"format": "{}%"
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 5,
|
||||
"format": "{usage:2}%"
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"disk": {
|
||||
"interval": 5,
|
||||
"format": "{percentage_used:2}%",
|
||||
"path": "/home/"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 20
|
||||
}
|
||||
}
|
||||
'';
|
||||
|
||||
"xdg/waybar/style.css".text = ''
|
||||
* {
|
||||
font-size: 20px;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: #282a36;
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
#custom-right-arrow-dark,
|
||||
#custom-left-arrow-dark {
|
||||
color: #252525;
|
||||
}
|
||||
#custom-right-arrow-light,
|
||||
#custom-left-arrow-light {
|
||||
color: #282a36;
|
||||
background: #252525;
|
||||
}
|
||||
|
||||
#workspaces,
|
||||
#clock.1,
|
||||
#clock.2,
|
||||
#clock.3,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#memory,
|
||||
#cpu,
|
||||
#battery,
|
||||
#disk,
|
||||
#tray {
|
||||
background: #252525;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 2px;
|
||||
color: #f8f8f2;
|
||||
}
|
||||
#workspaces button.focused {
|
||||
color: #50fa7b;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
box-shadow: inherit;
|
||||
text-shadow: inherit;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
background: #252525;
|
||||
border: #252525;
|
||||
padding: 0 3px;
|
||||
}
|
||||
|
||||
#network {
|
||||
color: #8be9fd;
|
||||
}
|
||||
#pulseaudio {
|
||||
color: #6272a4;
|
||||
}
|
||||
#memory {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
#cpu {
|
||||
color: #bd93f9;
|
||||
}
|
||||
#battery {
|
||||
color: #f1fa8c;
|
||||
}
|
||||
#disk {
|
||||
color: #ffb86c;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#memory,
|
||||
#cpu,
|
||||
#battery,
|
||||
#disk {
|
||||
padding: 0 10px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user