diff --git a/collect-configs.sh b/collect-configs.sh new file mode 100755 index 0000000..9573338 --- /dev/null +++ b/collect-configs.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cp $HOME/.config/i3/config i3/config +cp /etc/nixos/configuration.nix nixos/configuration.nix +cp /etc/nixos/hardware-configuration.nix nixos/hardware-configuration.nix +cp /etc/nixos/security.nix nixos/security.nix diff --git a/deploy-configs.sh b/deploy-configs.sh new file mode 100755 index 0000000..640598e --- /dev/null +++ b/deploy-configs.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cp i3/config $HOME/.config/i3/config +cp nixos/configuration.nix /etc/nixos/configuration.nix +cp nixos/hardware-configuration.nix /etc/nixos/hardware-configuration.nix +cp nixos/security.nix /etc/nixos/security.nix diff --git a/config b/i3/config similarity index 93% rename from config rename to i3/config index e63fe22..69824ba 100644 --- a/config +++ b/i3/config @@ -43,10 +43,10 @@ bindsym $mod+d exec dmenu_run # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop # change focus -bindsym $mod+j focus left -bindsym $mod+k focus down -bindsym $mod+l focus up -bindsym $mod+semicolon focus right +#bindsym $mod+j focus left +#bindsym $mod+k focus down +#bindsym $mod+l focus up +#bindsym $mod+semicolon focus right # alternatively, you can use the cursor keys: bindsym $mod+Left focus left @@ -99,10 +99,10 @@ set $wspace3 3:console set $wspace4 4:file set $wspace5 5:edit set $wspace6 6:pdf -set $wspace7 7 +set $wspace7 7:video set $wspace8 8 set $wspace9 9:chat -set $wspace10 10:video +set $wspace10 10 # rename workspaces #rename workspace number 1 to $wspace1 @@ -160,9 +160,11 @@ assign [class="(?i)^Nautilus$"] → $wspace4 assign [class="(?i)^Gedit$"] → $wspace5 assign [class="(?i)^Evince$"] → $wspace6 assign [class="(?i)^XpdfReader$"] → $wspace6 +assign [class="(?i)^vlc$"] → $wspace7 +assign [class="(?i)^mpv$"] → $wspace7 +assign [class="(?i)^Transmission-gtk$"] → $wspace8 assign [class="(?i)^TelegramDesktop$"] → $wspace9 -assign [class="(?i)^vlc$"] → $wspace10 -assign [class="(?i)^mpv$"] → $wspace10 +assign [class="(?i)^Mattermost"] → $wspace9 workspace_auto_back_and_forth yes @@ -174,10 +176,11 @@ bindsym $mod+Shift+r restart bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" # application shortcuts -bindsym $mod+i exec ~/Apps/idea.sh +bindsym $mod+i exec idea-community bindsym $mod+o exec firefox bindsym $mod+g exec gedit bindsym $mod+n exec nautilus +bindsym $mod+l exec '/home/nnm/Apps/lock.sh' # audio bindsym XF86AudioRaiseVolume exec "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 +5%" @@ -225,4 +228,5 @@ exec --no-startup-id volumeicon exec --no-startup-id firefox exec --no-startup-id st -f "Liberation Mono:pixelsize=16:antialias=true:autohint=true" exec --no-startup-id telegram-desktop - +exec --no-startup-id mattermost-desktop +exec --no-startup-id xautolock -time 10 -locker '/home/nnm/Apps/lock.sh' diff --git a/nixos/configuration.nix b/nixos/configuration.nix new file mode 100644 index 0000000..6dde38f --- /dev/null +++ b/nixos/configuration.nix @@ -0,0 +1,235 @@ +# 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, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ./security.nix + ]; + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking = { + hostName = "lenovo"; + #wireless.enable = true; + useDHCP = false; + #wicd.enable = true; + networkmanager.enable = true; + }; + + # Select internationalisation properties. + i18n = { + consoleFont = "Lat2-Terminus16"; + consoleKeyMap = "us"; + defaultLocale = "en_US.UTF-8"; + }; + + # Set your time zone. + time.timeZone = "Europe/Prague"; + + # List packages installed in system profile. To search by name, run: + # $ nix-env -qaP | grep wget + environment.systemPackages = with pkgs; [ + wget + bind + vim + firefox + ranger + keepass + tdesktop + st + fish + transmission_gtk + wireshark + vlc + mpv + moc + libmtp + go-mtpfs + usbutils + binutils-unwrapped + patchelf + file + w3m + xpdf + highlight + mediainfo + evince + notepadqq + gnome3.adwaita-icon-theme + gnome3.gedit + gnome3.eog + gnome3.nautilus + gnome3.evolution + gnome3.gnome-keyring + libsecret + gnome3.file-roller + gnome3.seahorse + gnome3.gcr + gnome3.dconf + gimp + # libreoffice-fresh + xfontsel + xorg.xbacklight + volumeicon + ntfs3g + htop + git + lm_sensors + pavucontrol + openjdk8 + #openjdk10 + visualvm + scala + dotty + sbt + jetbrains.idea-community + protobuf3_5 + openssl + openssl.dev + pv + #virtualbox + baobab + graphviz + wirelesstools + mattermost-desktop + openfortivpn + simplenote + i3lock + scrot + imagemagick + xautolock + squashfsTools + #skypeforlinux + atom + vscode + rpm + unzip + chromium + masterpdfeditor + telnet + geteltorito + gradle + nix-index + zoom-us + krita + maven + nodejs + jmeter + mongodb-tools + screen + p7zip + zlib.static + zlib.dev + gcc + #nextcloud-client + cmake + gnumake + gperf + #calibre + netcat-gnu + smartmontools + teamviewer + unrar + tcpdump + tcpflow + falkon + androidenv.androidPkgs_9_0.platform-tools + (python2.withPackages(ps: with ps; [ virtualenvwrapper jenkins-job-builder ])) + ]; + + fonts.fonts = with pkgs; [ + source-code-pro + liberation_ttf + ]; + + nixpkgs.config = { + allowUnfree = true; + android_sdk.accept_license = true; + }; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.bash.enableCompletion = true; + # programs.mtr.enable = true; + # programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + services.openssh.enable = true; + services.teamviewer.enable = true; + + # Open ports in the firewall. + networking.firewall.allowedTCPPorts = [ 88 8443 111 1039 1047 1048 2049 ]; + networking.firewall.allowedUDPPorts = [ 111 1039 1047 1048 2049 ]; + # Or disable the firewall altogether. + networking.firewall.enable = true; + + # Enable CUPS to print documents. + services.printing.enable = true; + services.printing.drivers = [ pkgs.splix ]; + + services.mongodb.enable = true; + + # keyring + services.gnome3.gnome-keyring.enable = true; + services.gnome3.seahorse.enable = true; + services.gnome3.at-spi2-core.enable = true; + + #programs.sway.enable = true; + + # Enable the X11 windowing system. + services.xserver.enable = true; + services.xserver.layout = "us,ru"; + services.xserver.xkbOptions = "grp:caps_toggle"; + + # Enable touchpad support. + services.xserver.libinput.enable = true; + + services.xserver.displayManager.lightdm.enable = true; + services.xserver.windowManager.i3.enable = true; + + sound.enable = true; + hardware.pulseaudio.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.extraUsers.nnm = { + isNormalUser = true; + uid = 1000; + shell = pkgs.fish; + extraGroups = ["audio" "networkmanager" "wireshark" "vboxusers"]; + }; + + fileSystems."/export/development" = { + device = "/home/nnm/development"; + options = [ "bind" ]; + }; + + fileSystems."/mnt/Downloads-pc" = { + device = "192.168.1.2:/Downloads"; + fsType = "nfs"; + options = ["x-systemd.automount,noauto"]; + }; + + services.nfs.server.enable = true; + services.nfs.server.exports = '' + /export 192.168.1.2(rw,fsid=0,no_subtree_check) + /export/development 192.168.1.2(rw,nohide,insecure,no_subtree_check) + ''; + + #virtualisation.virtualbox.host.enable = true; + #virtualisation.virtualbox.host.enableExtensionPack = true; + + # This value determines the NixOS release with which your system is to be + # compatible, in order to avoid breaking some software such as database + # servers. You should change this only after NixOS release notes say you + # should. + system.stateVersion = "19.03"; # Did you read the comment? +} diff --git a/nixos/hardware-configuration.nix b/nixos/hardware-configuration.nix new file mode 100644 index 0000000..9dab89c --- /dev/null +++ b/nixos/hardware-configuration.nix @@ -0,0 +1,37 @@ +# 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, ... }: + +{ + imports = + [ + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + boot.cleanTmpDir = true; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/a29debeb-54c8-44b8-ae1d-19de8032ee60"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/ADDE-D2C3"; + fsType = "vfat"; + }; + + fileSystems."/home" = + { device = "/dev/disk/by-uuid/88e4b0fa-ec8e-4235-88b1-9ad7721938be"; + fsType = "ext4"; + }; + + swapDevices = [ ]; + + nix.maxJobs = lib.mkDefault 4; + powerManagement.cpuFreqGovernor = "powersave"; + hardware.bluetooth.enable = true; + hardware.opengl.enable = true; +} diff --git a/nixos/security.nix b/nixos/security.nix new file mode 100644 index 0000000..18ba6cf --- /dev/null +++ b/nixos/security.nix @@ -0,0 +1,47 @@ +{ config, pkgs, ... }: + +{ + security.pki.certificates = [ + '' +finfactory +========== +-----BEGIN CERTIFICATE----- +MIIGTTCCBDWgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBrzELMAkGA1UEBhMCQ1ox +FzAVBgNVBAgTDkN6ZWNoIHJlcHVibGljMQ8wDQYDVQQHEwZQcmFndWUxEzARBgNV +BAoTCkZpbkZhY3RvcnkxEzARBgNVBAsTCk9wZXJhdGlvbnMxKTAnBgNVBAMTIEZp +bkZhY3RvcnkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJz +eXNAZmluZmFjdG9yeS5jb20wHhcNMTYwODA4MTQwOTAwWhcNMzYwODA4MTQwOTAw +WjCBrzELMAkGA1UEBhMCQ1oxFzAVBgNVBAgTDkN6ZWNoIHJlcHVibGljMQ8wDQYD +VQQHEwZQcmFndWUxEzARBgNVBAoTCkZpbkZhY3RvcnkxEzARBgNVBAsTCk9wZXJh +dGlvbnMxKTAnBgNVBAMTIEZpbkZhY3RvcnkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +MSEwHwYJKoZIhvcNAQkBFhJzeXNAZmluZmFjdG9yeS5jb20wggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQDeFR5VPXDwBCY41bIm8sbFrCmErtYc3rsgMQ4n +vjZI5yNHz6pK+Zpof2fOZmXVp0r6QeLjhzaKPrmx9n8C7ySdkyzUSPcVgOL5787/ +Rrt61712/WWvMv/ECLJaKU2ql8oQdCWZsBFQQhNHzBLS4UcMtls457f7khcl5C4Q +VbuND434bUAgFs/lz1/u79z251IHqvPHWowj+LJiCaxj7Vj/RoNDyLWV34TIE1nY +gdyEt2e6zR/wGhZytFjVrQXh7772Agw7xRnaaMeJS8Wv4pVyKuxZWIMhrLwuIAhb +qBAlYr6Ej/qSb5V1cPEau8nSwg6lekvQIYeBe4g+MgiKnASOCVaq6ldUC8SXew28 +bYMPz84XljFLpcs8XckX3Nesgn4WcKcgccXCie3wm53wwBZRJPdly18+YurPwEL6 +KqWDtgkXUyvApYSqo8FgHgEic6DUpsT78UbA3r9vy7s4gFTRWjsAYjvDXUzPZk4R +K2yR2Ri/CkiVSu+ipJhzvfxt3ficTQ1lvE+SrFxFXCUORZQyH32nIO0vFrzehI2f +zjwvfNoupvcz0ntvRGyPkJ9k5OdH3txAc+kuyRklqXzefxhBHByDZlumAPl8DfrH +9SkDSjN8JH4vLO8bAAk7kHJvWkoXXWRMjH94eEv8C474EdfKsAVtQkfdZ8QrMKep +lyBDCwIDAQABo3IwcDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQgm/Vj8wk4 +S3pGsifRP50tvSULlDALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMB4G +CWCGSAGG+EIBDQQRFg94Y2EgY2VydGlmaWNhdGUwDQYJKoZIhvcNAQELBQADggIB +ANWsZaLNa67StsBvn+YcSTHUTtXT22km+jsfMzgBxMGSfbyQcywUgJ1qCRI43xJJ +Fi7ZZ6jnMyQ/PWo8gA3+oYims8vspuXXz8jSM3IG4xYGvAElBjAfiI0dtrVvK7l9 +/G41FCQmV7UcvTa7Lj0GkTP4qGwBSACXsSyKmDIYuxjhfdRx4f0cqOXzpKPQZ2Kv +tGGc1S3yUmvBwM4ebIOjUwe+zJVhsjjtCjEnMYh7s481wKP0yDcfmUansQWvWvtl +H77VOSB82B79OSIjY5DYtMLJLcMG6NDPm3DJa3qPHiNS2ROJS3rxASKXCS8ZUma1 +AIFoEA7NwgJjdF2dqD/OUNFCUp+SCxOLptRHIgkzZJj0gvbKyMIU4azgfzUVyeEG +13NkicQWyJa1tF/rVXzWPB/hrfh0q685t5n7PHEO3iy0n8Ppw+AcoxK/rDDGga5F +dNrMgIWvn1xmceIBXFI7sXMn3+EXU7fKvi7dGc598vOc6yRMZz0nFOs7lkCzbAbd +yA41aJMOGYWyrYatnRzTy9/D7n0qhO0LodNs1TFTtn9z9dPplnrZuOGJgDEYlnOT +m34n5pUavtVns8THGd4QnxfV6rJzyP7L8tzj3nM3Nbj2+cQni3Y/gxVgO2OdNpjI +OPlWG7cYW793iDQsKKlFbV8TPziV1dgSOistImGRWptK +-----END CERTIFICATE----- + '' + ]; +} + diff --git a/monitor-switch/10-monitor-hotplug.rules b/systemd/monitor-switch/10-monitor-hotplug.rules similarity index 100% rename from monitor-switch/10-monitor-hotplug.rules rename to systemd/monitor-switch/10-monitor-hotplug.rules diff --git a/monitor-switch/monitor-hotplug.path b/systemd/monitor-switch/monitor-hotplug.path similarity index 100% rename from monitor-switch/monitor-hotplug.path rename to systemd/monitor-switch/monitor-hotplug.path diff --git a/monitor-switch/monitor-hotplug.service b/systemd/monitor-switch/monitor-hotplug.service similarity index 100% rename from monitor-switch/monitor-hotplug.service rename to systemd/monitor-switch/monitor-hotplug.service diff --git a/monitor-switch/update-output.scala b/systemd/monitor-switch/update-output.scala similarity index 100% rename from monitor-switch/update-output.scala rename to systemd/monitor-switch/update-output.scala