diff --git a/hosts/nb-01.cloonar.com/configuration.nix b/hosts/nb-01.cloonar.com/configuration.nix new file mode 100644 index 0000000..57a9fec --- /dev/null +++ b/hosts/nb-01.cloonar.com/configuration.nix @@ -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)} + ''; + }; + + +} + diff --git a/hosts/nb-01.cloonar.com/hardware-configuration.nix b/hosts/nb-01.cloonar.com/hardware-configuration.nix new file mode 100644 index 0000000..fda9b13 --- /dev/null +++ b/hosts/nb-01.cloonar.com/hardware-configuration.nix @@ -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..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; +} diff --git a/utils/modules/nvim/config/bufferline.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/bufferline.lua similarity index 100% rename from utils/modules/nvim/config/bufferline.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/bufferline.lua diff --git a/utils/modules/nvim/config/icons.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/icons.lua similarity index 100% rename from utils/modules/nvim/config/icons.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/icons.lua diff --git a/utils/modules/nvim/config/init.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/init.lua similarity index 100% rename from utils/modules/nvim/config/init.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/init.lua diff --git a/utils/modules/nvim/config/keymappings.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/keymappings.lua similarity index 100% rename from utils/modules/nvim/config/keymappings.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/keymappings.lua diff --git a/utils/modules/nvim/config/lspconfig.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/lspconfig.lua similarity index 100% rename from utils/modules/nvim/config/lspconfig.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/lspconfig.lua diff --git a/utils/modules/nvim/config/nvim-cmp.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/nvim-cmp.lua similarity index 100% rename from utils/modules/nvim/config/nvim-cmp.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/nvim-cmp.lua diff --git a/utils/modules/nvim/config/project.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/project.lua similarity index 100% rename from utils/modules/nvim/config/project.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/project.lua diff --git a/utils/modules/nvim/config/telescope.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/telescope.lua similarity index 100% rename from utils/modules/nvim/config/telescope.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/telescope.lua diff --git a/utils/modules/nvim/config/terminal.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/terminal.lua similarity index 100% rename from utils/modules/nvim/config/terminal.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/terminal.lua diff --git a/utils/modules/nvim/config/theming.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/theming.lua similarity index 100% rename from utils/modules/nvim/config/theming.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/theming.lua diff --git a/utils/modules/nvim/config/treesitter-textobjects.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/treesitter-textobjects.lua similarity index 100% rename from utils/modules/nvim/config/treesitter-textobjects.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/treesitter-textobjects.lua diff --git a/utils/modules/nvim/config/treesitter.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/treesitter.lua similarity index 100% rename from utils/modules/nvim/config/treesitter.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/treesitter.lua diff --git a/utils/modules/nvim/config/utils.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/utils.lua similarity index 100% rename from utils/modules/nvim/config/utils.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/utils.lua diff --git a/utils/modules/nvim/config/which-key.lua b/hosts/nb-01.cloonar.com/modules/nvim/config/which-key.lua similarity index 100% rename from utils/modules/nvim/config/which-key.lua rename to hosts/nb-01.cloonar.com/modules/nvim/config/which-key.lua diff --git a/utils/modules/nvim/default.nix b/hosts/nb-01.cloonar.com/modules/nvim/default.nix similarity index 98% rename from utils/modules/nvim/default.nix rename to hosts/nb-01.cloonar.com/modules/nvim/default.nix index a3761a3..64e212b 100644 --- a/utils/modules/nvim/default.nix +++ b/hosts/nb-01.cloonar.com/modules/nvim/default.nix @@ -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 diff --git a/hosts/nb-01.cloonar.com/modules/sway/directory-studio-nix b/hosts/nb-01.cloonar.com/modules/sway/directory-studio-nix new file mode 100644 index 0000000..9633b42 --- /dev/null +++ b/hosts/nb-01.cloonar.com/modules/sway/directory-studio-nix @@ -0,0 +1,7 @@ + +{ pkgs, ... }: +{ + environment.systemPackages = [ + pkgs.apache-directory-studio + ]; +} diff --git a/utils/modules/sway/parsec.nix b/hosts/nb-01.cloonar.com/modules/sway/parsec.nix similarity index 100% rename from utils/modules/sway/parsec.nix rename to hosts/nb-01.cloonar.com/modules/sway/parsec.nix diff --git a/utils/modules/sway/signal-work.nix b/hosts/nb-01.cloonar.com/modules/sway/signal-work.nix similarity index 94% rename from utils/modules/sway/signal-work.nix rename to hosts/nb-01.cloonar.com/modules/sway/signal-work.nix index 1f8e4c2..ed43b2e 100644 --- a/utils/modules/sway/signal-work.nix +++ b/hosts/nb-01.cloonar.com/modules/sway/signal-work.nix @@ -11,7 +11,6 @@ let in { environment.systemPackages = [ pkgs.signal-desktop - pkgs.signal-cli signalWorkDesktopItem ]; } diff --git a/utils/modules/sway/social.nix b/hosts/nb-01.cloonar.com/modules/sway/social.nix similarity index 100% rename from utils/modules/sway/social.nix rename to hosts/nb-01.cloonar.com/modules/sway/social.nix diff --git a/hosts/nb-01.cloonar.com/modules/sway/sway.conf b/hosts/nb-01.cloonar.com/modules/sway/sway.conf new file mode 100644 index 0000000..ee8d554 --- /dev/null +++ b/hosts/nb-01.cloonar.com/modules/sway/sway.conf @@ -0,0 +1,353 @@ +# Oxide theme +# +# Author: Diki Ananta 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 +} + diff --git a/utils/modules/sway/sway.nix b/hosts/nb-01.cloonar.com/modules/sway/sway.nix similarity index 85% rename from utils/modules/sway/sway.nix rename to hosts/nb-01.cloonar.com/modules/sway/sway.nix index 0051802..99a2470 100644 --- a/utils/modules/sway/sway.nix +++ b/hosts/nb-01.cloonar.com/modules/sway/sway.nix @@ -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"; + }; } diff --git a/hosts/nb-01.cloonar.com/modules/sway/thunderbird.nix b/hosts/nb-01.cloonar.com/modules/sway/thunderbird.nix new file mode 100644 index 0000000..bdd0a85 --- /dev/null +++ b/hosts/nb-01.cloonar.com/modules/sway/thunderbird.nix @@ -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 + ]; +} diff --git a/hosts/nb-01.cloonar.com/modules/sway/waybar.conf b/hosts/nb-01.cloonar.com/modules/sway/waybar.conf new file mode 100644 index 0000000..504fae6 --- /dev/null +++ b/hosts/nb-01.cloonar.com/modules/sway/waybar.conf @@ -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 +} +} + diff --git a/hosts/nb-01.cloonar.com/modules/sway/waybar.css b/hosts/nb-01.cloonar.com/modules/sway/waybar.css new file mode 100644 index 0000000..c927754 --- /dev/null +++ b/hosts/nb-01.cloonar.com/modules/sway/waybar.css @@ -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; +} diff --git a/hosts/nb-01.cloonar.com/modules/sway/wofi.css b/hosts/nb-01.cloonar.com/modules/sway/wofi.css new file mode 100644 index 0000000..322997f --- /dev/null +++ b/hosts/nb-01.cloonar.com/modules/sway/wofi.css @@ -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; +} + diff --git a/hosts/nb-01.cloonar.com/utils b/hosts/nb-01.cloonar.com/utils new file mode 120000 index 0000000..6b18391 --- /dev/null +++ b/hosts/nb-01.cloonar.com/utils @@ -0,0 +1 @@ +../../utils \ No newline at end of file diff --git a/utils/modules/sway/config.nix b/utils/modules/sway/config.nix deleted file mode 100644 index 29a6ac7..0000000 --- a/utils/modules/sway/config.nix +++ /dev/null @@ -1,342 +0,0 @@ -{ config, pkgs, lib, ... }: -{ - environment.etc = { - "sway/config".text = '' - # Oxide theme - # - # Author: Diki Ananta 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 - } - ''; - }; -} diff --git a/utils/modules/sway/foot.nix b/utils/modules/sway/foot.nix deleted file mode 100644 index 774ef02..0000000 --- a/utils/modules/sway/foot.nix +++ /dev/null @@ -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] - ''; - }; -} diff --git a/utils/modules/sway/thunderbird.nix b/utils/modules/sway/thunderbird.nix deleted file mode 100644 index 88210d0..0000000 --- a/utils/modules/sway/thunderbird.nix +++ /dev/null @@ -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 - ]; -} diff --git a/utils/modules/sway/wofi-styles.nix b/utils/modules/sway/wofi-styles.nix deleted file mode 100644 index 0417fbc..0000000 --- a/utils/modules/sway/wofi-styles.nix +++ /dev/null @@ -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; - } - ''; - }; -} diff --git a/utils/modules/sway/xdg-waybar-config.nix b/utils/modules/sway/xdg-waybar-config.nix deleted file mode 100644 index 2071716..0000000 --- a/utils/modules/sway/xdg-waybar-config.nix +++ /dev/null @@ -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; - } - ''; - }; -}